Re: Query hangs when getting too complex... - Mailing list pgsql-general
From | Paulo Jan |
---|---|
Subject | Re: Query hangs when getting too complex... |
Date | |
Msg-id | 3C20D7C1.FFFE9D98@digital.ddnet.es Whole thread Raw |
In response to | Query hangs when getting too complex... (Paulo Jan <admin@digital.ddnet.es>) |
Responses |
Re: Query hangs when getting too complex...
|
List | pgsql-general |
Tom Lane wrote: > > Paulo Jan <admin@mail.ddnet.es> writes: > > I have here a query that hangs everytime I try to execute it, even > > though IMO it isn't *that* complicated (nor is the database *that* big). > > Very bizarre. Can you attach to the backend process with gdb and get a > backtrace to see where it's hung up? > Uh... I don't have much experience using gdb (actually, I just started learning <g>), but anyway: 1) I started psql and then looked at the PID of the "postgres" backend process. 2) I typed "gdb postgres (PID)": Attaching to program: /usr/bin/postgres, Pid 30492 Reading symbols from /usr/lib/libssl.so.0...(no debugging symbols found)... done. Reading symbols from /usr/lib/libcrypto.so.0...(no debugging symbols found)... done. Reading symbols from /usr/lib/libz.so.1...(no debugging symbols found)...done. Reading symbols from /lib/libcrypt.so.1...done. Reading symbols from /lib/libresolv.so.2...done. Reading symbols from /lib/libnsl.so.1...done. Reading symbols from /lib/libdl.so.2...done. Reading symbols from /lib/libm.so.6...done. Reading symbols from /usr/lib/libreadline.so.3...done. Reading symbols from /lib/libc.so.6...done. Reading symbols from /lib/ld-linux.so.2...done. Reading symbols from /lib/libtermcap.so.2...done. Reading symbols from /usr/lib/gconv/ISO8859-1.so...done. ---Type <return> to continue, or q <return> to quit--- Reading symbols from /lib/libnss_files.so.2...done. 0x40276ba2 in __libc_recv () from /lib/libc.so.6 3) I typed the query in psql and started it. psql hangs... 4) ...and in the meantime, I type "bt" in the gdb window: (gdb) bt #0 0x40276ba2 in __libc_recv () from /lib/libc.so.6 #1 0x80c7c5a in StreamClose () #2 0x80c7d57 in pq_getbytes () #3 0x80fc54c in HandleFunctionRequest () #4 0x80fc5d5 in HandleFunctionRequest () #5 0x80fd9de in PostgresMain () #6 0x80e8035 in PostmasterMain () #7 0x80e7c1c in PostmasterMain () #8 0x80e6e77 in PostmasterMain () #9 0x80e6826 in PostmasterMain () #10 0x80c89fe in main () #11 0x401dc9cb in __libc_start_main (main=0x80c8890 <main>, argc=3, argv=0xbffffbc4, init=0x8065a78 <_init>, fini=0x8145f2c <_fini>, rtld_fini=0x4000aea0 <_dl_fini>, stack_end=0xbffffbbc) at ../sysdeps/generic/libc-start.c:92 Then, just in case, I decided to do a backtrace of "psql", so I exited gdb and did a "gdb psql (PID of psql)", and then a "bt": Attaching to program: /usr/bin/psql, Pid 30491 Reading symbols from /usr/lib/libpq.so.2...(no debugging symbols found)...done. Reading symbols from /usr/lib/libssl.so.0...(no debugging symbols found)... done. Reading symbols from /usr/lib/libcrypto.so.0...(no debugging symbols found)... done. Reading symbols from /usr/lib/libz.so.1...(no debugging symbols found)...done. Reading symbols from /lib/libcrypt.so.1...done. Reading symbols from /lib/libresolv.so.2...done. Reading symbols from /lib/libnsl.so.1...done. Reading symbols from /lib/libdl.so.2...done. Reading symbols from /lib/libm.so.6...done. Reading symbols from /usr/lib/libreadline.so.3...done. Reading symbols from /lib/libc.so.6...done. Reading symbols from /lib/ld-linux.so.2...done. Reading symbols from /lib/libtermcap.so.2...done. ---Type <return> to continue, or q <return> to quit--- Reading symbols from /lib/libnss_files.so.2...done. 0x4028215e in __select () from /lib/libc.so.6 (gdb) bt #0 0x4028215e in __select () from /lib/libc.so.6 #1 0x4002487c in ?? () from /usr/lib/libpq.so.2 #2 0x4001c2da in PQgetResult () from /usr/lib/libpq.so.2 #3 0x4001c47f in PQexec () from /usr/lib/libpq.so.2 #4 0x804d79d in strcpy () at ../sysdeps/generic/strcpy.c:30 #5 0x804f041 in strcpy () at ../sysdeps/generic/strcpy.c:30 #6 0x80502b6 in strcpy () at ../sysdeps/generic/strcpy.c:30 #7 0x401ed9cb in __libc_start_main (main=0x804fcc0 <strcpy+22720>, argc=2, argv=0xbffffb74, init=0x8049be0 <_init>, fini=0x805797c <_fini>, rtld_fini=0x4000aea0 <_dl_fini>, stack_end=0xbffffb6c) at ../sysdeps/generic/libc-start.c:92 Did I do it right? Is there anything informative here? Paulo Jan. DDnet.
pgsql-general by date: