Re: BUG #3902: Segmentation faults using GSSAPI authentication - Mailing list pgsql-bugs

From Peter Koczan
Subject Re: BUG #3902: Segmentation faults using GSSAPI authentication
Date
Msg-id 4544e0330801281211o12a17825wf4bce6d43e1678da@mail.gmail.com
Whole thread Raw
In response to Re: BUG #3902: Segmentation faults using GSSAPI authentication  ("Peter Koczan" <pjkoczan@gmail.com>)
Responses Re: BUG #3902: Segmentation faults using GSSAPI authentication
List pgsql-bugs
> > No, we want a stack trace from the crash.  You could attach gdb to the
> > child process after forking and before you provoke the crash; or arrange
> > for a core dump file to be produced and gdb that.
>
> I should be able to get that for you tomorrow, if we don't figure out
> the issue sooner.

Here's a few stack traces for you.

Initial idle connection stack trace:

(gdb) bt
#0  0x006ac402 in __kernel_vsyscall ()
#1  0x005ffed3 in __read_nocancel () from /lib/libc.so.6
#2  0x00ad569e in sock_read () from /s/openssl-0.9.8e/lib/libcrypto.so.0.9.8e
#3  0x00000008 in ?? ()
#4  0x085f63a8 in ?? ()
#5  0x00000005 in ?? ()
#6  0x00b6b520 in ?? () from /s/openssl-0.9.8e/lib/libcrypto.so.0.9.8e
#7  0x085c9a78 in ?? ()
#8  0x00000000 in ?? ()

After a bit of "step"-ing (15 to be exact) after sending the query to
provoke the crash, there's an I/O error reported, always at the same
address. Note that stepping goes through a few SSL functions, and
secure_read as well:

(gdb) step
Single stepping until exit from function PostgresMain,
which has no line number information.
Warning:
Cannot insert breakpoint -57.
Error accessing memory address 0x783e3459: Input/output error.

(gdb) bt
#0  0x00569990 in siglongjmp () from /lib/libc.so.6
#1  0x0830dec0 in pg_re_throw ()
#2  0x0830caa1 in errfinish ()
#3  0x0812d40d in ExpandAllTables ()
#4  0x0812d0b4 in ExpandColumnRefStar ()
#5  0x0812be20 in transformTargetList ()
#6  0x080fe481 in transformSelectStmt ()
#7  0x080fd7fc in transformStmt ()
#8  0x080fd60d in parse_analyze ()
#9  0x08240fd8 in pg_analyze_and_rewrite ()
#10 0x082413ee in exec_simple_query ()
#11 0x08245284 in PostgresMain ()
#12 0x08210b9e in BackendRun ()
#13 0x08210174 in BackendStartup ()
#14 0x0820dc53 in ServerLoop ()
#15 0x0820d631 in PostmasterMain ()
#16 0x081b2ee7 in main ()

3 more "step"s gets me here, to the segfault and connection termination:
(gdb) step
Single stepping until exit from function siglongjmp,
which has no line number information.

Program received signal SIGSEGV, Segmentation fault.
0x0056bfde in getenv () from /lib/libc.so.6
(gdb) bt
#0  0x0056bfde in getenv () from /lib/libc.so.6
#1  0x005c1490 in tzset_internal () from /lib/libc.so.6
#2  0x005c1fad in tzset () from /lib/libc.so.6
#3  0x005c6726 in strftime_l () from /lib/libc.so.6
#4  0x0060b67f in __vsyslog_chk () from /lib/libc.so.6
#5  0x0060bbaa in syslog () from /lib/libc.so.6
#6  0x0830e3f9 in write_syslog ()
#7  0x0830f7a8 in send_message_to_server_log ()
#8  0x0830daf4 in EmitErrorReport ()
#9  0x082450bd in PostgresMain ()
#10 0x08210b9e in BackendRun ()
#11 0x08210174 in BackendStartup ()
#12 0x0820dc53 in ServerLoop ()
#13 0x0820d631 in PostmasterMain ()
#14 0x081b2ee7 in main ()

One more step, the connection is gone:
(gdb) step
Single stepping until exit from function getenv,
which has no line number information.

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.

pgsql-bugs by date:

Previous
From: "ted petrosky"
Date:
Subject: BUG #3911: can not 'make'
Next
From: Tom Lane
Date:
Subject: Re: BUG #3911: can not 'make'