Steinar H. Gunderson wrote:
> On Mon, Nov 19, 2007 at 07:43:16PM +0100, Jonas Häggqvist wrote:
>> Unfortunately, it came back. I have a backtrace now:
> 
> Thanks. This looks like a most real bug, probably related to structure
> padding somehow, but I'm not entirely sure how to attack it. Could you by any
> chance reproduce it and get a backtrace under a non-optimizing build?

After a bit of convincing (nfs-utils doesn't seem to support
DEB_BUILD_OPTIONS=noopt), here it is (attached, if all goes well).

-- 
Jonas Häggqvist
rasher(at)rasher(dot)dk
GNU gdb 6.4.90-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "arm-linux-gnu"...Using host libthread_db library 
"/lib/libthread_db.so.1".

(gdb) run -d all -F
Starting program: /usr/sbin/rpc.mountd -d all -F
mountd: MNT3(/mnt/wd) called

Program received signal SIGSEGV, Segmentation fault.
0x400b2e4c in memcpy () from /lib/libc.so.6
(gdb) bt full
#0  0x400b2e4c in memcpy () from /lib/libc.so.6
No symbol table info available.
#1  0x00011428 in hostent_dup (hp=0x4015a9bc) at hostname.c:152
        len_ent = 20
        len_name = 12
        num_aliases = 1
        len_aliases = 4
        num_addr_list = 2
        len_addr_list = 12
        pos = 44
        i = 0
        sp = (char **) 0x30613
        cp = (struct hostent *) 0x316f8
#2  0x000117c0 in get_reliable_hostbyaddr (addr=0x2bcec "ˬ\001#", len=4, 
type=2) at hostname.c:241
        hp = (struct hostent *) 0x0
        reverse = (struct hostent *) 0x4015a9bc
        forward = (struct hostent *) 0xbeb4a583
        sp = (char **) 0xbeb4a58a
#3  0x0000ca34 in auth_authenticate (what=0x1aff0 "mount", caller=0x2bce8, 
path=0xbeb4b5d7 "/mnt/wd")
    at auth.c:153
        exp = (nfs_export *) 0x0
        epath = "/mnt/wd", '\0' <repeats 4089 times>
        p = 0x0
        hp = (struct hostent *) 0x0
        addr = {s_addr = 587311296}
        error = 1073862316
#4  0x0000b04c in get_rootfh (rqstp=0xbeb4cc38, path=0xbeb4c744, 
error=0xbeb4c720, v3=1)
    at mountd.c:384
        sin = (struct sockaddr_in *) 0x2bce8
        stb = {st_dev = 0, __pad1 = 0, __st_ino = 0, st_mode = 0, st_nlink = 0, 
st_uid = 0, 
  st_gid = 0, st_rdev = 0, __pad2 = 0, st_size = 0, st_blksize = 1075156540, 
  st_blocks = 35434894908, st_atim = {tv_sec = 13416, tv_nsec = -1095447404}, 
st_mtim = {tv_sec = 1, 
    tv_nsec = 179736}, st_ctim = {tv_sec = -1095448764, tv_nsec = 1024}, st_ino 
= 771961316853560}
        estb = {st_dev = 0, __pad1 = 0, __st_ino = 0, st_mode = 0, st_nlink = 
0, st_uid = 0, 
  st_gid = 0, st_rdev = 0, __pad2 = 0, st_size = 0, st_blksize = 0, st_blocks = 
0, st_atim = {
    tv_sec = 0, tv_nsec = 0}, st_mtim = {tv_sec = 0, tv_nsec = 0}, st_ctim = 
{tv_sec = 0, 
    tv_nsec = 0}, st_ino = 0}
        exp = (nfs_export *) 0x40123db4
        rpath = "/mnt/wd", '\0' <repeats 690 times>, "[EMAIL PROTECTED]@[EMAIL 
PROTECTED]@8\005@", '\0' <repeats 12 times>, "[EMAIL PROTECTED]@[EMAIL 
PROTECTED]@[EMAIL PROTECTED]([EMAIL PROTECTED]@", '\0' <repeats 12 times>, 
"[EMAIL PROTECTED]@°¹´¾\000\000\000\000([EMAIL PROTECTED]@[EMAIL PROTECTED]"...
        p = 0xbeb4b5d7 "/mnt/wd"
#5  0x0000aecc in mount_mnt_3_svc (rqstp=0xbeb4cc38, path=0xbeb4c744, 
res=0xbeb4c720) at mountd.c:349
        fh = (struct nfs_fh_len *) 0x2be18
        flavors = {0, 1, 390003, 390004, 390005}
#6  0x0001722c in rpc_dispatch (rqstp=0xbeb4cc38, transp=0x2bcd8, 
dtable=0x25640, nvers=3, 
    argp=0xbeb4c744, resp=0xbeb4c720) at rpcdispatch.c:55
        dent = (struct rpc_dentry *) 0x255b8
#7  0x0000c48c in mount_dispatch (rqstp=0xbeb4cc38, transp=0x2bcd8) at 
mount_dispatch.c:83
        argument = {dirpath = 0x2f530 "/mnt/wd"}
        result = {fstatus = {fhs_status = 0, fhstatus_u = {
      fhs_fhandle = '\0' <repeats 16 times>, "[EMAIL PROTECTED]"}}, mountlist = 
0x0, 
  exports = 0x0}
#8  0x401215ec in svc_getreq_common () from /lib/libc.so.6
No symbol table info available.
#9  0x40121630 in svc_getreqset () from /lib/libc.so.6
No symbol table info available.
#10 0x0000ee24 in my_svc_run () at svc_run.c:90
        readfds = {fds_bits = {512, 0 <repeats 31 times>}}
        selret = 1
#11 0x0000c344 in main (argc=4, argv=0xbeb4ce14) at mountd.c:722
        export_file = 0x1b0c0 "/etc/exports"
        state_dir = 0x1b0d0 "/var/lib/nfs"
        foreground = 1
        port = 0
        descriptors = 0
        c = -1
        sa = {__sigaction_handler = {sa_handler = 0xa65c <sig_hup>, 
    sa_sigaction = 0xa65c <sig_hup>}, sa_mask = {__val = {0 <repeats 32 
times>}}, sa_flags = 0, 
  sa_restorer = 0x40052ac0 <nis_clone_result+96660>}
        rlim = {rlim_cur = 1024, rlim_max = 1024}
(gdb) quitquit
The program is running.  Exit anyway? (y or n) 

Reply via email to