Package: nscd Version: 2.7-18 Severity: normal Hi,
due to complicated circumstances it is perhaps not important to go into here, I have an nscd instance, compiled for i386, that should serve a mix of i386 and amd64 clients over the same unix domain socket (imagine, for example, chroots with different architectures). Apparently, some structure is aligned in an unfortunate way or maybe missing a 'packed' attribute; while 32bit clients can query nscd fine, queries from 64bit clients fail. I have obtained straces of the two kinds of behaviour. Good (i386 client): connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"...}, 110) = 0 send(3, "\x02\x00\x00\x00\x0b\x00\x00\x00\x07\x00\x00\x00\x70\x61\x73\x73\x77\x64\x00"..., 19, MSG_NOSIGNAL) = 19 poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}], 1, 5000) = 1 ([{fd=3, revents=POLLIN|POLLHUP}]) recvmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"\x70\x61\x73\x73\x77\x64\x00"..., 7}, {"\xb8\x4f\x03\x00\x00\x00\x00\x00"..., 8}], msg_controllen=16, {cmsg_len=16, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, {4}}, msg_flags=0}, MSG_CMSG_CLOEXEC) = 15 mmap2(NULL, 217016, PROT_READ, MAP_SHARED, 4, 0) = 0xf7d8a000 close(4) = 0 close(3) = 0 fstat64(1, {st_dev=makedev(0, 10), st_ino=22, st_mode=S_IFCHR|0620, st_nlink=1, st_uid=0, st_gid=5, st_blksize=1024, st_blocks=0, st_rdev=makedev(136, 20), st_atime=2009/01/20-18:46:57, st_mtime=2009/01/20-18:46:57, st_ctime=2009/01/20-18:31:00}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7f06000 write(1, "foobar:x:1061:1061:foo bar:/home/foobar:/bin/bash\n"..., 55) = 55 exit_group(0) = ? Bad (amd64 client): connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"...}, 110) = 0 sendto(3, "\x02\x00\x00\x00\x0b\x00\x00\x00\x07\x00\x00\x00\x70\x61\x73\x73\x77\x64\x00"..., 19, MSG_NOSIGNAL, NULL, 0) = 19 poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}], 1, 5000) = 1 ([{fd=3, revents=POLLIN|POLLHUP}]) recvmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"\x70\x61\x73\x73\x77\x64\x00"..., 7}, {"\xb8\x4f\x03\x00\x00\x00\x00\x00"..., 8}], msg_controllen=24, {cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, {4}}, msg_flags=0}, MSG_CMSG_CLOEXEC) = 15 mmap(NULL, 217016, PROT_READ, MAP_SHARED, 4, 0) = 0x2ac05280d000 close(4) = 0 close(3) = 0 exit_group(2) = ? I imagine the problem may be related to msg_controllen=16, {cmsg_len=16, cmsg_level=SOL_SOCKET, ... vs. msg_controllen=24, {cmsg_len=20, cmsg_level=SOL_SOCKET, ... It would be great not to have to run two instances of nscd that both cache the same backend. -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 Kernel: Linux 2.6.22.19-vs2.2.0.7-stop Locale: LANG=C, LC_CTYPE=C Shell: /bin/sh linked to /bin/bash Best regards, Andras -- Andras Korn <korn at chardonnay.math.bme.hu> <http://chardonnay.math.bme.hu/~korn/> QOTD: All generalizations are false (incl. this one) -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org