Thread: Bug in new memory system?

Bug in new memory system?

From
Peter Eisentraut
Date:
The postmaster doesn't seem to want to shut down cleanly with active
connections anymore.

Start up a server, start up a connection (say, psql), press Ctrl-C in the
server window.

| peter ~$ pg-install/bin/postmaster -D /home/peter/pg-install/data -p6543
| DEBUG:  Data Base System is starting up at Sat Jul  1 00:43:17 2000
| DEBUG:  Data Base System was shut down at Sat Jul  1 00:41:32 2000
| DEBUG:  Data Base System is in production state at Sat Jul  1 00:43:17 2000
| Fast Shutdown request at Sat Jul  1 00:43:24 2000
| Aborting any active transaction...
| FATAL 1:  The system is shutting down
| NOTICE:  AbortTransaction and not in in-progress state
| Server process (pid 29849) exited with status 139 at Sat Jul  1 00:43:24 2000
| Terminating any active server processes...
| Server processes were terminated at Sat Jul  1 00:43:24 2000
| Reinitializing shared memory and semaphores
| DEBUG:  Data Base System is starting up at Sat Jul  1 00:43:24 2000
| DEBUG:  Data Base System was interrupted being in production at Sat Jul 1 00:43:17 2000
| DEBUG:  Data Base System is in production state at Sat Jul  1 00:43:24 2000
| DEBUG:  Data Base System shutting down at Sat Jul  1 00:43:24 2000
| DEBUG:  Data Base System shut down at Sat Jul  1 00:43:24 2000
| peter ~$

The reason I'm saying "bug in memory system" is this backtrace:

#0  0x8190f53 in MemoryContextDeleteChildren (context=0x0) at mcxt.c:201
201             while (context->firstchild != NULL)
(gdb) bt
#0  0x8190f53 in MemoryContextDeleteChildren (context=0x0) at mcxt.c:201
#1  0x8190f85 in MemoryContextResetAndDeleteChildren (context=0x0) at mcxt.c:218
#2  0x8087e18 in AtAbort_Memory () at xact.c:838
#3  0x8088092 in AbortTransaction () at xact.c:1108
#4  0x8088248 in AbortCurrentTransaction () at xact.c:1339
#5  0x812ff0b in PostgresMain (argc=4, argv=0xbffff278, real_argc=4, real_argv=0xbffffb34) at postgres.c:1455
#6  0x810f2c4 in DoBackend (port=0x8213290) at postmaster.c:1967
#7  0x810eca5 in BackendStartup (port=0x8213290) at postmaster.c:1740
#8  0x810dabc in ServerLoop () at postmaster.c:985
#9  0x810d353 in PostmasterMain (argc=4, argv=0xbffffb34) at postmaster.c:678
#10 0x80cf988 in main (argc=4, argv=0xbffffb34) at main.c:97


There are no such problems when there are no connections open at the time
of the shutdown.


-- 
Peter Eisentraut                  Sernanders väg 10:115
peter_e@gmx.net                   75262 Uppsala
http://yi.org/peter-e/            Sweden



Re: Bug in new memory system?

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> The reason I'm saying "bug in memory system" is this backtrace:

Good catch.  xact.c is being careless about the possibility that
AbortTransaction() can be called when there's not actually any
transaction running.  I'm on it.
        regards, tom lane