8.5alpha3 hot standby crash report (DatabasePath related?)

From: Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>
To: pgsql-hackers(at)postgresql(dot)org
Cc: Simon Riggs <simon(at)2ndquadrant(dot)com>, jesus(at)omniti(dot)com, robert(at)omniti(dot)com
Subject: 8.5alpha3 hot standby crash report (DatabasePath related?)
Date: 2010-01-07 19:41:12
Message-ID: 201001071441.13392.xzilla@users.sourceforge.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Howdy folks,

Doing some testing with 8.5alpha3, my standby crashed this morning whilst
doing some testing. Seems I have a core file, so thought I would send a report.

Version: PostgreSQL 8.5alpha3 on i386-pc-solaris2.10, compiled by GCC gcc
(GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath), 32-bit

Error in the log was simply this:
LOG: restored log file "000000010000000300000032" from archive
LOG: startup process (PID 385) was terminated by signal 11
LOG: terminating any other active server processes

info from core file was:

postgres(at)postgresdev[/export/home/postgres/pgwork/data/slave]dbx
/export/home/postgres/pgwork/inst/slave/bin/postgres core
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.6' in your
.dbxrc
Reading postgres
core file header read successfully
Reading ld.so.1
Reading libnsl.so.1
Reading librt.so.1
Reading libsocket.so.1
Reading libm.so.2
Reading libc.so.1
Reading libaio.so.1
Reading libmd.so.1
program terminated by signal SEGV (no mapping at the fault address)
0xfedb578c: strlen+0x000c: movl (%eax),%edx
Current function is RelationCacheInitFileInvalidate
4237 snprintf(initfilename, sizeof(initfilename), "%s/%s",
(dbx) where
[1] strlen(0x0), at 0xfedb578c
[2] _ndoprnt(0x8417d81, 0x8042e7c, 0x8042e50, 0x0), at 0xfee0d976
[3] snprintf(0x8042e90, 0x400, 0x8417d7f, 0x0, 0x8417d30, 0x2f676f6c,
0x4f434552, 0x59524556), at 0xfee10734
=>[4] RelationCacheInitFileInvalidate(beforeSend = '\0'), line 4237 in
"relcache.c"
[5] xact_redo_commit(xlrec = 0x84ed434, xid = 0, lsn = RECORD), line 4414 in
"xact.c"
[6] StartupXLOG(), line 5834 in "xlog.c"
[7] StartupProcessMain(), line 8359 in "xlog.c"
[8] AuxiliaryProcessMain(argc = 2, argv = 0x80475e0), line 408 in
"bootstrap.c"
[9] StartChildProcess(type = 134510104), line 4218 in "postmaster.c"
[10] PostmasterMain(argc = 3, argv = 0x84c6e00), line 1061 in "postmaster.c"
[11] main(argc = 3, argv = 0x84c6e00), line 188 in "main.c"
(dbx) print initfilename
initfilename = "XLOG"
(dbx) list
4237 snprintf(initfilename, sizeof(initfilename), "%s/%s",
4238 DatabasePath, RELCACHE_INIT_FILENAME);
4239
4240 if (beforeSend)
4241 {
4242 /* no interlock needed here */
4243 unlink(initfilename);
4244 }
4245 else
4246 {
(dbx) print DatabasePath
DatabasePath = (nil)

Theo mentioned that he expects the above would work under Linux, but that we
need DatabasePath to not be null in the above.

FWIW, the SQL I was running on the master did involve two create database
commands back to back.

LMK if you have any questions.

--
Robert Treat
Conjecture: http://www.xzilla.net
Consulting: http://www.omniti.com

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2010-01-07 19:45:41 Re: Streaming replication and postmaster signaling
Previous Message Tom Lane 2010-01-07 19:40:49 Re: Hot Standy introduced problem with query cancel behavior