Martin Pitt wrote:
Hi PostgreSQL developers!

Does anybody happen to use Postgresql with winbind authentication? We
got the bug report below where this seems to crash.

Is this problem known?

Subject: Bug#249083: postgresql: Postgres SIGSEGV if wins in nsswitch.conf
Reply-To: Cory Dodt <[EMAIL PROTECTED]>, [EMAIL PROTECTED]
To: Debian Bug Tracking System <[EMAIL PROTECTED]>
Date: Fri, 14 May 2004 14:56:11 -0700

Package: postgresql
Version: 7.4.2-4
Severity: normal

[system information]

When configured to look up names with winbind (3.0.2a-1/sarge), postmaster
crashes with the following:

2004-05-14 14:50:14 [8725] LOG:  could not create IPv6 socket: Address family not 
supported by protocol
2004-05-14 14:50:14 [8725] LOG:  authentication file token too long, skipping: "˜.íñ
Segmentation fault

Duplicated this on Fedora 2 (RPM), but I don't get even that much logging. I can start single-user /usr/bin/postgres though.


--------------------
... the nsswitch.conf that goes with the above contains:
hosts: wins files dns

However if I change the name lookup order to:
hosts: files dns wins

pg starts up normally and the authentication file token error disappears.
(The IPV6 error remains.)

Don't worry about the IPV6 - that's normal.

If I run gdb --exec=/usr/bin/postmaster
...
Program received signal SIGSEGV, Segmentation fault.
0x008805c7 in getc () from /lib/tls/libc.so.6
(gdb) bt
#0  0x008805c7 in getc () from /lib/tls/libc.so.6
#1  0x0812089b in ?? ()
#2  0xfeefd090 in ?? ()
#3  0x004612d0 in ?? () from /lib/libnss_wins.so.2
#4  0x00000000 in ?? ()

Not much I know, but I don't have time this afternoon to setup and compile on my workstation.

I can say that the contents of pg_hba.conf don't seem to matter (i.e. local=trust), so I'm guessing it's looking up the localhost name(s).

The tail of strace /usr/bin/postmaster seems to bear this out:

unlink("/var/lib/pgsql/data/global/pgstat.stat") = 0
gettimeofday({1085493152, 677972}, NULL) = 0
open("/etc/resolv.conf", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=43, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf642e000
read(4, "search archonet.com\nnameserver 1"..., 4096) = 43
read(4, "", 4096) = 0
close(4) = 0
munmap(0xf642e000, 4096) = 0
open("/etc/ld.so.cache", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=59776, ...}) = 0
old_mmap(NULL, 59776, PROT_READ, MAP_PRIVATE, 4, 0) = 0xf641f000
close(4) = 0
open("/lib/tls/i686/libnss_wins.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/i686", 0xfef90bc4) = -1 ENOENT (No such file or directory)
open("/lib/tls/libnss_wins.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/lib/i686/libnss_wins.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/i686", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/lib/libnss_wins.so.2", O_RDONLY) = 4
read(4, "[EMAIL PROTECTED]"..., 512) = 512
fstat64(4, {st_mode=S_IFREG|0755, st_size=733664, ...}) = 0
old_mmap(NULL, 806248, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xe82000
old_mmap(0xf2d000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xaa000) = 0xf2d000
old_mmap(0xf36000, 68968, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf36000
close(4) = 0
open("/usr/lib/libldap.so.2", O_RDONLY) = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\226"..., 512) = 512
fstat64(4, {st_mode=S_IFREG|0755, st_size=203068, ...}) = 0
old_mmap(0x971000, 200116, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x111000
old_mmap(0x141000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x30000) = 0x141000
close(4) = 0
open("/usr/lib/liblber.so.2", O_RDONLY) = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\344"..., 512) = 512
fstat64(4, {st_mode=S_IFREG|0755, st_size=48528, ...}) = 0
old_mmap(0x95c000, 46160, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x142000
old_mmap(0x14d000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xb000) = 0x14d000
close(4) = 0
open("/usr/lib/libsasl2.so.2", O_RDONLY) = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\217\224"..., 512) = 512
fstat64(4, {st_mode=S_IFREG|0755, st_size=82288, ...}) = 0
old_mmap(0x946000, 79676, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x14e000
old_mmap(0x161000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x13000) = 0x161000
close(4) = 0
munmap(0xf641f000, 59776) = 0
time(NULL) = 1085493152
gettimeofday({1085493152, 694560}, NULL) = 0
stat64("/etc/samba/smb.conf", {st_mode=S_IFREG|0644, st_size=10677, ...}) = 0
uname({sys="Linux", node="client17.archonet.com", ...}) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---


In the output above, my workstation is "client17". My smb.conf hasn't been altered from the default.

I tried to get a stack trace; unfortunately the stack is corrupted but this
much (truncated) looks for real:
...
#8 0x40ecb020 in ?? () from /lib/libnss_wins.so.2
...
#35 0x4028efce in __errno_location () from /lib/libc.so.6

For the record, my Fedora setup is slightly behind the release version of core-2.


--
  Richard Huxton
  Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
     joining column's datatypes do not match

Reply via email to