![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
|
"Joel Stevenson" <joelstevenson (AT) mac (DOT) com> writes: I'm running into an Assertion failure this morning w/8.1.0. I believe it is related to using the NOWAIT flag. Here is the log message: TRAP: FailedAssertion("!(serializable ? !((MyProc->xmin) != ((TransactionId) 0)) : ((MyProc->xmin) != ((TransactionId) 0)))", File: "procarray.c", Line: 492) With no stack trace, and no information about how to reproduce the error, I'm afraid this report is just about useless :-( |

#2
| |||
| |||
|
|
The following bug has been logged online: Bug reference: 2033 Logged by: Joel Stevenson Email address: joelstevenson (AT) mac (DOT) com PostgreSQL version: 8.1.0 Operating system: RHEL 3 update 6 Description: Assertion Failure: File: "procarray.c", Line: 492 Details: Hi, I'm running into an Assertion failure this morning w/8.1.0. I believe it is related to using the NOWAIT flag. Here is the log message: TRAP: FailedAssertion("!(serializable ? !((MyProc->xmin) != ((TransactionId) 0)) : ((MyProc->xmin) != ((TransactionId) 0)))", File: "procarray.c", Line: 492) Postgres was configured using both --enable-debug and --enable-cassert. Full config options were: ./configure CFLAGS=-O2 -pipe --with-perl --with-openssl --enable-thread-safety --enable-debug --enable-cassert --with-includes=/usr/kerberos/include Some non-default postgresql.conf params: max_connections = 150 ssl = on shared_buffers = 4000 work_mem = 102400 maintenance_work_mem = 131072 max_stack_depth = 4096 commit_delay = 100 checkpoint_segments = 5 effective_cache_size = 173015 stats_start_collector = on stats_command_string = on stats_block_level = on stats_row_level = on stats_reset_on_server_start = on autovacuum = on autovacuum_analyze_scale_factor = 0.1 I've removed the 'NOWAIT' for the time being, but thought I should mention the issue. Thanks, Joel ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org |
#3
| |||
| |||
|
|
Sorry, I realize this bug is a little lean on details. PG is set up to serve multiple concurrent processes in a work queue fashion, therefore these processes are in contention for the same resources as the queue is basically a FIFO and I'm using SELECT ... FOR UPDATE NOWAIT in each client to grab the next work segment in line. I've been running the setup on 8.1b3 and 8.1RC1 without this particular Assertion failure, but had not been using the NOWAIT flag until today. During a period of perhaps 20 processes operating on the queue it looks like postgres failed this assertion 17 times, the first coming very shortly after the processes began and the rest following in quick succession. I do have the core files if further info is needed from them. Thanks, Joel At 3:19 PM +0000 11/9/05, Joel Stevenson wrote: The following bug has been logged online: Bug reference: 2033 Logged by: Joel Stevenson Email address: joelstevenson (AT) mac (DOT) com PostgreSQL version: 8.1.0 Operating system: RHEL 3 update 6 Description: Assertion Failure: File: "procarray.c", Line: 492 Details: Hi, I'm running into an Assertion failure this morning w/8.1.0. I believe it is related to using the NOWAIT flag. Here is the log message: TRAP: FailedAssertion("!(serializable ? !((MyProc->xmin) != ((TransactionId) 0)) : ((MyProc->xmin) != ((TransactionId) 0)))", File: "procarray.c", Line: 492) Postgres was configured using both --enable-debug and --enable-cassert. Full config options were: ./configure CFLAGS=-O2 -pipe --with-perl --with-openssl --enable-thread-safety --enable-debug --enable-cassert --with-includes=/usr/kerberos/include Some non-default postgresql.conf params: max_connections = 150 ssl = on shared_buffers = 4000 work_mem = 102400 maintenance_work_mem = 131072 max_stack_depth = 4096 commit_delay = 100 checkpoint_segments = 5 effective_cache_size = 173015 stats_start_collector = on stats_command_string = on stats_block_level = on stats_row_level = on stats_reset_on_server_start = on autovacuum = on autovacuum_analyze_scale_factor = 0.1 I've removed the 'NOWAIT' for the time being, but thought I should mention the issue. Thanks, Joel ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster |
#4
| |||
| |||
|
|
Joel Stevenson <joelstevenson (AT) mac (DOT) com> writes: gdb's 'bt' on one of the core files produces: #0 0x00138eff in ?? () #1 0x0017ec8d in ?? () #2 0x00246cd8 in ?? () #3 0x00000000 in ?? () This looks like you have a "stripped" executable, which is a bit odd considering you said that you built with --enable-debug. Please check that the installed executable is what you think it is ... |
|
Is there any chance of putting together a self-contained test case that other people could try? |
#5
| |||
| |||
|
#6
| |||
| |||
|
|
Joel Stevenson <joelstevenson (AT) mac (DOT) com> writes: Thanks Tom, and apologies for the confusion; not having worked w/gdb before I was invoking it incorrectly. Here's what the core file produced from the assertion failure has for a backtrace: OK, now that that's straightened out, there are some more things to look at in the core file. Please try these gdb commands: p *MyProc p *SerializableSnapshot p *CurrentTransactionState regards, tom lane |
#7
| |||
| |||
|
|
I've been running the setup on 8.1b3 and 8.1RC1 without this particular Assertion failure, but had not been using the NOWAIT flag until today. During a period of perhaps 20 processes operating on the queue it looks like postgres failed this assertion 17 times, the first coming very shortly after the processes began and the rest following in quick succession. |
#8
| |||
| |||
|
|
Joel Stevenson <joelstevenson (AT) mac (DOT) com> writes: I've been running the setup on 8.1b3 and 8.1RC1 without this particular Assertion failure, but had not been using the NOWAIT flag until today. During a period of perhaps 20 processes operating on the queue it looks like postgres failed this assertion 17 times, the first coming very shortly after the processes began and the rest following in quick succession. BTW, I imagine that the apparent correlation to NOWAIT is occurring because your client-side code was not checking to see if the NOWAIT query had failed before trying to launch another query in the same transaction. |
![]() |
| Thread Tools | |
| Display Modes | |
| |