On Wed, Jan 27, 2010 at 4:02 AM, Fujii Masao <masao.fu...@gmail.com> wrote:
> This is the bug of SR :( I think that walsender wrongly treats the 
> WAL-boundary.

The attached patch would fix this bug.

>> pgsql.sr_slave02/logfile:ERROR:  could not read xlog records: FATAL:  could 
>> not open file
>> "pg_xlog/0000000100000001000000FF" (log file 1, segment 255): No such file 
>> or directory
>> pgsql.sr_slavery/logfile:ERROR:  could not read xlog records: FATAL:  could 
>> not open file
>> "pg_xlog/0000000100000001000000FF" (log file 1, segment 255): No such file 
>> or directory
>
> Also the ReadRecord() or its surrounding functions seem to have treated
> wrongly the WAL-boundary.

Oops! I've misread the log messages. This is not the bug.
Because of the FATAL error from the primary, the standby
seems to just emit an ERROR message, and exit.

Regards,

-- 
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
*** a/src/backend/replication/walsender.c
--- b/src/backend/replication/walsender.c
***************
*** 661,666 **** XLogSend(StringInfo outMsg)
--- 661,673 ----
  
  		sentPtr = endptr;
  
+ 		if (sentPtr.xrecoff >= XLogFileSize)
+ 		{
+ 			/* crossing a logid boundary */
+ 			sentPtr.xlogid += 1;
+ 			sentPtr.xrecoff = 0;
+ 		}
+ 
  		/*
  		 * Read the log directly into the output buffer to prevent
  		 * extra memcpy calls.
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to