![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
|
I tried to create a temp table and got my back-end restarting because of a signal 11. |
|
It seems to me, and please correct me if I’m wrong, that there is a limit to the size that a join can handle. |
#2
| |||
| |||
|
|
How do I get a "debugger backtrace" ? |
|
Selecting all data from the tables involved, does that also include a 'coun= t(*)', if so, they work: |
#3
| |||
| |||
|
|
"aarjan langereis" <a.j.langereis (AT) inter (DOT) nl.net> writes: How do I get a "debugger backtrace" ? Find the "core" file left by the crashed backend --- it should be in $PGDATA/base/yourdbnumber/core and have a file date equal to the time of the crash. If you don't find one, it's likely that the postmaster was started under "ulimit -c 0" which prevents core dumps. Restart the postmaster under "ulimit -c unlimited" and reproduce the crash. Once you have the core file, do $ gdb /path/to/postgres-executable /path/to/core-file gdb> bt gdb> quit If bt just produces a list of numbers without any names, it's not going to be helpful. In that case you need to rebuild Postgres with debugging symbols and start over. There is more info in the archives. Selecting all data from the tables involved, does that also include a 'coun= t(*)', if so, they work: Mmm, that really only proves that the page headers and tuple headers are OK, not that there is not data corruption within some row, because COUNT(*) won't try to extract any field values from any rows. I'd suggest a SELECT * or COPY TO FILE operation to check whether there is any data corruption. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo (AT) postgresql (DOT) org |
#4
| |||
| |||
|
|
I don't see that "ulimit -c 0".. nowhere in the script. Where do I have to put the "ulimit -c unlimited"? |
|
Select * from blocks; gave me the whole table (I didn't look at all records, but got a result in psql) select hostid, sum(amount) from blocks group by hostid; crashed (3,2M records used) |
#5
| |||
| |||
|
|
I reproduced the crash and got a good core-file (with the symbols, see below). The only thing is: it's 390Mb .. even after gzip it's big: 250Mb.Would that be a problem for you? (I have the bandwith if you want) |
|
(gdb) bt #0 0x0819b684 in LogicalTapeWrite () #1 0x0819da13 in ApplySortFunction () #2 0x0819cf10 in tuplesort_getdatum () #3 0x080ea656 in ExecSort () |
#6
| |||
| |||
|
|
"aarjan langereis" <a.j.langereis (AT) chello (DOT) nl> writes: I reproduced the crash and got a good core-file (with the symbols, see below). The only thing is: it's 390Mb .. even after gzip it's big:250Mb. Would that be a problem for you? (I have the bandwith if you want) No point in sending it to me, it's of no value on a different machine (because the executable files are usually not identical). (gdb) bt #0 0x0819b684 in LogicalTapeWrite () #1 0x0819da13 in ApplySortFunction () #2 0x0819cf10 in tuplesort_getdatum () #3 0x080ea656 in ExecSort () Hm. I'm afraid gdb is lying to you, because this stack trace is impossible -- those functions don't call each other. I have seen that happen when the compiler optimization level is too high; gdb's stack tracing code gets confused. To get any useful information, you'll need to rebuild with debug symbols enabled (--enable-debug switch to configure). regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster |
#7
| |||
| |||
|
|
I've got gdb from the RPM's from redhat 9. Whould that RPM be wrong then? Or do you mean that I have to recompile the database? |
![]() |
| Thread Tools | |
| Display Modes | |
| |