Thread

  1. After ~Crash Sequence not correct

    Henshall, Stuart - WCP <shenshall@westcountrypublications.co.uk> — 2001-12-19T13:00:17Z

    Severity: Annoyance
    Setup: PostgreSQL 7.1.2 on Dual PIII WinNT4 server + Cygwin 1.3.2
    PostgreSQL is run as a service and when rebooting (which doesn't shutdown -
    previously on cygwin list (hence the ~Crash in title)) I have twice noticed
    that a sequence was not properly updated, however records with Primary keys
    based upon the sequence where present in the table. (I *think* it was a
    different table & sequence last time).
    - Stuart
    
    
  2. Re: After ~Crash Sequence not correct

    Tom Lane <tgl@sss.pgh.pa.us> — 2001-12-19T16:02:53Z

    "Henshall, Stuart - WCP" <SHenshall@westcountrypublications.co.uk> writes:
    > Setup: PostgreSQL 7.1.2 on Dual PIII WinNT4 server + Cygwin 1.3.2
    > PostgreSQL is run as a service and when rebooting (which doesn't shutdown -
    > previously on cygwin list (hence the ~Crash in title)) I have twice noticed
    > that a sequence was not properly updated, however records with Primary keys
    > based upon the sequence where present in the table.
    
    Hmm.  You're about the third person to report something like this, so
    there's clearly something not right.  I'm guessing a bug in the WAL
    logging or redo code for sequences ...
    
    			regards, tom lane
    
    
  3. Re: After ~Crash Sequence not correct

    Tom Lane <tgl@sss.pgh.pa.us> — 2001-12-19T17:39:18Z

    I have verified that killing the postmaster after a few nextval's
    leaves things in a bad state after restart.
    
    I think I see the problem: in nextval(), the sequence data written to
    the WAL log is different from that written to the data page.  Isn't
    that bogus?
    
    To WAL:
    		seq->last_value = next;
    		seq->is_called = true;
    		seq->log_cnt = 0;
    
    To disk:
    	seq->last_value = last;		/* last fetched number */
    	seq->is_called = true;
    	seq->log_cnt = log;			/* how much is logged */
    
    (also, "log" has been changed between these two points)
    
    			regards, tom lane