Обсуждение: failed assertion and panic in standby mode
Hi,
i was trying recent HS and get this when trying to start the standby,
actually i was expecting a crash because i use full_page_writes=off
and i guess it won't work.
Maybe we could say full_page_writes=off and wal_level=hot_standby are
conflicting and avoid such setup?
"""
LOG: database system was interrupted; last known up at 2010-04-29 23:38:53 ECT
LOG: entering standby mode
LOG: restored log file "000000010000000000000004" from archive
LOG: redo starts at 0/452A898
TRAP: FailedAssertion("!(( (metabuffer) != 0 && (metabuffer) >=
-NLocBuffer && (metabuffer) <= NBuffers ))", File: "ginxlog.c", Line:
590)
LOG: startup process (PID 8287) was terminated by signal 6: Aborted
LOG: terminating any other active server processes
"""
then i try again, i make the backup when running "make installcheck"
for the second time and i get this:
"""
LOG: database system was interrupted; last known up at 2010-04-29 23:48:13 ECT
LOG: entering standby mode
LOG: restored log file "00000001000000000000000B" from archive
LOG: redo starts at 0/B000020
WARNING: could not open directory "base/40596": No existe el fichero
o el directorio
CONTEXT: xlog redo drop db: dir 40596/1663
WARNING: some useless files may be left behind in old database
directory "base/40596"
CONTEXT: xlog redo drop db: dir 40596/1663
LOG: restored log file "00000001000000000000000C" from archive
PANIC: btree_redo: unknown op code 208
CONTEXT: xlog redo UNKNOWN
LOG: startup process (PID 9264) was terminated by signal 6: Aborted
LOG: terminating any other active server processes
"""
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
Jaime Casanova <jcasanov@systemguards.com.ec> writes:
> i was trying recent HS and get this when trying to start the standby,
> TRAP: FailedAssertion("!(( (metabuffer) != 0 && (metabuffer) >=
> -NLocBuffer && (metabuffer) <= NBuffers ))", File: "ginxlog.c", Line:
> 590)
Hm, can you provide a test case?
regards, tom lane
On Fri, Apr 30, 2010 at 12:03 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Jaime Casanova <jcasanov@systemguards.com.ec> writes:
>> i was trying recent HS and get this when trying to start the standby,
>
>> TRAP: FailedAssertion("!(( (metabuffer) != 0 && (metabuffer) >=
>> -NLocBuffer && (metabuffer) <= NBuffers ))", File: "ginxlog.c", Line:
>> 590)
>
> Hm, can you provide a test case?
>
i wasn't able to reproduce the assertion, although i'm pretty sure
what i did when i got that...
it's late for me now, tomorrow i will try again and will post the exact steps
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
Jaime Casanova wrote: > i was trying recent HS and get this when trying to start the standby, > actually i was expecting a crash because i use full_page_writes=off > and i guess it won't work. > Maybe we could say full_page_writes=off and wal_level=hot_standby are > conflicting and avoid such setup? It's supposed to work. > PANIC: btree_redo: unknown op code 208 > CONTEXT: xlog redo UNKNOWN Hmm, I see a bug in btree_redo handling of XLOG_BTREE_REUSE_PAGE. If hot standby is not enabled in the standby, it chokes on that record type. It's missing from btree_desc too. Fixed. This demonstrates that there really has been little testing of warm standby with hot standby disabled :-). -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
On Fri, 2010-04-30 at 09:35 +0300, Heikki Linnakangas wrote: > Hmm, I see a bug in btree_redo handling of XLOG_BTREE_REUSE_PAGE. If > hot standby is not enabled in the standby, it chokes on that record > type. It's missing from btree_desc too. Yep, correct fix. > This demonstrates that there really has been little testing of warm > standby with hot standby disabled :-). Agreed, exactly why I'm not convinced turning it off makes you safer. Most people will turn it on and so it will remain a less well tested path through the code. -- Simon Riggs www.2ndQuadrant.com