Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Apr 2009 18:31:24 GMT
From:      Damien Bobillot <damien.bobillot_freebsd@m4x.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   bin/134022: host, dig and nslookup hang in _umtx_op syscall after 7.1-RELEASE-p5 update
Message-ID:  <200904261831.n3QIVObE043933@www.freebsd.org>
Resent-Message-ID: <200904261840.n3QIe1R3029954@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         134022
>Category:       bin
>Synopsis:       host, dig and nslookup hang in _umtx_op syscall after 7.1-RELEASE-p5 update
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Apr 26 18:40:00 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Damien Bobillot
>Release:        7.1-RELEASE-p5
>Organization:
>Environment:
FreeBSD <hostname> 7.1-RELEASE-p4 FreeBSD 7.1-RELEASE-p4 #0: Sun Mar 22 09:43:46 UTC 2009     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64


>Description:
(I've rebooted after installing the "7.1-RELEASE-p5" patch with freebsd-update. It doesn't seem that this patch don't change the default kernel, that's why uname says 7.1-RELEASE-p4 and not 7.1-RELEASE-p5)

The commands host, dig and nslookup hang into the _umtx_op system call (see attached ktrace for host). They can only be killed with SIGKILL.

However, any others tools can resolve address using DNS (ping, tcpdump).

Rollbacking to 7.1-RELEASE-p4 (freebsd-update rollback) suppressed the problem.

Searching the web I saw (may be linked to my issue) :
- bug report bin/85810 "dig(1): nslookup/dig hang and processes cannot be killed"
- http://www.mailinglistarchive.com/freebsd-questions@freebsd.org/msg50315.html

As said by freebsd-update, 7.1-RELEASE-p5 changes :
/lib/libc.so.7
/lib/libcrypto.so.5
/rescue/*
/sbin/init
/usr/bin/dig
/usr/bin/host
/usr/bin/nslookup
/usr/bin/nsupdate
/usr/bin/openssl
/usr/lib/libc.a
/usr/lib/libc_pic.a
/usr/lib/libcrypto.a
/usr/lib/libssl.a
/usr/lib/libssl.so.5
/usr/libexec/lukemftpd
/usr/libexec/telnetd
/usr/sbin/dnssec-keygen
/usr/sbin/dnssec-signzone
/usr/sbin/lwresd
/usr/sbin/named
/usr/sbin/named-checkconf
/usr/sbin/named-checkzone
/usr/sbin/named-compilezone
/usr/sbin/ntpd
/usr/sbin/rndc-confgen


>How-To-Repeat:
run :
host freebsd.org
>Fix:


Patch attached with submission follows:

  3077 ktrace   0.000000 RET   ktrace 0
  3077 ktrace   0.000051 CALL  execve(0x7fffffffe630,0x7fffffffec08,0x7fffffffec20)
  3077 ktrace   0.000068 NAMI  "/bin/host"
  3077 ktrace   0.000084 RET   execve -1 errno 2 No such file or directory
  3077 ktrace   0.000091 CALL  execve(0x7fffffffe630,0x7fffffffec08,0x7fffffffec20)
  3077 ktrace   0.000106 NAMI  "/sbin/host"
  3077 ktrace   0.000153 RET   execve -1 errno 2 No such file or directory
  3077 ktrace   0.000159 CALL  execve(0x7fffffffe630,0x7fffffffec08,0x7fffffffec20)
  3077 ktrace   0.000174 NAMI  "/usr/bin/host"
  3077 ktrace   0.000269 NAMI  "/libexec/ld-elf.so.1"
  3077 host     0.000319 RET   execve 0
  3077 host     0.000334 CALL  __sysctl(0x7fffffffe810,0x2,0x7fffffffe82c,0x7fffffffe820,0,0)
  3077 host     0.000342 RET   __sysctl 0
  3077 host     0.000348 CALL  mmap(0,0x230,PROT_READ|PROT_WRITE,MAP_ANON,0xffffffff,0)
  3077 host     0.000355 RET   mmap 6606848/0x80064d000
  3077 host     0.000386 CALL  munmap(0x80064d000,0x230)
  3077 host     0.000393 RET   munmap 0
  3077 host     0.000401 CALL  __sysctl(0x7fffffffe880,0x2,0x800755de8,0x7fffffffe878,0,0)
  3077 host     0.000408 RET   __sysctl 0
  3077 host     0.000414 CALL  mmap(0,0x8000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,0xffffffff,0)
  3077 host     0.000421 RET   mmap 6606848/0x80064d000
  3077 host     0.000439 CALL  issetugid
  3077 host     0.000445 RET   issetugid 0
  3077 host     0.000470 CALL  open(0x80064a4f2,O_RDONLY,<unused>0x1b6)
  3077 host     0.000479 NAMI  "/etc/libmap.conf"
  3077 host     0.000489 RET   open -1 errno 2 No such file or directory
  3077 host     0.000508 CALL  open(0x800649508,O_RDONLY,<unused>0x2f)
  3077 host     0.000515 NAMI  "/var/run/ld-elf.so.hints"
  3077 host     0.000526 RET   open 3
  3077 host     0.000532 CALL  read(0x3,0x7fffffffe5c0,0x80)
  3077 host     0.000541 GIO   fd 3 read 128 bytes
	   "..."
  3077 host     0.000547 RET   read 128/0x80
  3077 host     0.000557 CALL  lseek(0x3,0x80,SEEK_SET)
  3077 host     0.000564 RET   lseek 128/0x80
  3077 host     0.000570 CALL  read(0x3,0x800651000,0x97)
  3077 host     0.000578 GIO   fd 3 read 151 bytes
       "/lib:/usr/lib:/usr/lib/compat:/usr/local/lib:/usr/local/lib/dovecot:/usr/local/lib/dovecot/imap:/usr/local/lib/dovecot/lda:/usr/local/lib/dovecot/pop3\0"
  3077 host     0.000584 RET   read 151/0x97
  3077 host     0.000591 CALL  close(0x3)
  3077 host     0.000600 RET   close 0
  3077 host     0.000613 CALL  access(0x800652000,F_OK)
  3077 host     0.000619 NAMI  "/lib/libcrypto.so.5"
  3077 host     0.000630 RET   access 0
  3077 host     0.000636 CALL  open(0x80064e080,O_RDONLY,<unused>0x755cc0)
  3077 host     0.000643 NAMI  "/lib/libcrypto.so.5"
  3077 host     0.000652 RET   open 3
  3077 host     0.000659 CALL  fstat(0x3,0x7fffffffe840)
  3077 host     0.000666 RET   fstat 0
  3077 host     0.000671 CALL  read(0x3,0x800754ca0,0x1000)
  3077 host     0.000684 GIO   fd 3 read 4096 bytes
	   "..."
  3077 host     0.000701 RET   read 4096/0x1000
  3077 host     0.000707 CALL  mmap(0,0x292000,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_NOCORE,0x3,0)
  3077 host     0.000717 RET   mmap 7708672/0x80075a000
  3077 host     0.000723 CALL  mprotect(0x8008a7000,0x1000,PROT_READ|PROT_WRITE|PROT_EXEC)
  3077 host     0.000731 RET   mprotect 0
  3077 host     0.000744 CALL  mprotect(0x8008a7000,0x1000,PROT_READ|PROT_EXEC)
  3077 host     0.000753 RET   mprotect 0
  3077 host     0.000759 CALL  mmap(0x8009a7000,0x42000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,0x3,0x14d000)
  3077 host     0.000776 RET   mmap 10121216/0x8009a7000
  3077 host     0.000790 CALL  mmap(0x8009e9000,0x3000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,0xffffffff,0)
  3077 host     0.000798 RET   mmap 10391552/0x8009e9000
  3077 host     0.000824 CALL  close(0x3)
  3077 host     0.000832 RET   close 0
  3077 host     0.000839 CALL  access(0x800652000,F_OK)
  3077 host     0.000847 NAMI  "/lib/libthr.so.3"
  3077 host     0.000857 RET   access 0
  3077 host     0.000863 CALL  open(0x80064e0c0,O_RDONLY,<unused>0x755cc0)
  3077 host     0.000870 NAMI  "/lib/libthr.so.3"
  3077 host     0.000879 RET   open 3
  3077 host     0.000886 CALL  fstat(0x3,0x7fffffffe840)
  3077 host     0.000893 RET   fstat 0
  3077 host     0.000898 CALL  read(0x3,0x800754ca0,0x1000)
  3077 host     0.000909 GIO   fd 3 read 4096 bytes
	   "..."
  3077 host     0.000925 RET   read 4096/0x1000
  3077 host     0.000932 CALL  mmap(0,0x116000,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_NOCORE,0x3,0)
  3077 host     0.000951 RET   mmap 10403840/0x8009ec000
  3077 host     0.000958 CALL  mprotect(0x8009fc000,0x1000,PROT_READ|PROT_WRITE|PROT_EXEC)
  3077 host     0.000966 RET   mprotect 0
  3077 host     0.000979 CALL  mprotect(0x8009fc000,0x1000,PROT_READ|PROT_EXEC)
  3077 host     0.000995 RET   mprotect 0
  3077 host     0.001001 CALL  mmap(0x800afd000,0x3000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,0x3,0x11000)
  3077 host     0.001011 RET   mmap 11522048/0x800afd000
  3077 host     0.001026 CALL  mmap(0x800b00000,0x2000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,0xffffffff,0)
  3077 host     0.001033 RET   mmap 11534336/0x800b00000
  3077 host     0.001042 CALL  close(0x3)
  3077 host     0.001049 RET   close 0
  3077 host     0.001056 CALL  access(0x800652000,F_OK)
  3077 host     0.001063 NAMI  "/lib/libc.so.7"
  3077 host     0.001072 RET   access 0
  3077 host     0.001079 CALL  open(0x80064e100,O_RDONLY,<unused>0x755cc0)
  3077 host     0.001085 NAMI  "/lib/libc.so.7"
  3077 host     0.001095 RET   open 3
  3077 host     0.001100 CALL  fstat(0x3,0x7fffffffe840)
  3077 host     0.001107 RET   fstat 0
  3077 host     0.001114 CALL  read(0x3,0x800754ca0,0x1000)
  3077 host     0.001123 GIO   fd 3 read 4096 bytes
	   "..."
  3077 host     0.001140 RET   read 4096/0x1000
  3077 host     0.001147 CALL  mmap(0,0x223000,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_NOCORE,0x3,0)
  3077 host     0.001157 RET   mmap 11542528/0x800b02000
  3077 host     0.001162 CALL  mprotect(0x800bf1000,0x1000,PROT_READ|PROT_WRITE|PROT_EXEC)
  3077 host     0.001170 RET   mprotect 0
  3077 host     0.001193 CALL  mprotect(0x800bf1000,0x1000,PROT_READ|PROT_EXEC)
  3077 host     0.001201 RET   mprotect 0
  3077 host     0.001207 CALL  mmap(0x800cf1000,0x1d000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,0x3,0xef000)
  3077 host     0.001220 RET   mmap 13570048/0x800cf1000
  3077 host     0.001234 CALL  mmap(0x800d0e000,0x17000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,0xffffffff,0)
  3077 host     0.001241 RET   mmap 13688832/0x800d0e000
  3077 host     0.001259 CALL  close(0x3)
  3077 host     0.001266 RET   close 0
  3077 host     0.001283 CALL  sysarch(0x81,0x7fffffffe900)
  3077 host     0.001290 RET   sysarch 0
  3077 host     0.001297 CALL  mmap(0,0xd90,PROT_READ|PROT_WRITE,MAP_ANON,0xffffffff,0)
  3077 host     0.001303 RET   mmap 6639616/0x800655000
  3077 host     0.001309 CALL  munmap(0x800655000,0xd90)
  3077 host     0.001317 RET   munmap 0
  3077 host     0.001325 CALL  mmap(0,0xd950,PROT_READ|PROT_WRITE,MAP_ANON,0xffffffff,0)
  3077 host     0.001331 RET   mmap 6639616/0x800655000
  3077 host     0.002064 CALL  munmap(0x800655000,0xd950)
  3077 host     0.002079 RET   munmap 0
  3077 host     0.002138 CALL  mmap(0,0x1e00,PROT_READ|PROT_WRITE,MAP_ANON,0xffffffff,0)
  3077 host     0.002146 RET   mmap 6639616/0x800655000
  3077 host     0.002224 CALL  munmap(0x800655000,0x1e00)
  3077 host     0.002234 RET   munmap 0
  3077 host     0.002242 CALL  mmap(0,0xa490,PROT_READ|PROT_WRITE,MAP_ANON,0xffffffff,0)
  3077 host     0.002249 RET   mmap 6639616/0x800655000
  3077 host     0.002490 CALL  munmap(0x800655000,0xa490)
  3077 host     0.002503 RET   munmap 0
  3077 host     0.002570 CALL  __sysctl(0x7fffffffe8b0,0x2,0x800d0f0c0,0x7fffffffe8a8,0,0)
  3077 host     0.002583 RET   __sysctl 0
  3077 host     0.002599 CALL  getpid
  3077 host     0.002605 RET   getpid 3077/0xc05
  3077 host     0.002618 CALL  __sysctl(0x7fffffffe8a0,0x2,0x800b01b70,0x7fffffffe8a8,0,0)
  3077 host     0.002626 RET   __sysctl 0
  3077 host     0.002648 CALL  __sysctl(0x7fffffffe830,0x2,0x7fffffffe7c0,0x7fffffffe828,0x8009fc6d8,0xd)
  3077 host     0.002665 RET   __sysctl 0
  3077 host     0.002673 CALL  __sysctl(0x7fffffffe7c0,0x3,0x800b00a68,0x7fffffffe8a8,0,0)
  3077 host     0.002680 RET   __sysctl 0
  3077 host     0.002696 CALL  __sysctl(0x7fffffffe860,0x2,0x800d21db8,0x7fffffffe858,0,0)
  3077 host     0.002706 RET   __sysctl 0
  3077 host     0.002726 CALL  __sysctl(0x7fffffffe790,0x2,0x800d13128,0x7fffffffe7a8,0,0)
  3077 host     0.002733 RET   __sysctl 0
  3077 host     0.002742 CALL  __sysctl(0x7fffffffe320,0x2,0x7fffffffe33c,0x7fffffffe330,0,0)
  3077 host     0.002750 RET   __sysctl 0
  3077 host     0.002757 CALL  readlink(0x800be980a,0x7fffffffe380,0x400)
  3077 host     0.002765 NAMI  "/etc/malloc.conf"
  3077 host     0.002776 RET   readlink -1 errno 2 No such file or directory
  3077 host     0.002794 CALL  issetugid
  3077 host     0.002801 RET   issetugid 0
  3077 host     0.002816 CALL  break(0x700000)
  3077 host     0.002824 RET   break 0
  3077 host     0.002855 CALL  __sysctl(0x7fffffffe670,0x2,0x7fffffffe68c,0x7fffffffe680,0,0)
  3077 host     0.002866 RET   __sysctl 0
  3077 host     0.002871 CALL  mmap(0,0x100000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,0xffffffff,0)
  3077 host     0.002879 RET   mmap 13783040/0x800d25000
  3077 host     0.002885 CALL  mmap(0x800e25000,0xdb000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,0xffffffff,0)
  3077 host     0.002891 RET   mmap 14831616/0x800e25000
  3077 host     0.002899 CALL  munmap(0x800d25000,0xdb000)
  3077 host     0.002908 RET   munmap 0
  3077 host     0.002939 CALL  thr_self(0x800e020f0)
  3077 host     0.002946 RET   thr_self 0
  3077 host     0.002953 CALL  mmap(0x7fffffbff000,0x1000,PROT_NONE,MAP_ANON,0xffffffff,0)
  3077 host     0.002959 RET   mmap -4198400/0x7fffffbff000
  3077 host     0.002967 CALL  thr_set_name(0x18700,0x8009fc720)
  3077 host     0.002974 RET   thr_set_name 0
  3077 host     0.002981 CALL  rtprio_thread(0,0x18700,0x7fffffffe850)
  3077 host     0.002995 RET   rtprio_thread 0
  3077 host     0.003004 CALL  sysarch(0x81,0x7fffffffe870)
  3077 host     0.003010 RET   sysarch 0
  3077 host     0.003018 CALL  sigprocmask(SIG_SETMASK,0x7fffffffe890,0x7fffffffe880)
  3077 host     0.003025 RET   sigprocmask 0
  3077 host     0.003032 CALL  sigaction(SIG 32,0x7fffffffe850,0)
  3077 host     0.003038 RET   sigaction 0
  3077 host     0.003045 CALL  sigprocmask(SIG_SETMASK,0x7fffffffe880,0)
  3077 host     0.003051 RET   sigprocmask 0
  3077 host     0.003070 CALL  sigprocmask(SIG_BLOCK,0x800754ba0,0x7fffffffe8d0)
  3077 host     0.003083 RET   sigprocmask 0
  3077 host     0.003089 CALL  sigprocmask(SIG_SETMASK,0x800754bb0,0)
  3077 host     0.003095 RET   sigprocmask 0
  3077 host     0.003140 CALL  sigaction(SIGPIPE,0x7fffffffe270,0)
  3077 host     0.003150 RET   sigaction 0
  3077 host     0.003156 CALL  sigaction(SIGHUP,0x7fffffffe270,0)
  3077 host     0.003163 RET   sigaction 0
  3077 host     0.003169 CALL  sigaction(SIGTERM,0x7fffffffe270,0)
  3077 host     0.003175 RET   sigaction 0
  3077 host     0.003181 CALL  sigaction(SIGINT,0x7fffffffe270,0)
  3077 host     0.003187 RET   sigaction 0
  3077 host     0.003198 CALL  sigprocmask(SIG_BLOCK,0x7fffffffe280,0)
  3077 host     0.003204 RET   sigprocmask 0
  3077 host     0.003225 CALL  socket(PF_INET,SOCK_STREAM,IPPROTO_IP)
  3077 host     0.003241 RET   socket 3
  3077 host     0.003250 CALL  close(0x3)
  3077 host     0.003264 RET   close 0
  3077 host     0.003271 CALL  socket(PF_INET6,SOCK_STREAM,IPPROTO_IP)
  3077 host     0.003281 RET   socket 3
  3077 host     0.003296 CALL  getsockname(0x3,0x7fffffffe2c0,0x7fffffffe2dc)
  3077 host     0.003306 RET   getsockname 0
  3077 host     0.003311 CALL  close(0x3)
  3077 host     0.003321 RET   close 0
  3077 host     0.003327 CALL  socket(PF_LOCAL,SOCK_STREAM,0)
  3077 host     0.003336 RET   socket 3
  3077 host     0.003342 CALL  close(0x3)
  3077 host     0.003357 RET   close 0
  3077 host     0.003646 CALL  _umtx_op(0x7fffffffe198,0x3,0x1,0,0)
  3077 host     0.003655 RET   _umtx_op 0
  3077 host     0.003661 CALL  sigprocmask(SIG_BLOCK,0x7fffffffe130,0x800e021c0)
  3077 host     0.003668 RET   sigprocmask 0
  3077 host     0.003677 CALL  _umtx_op(0x800b00a80,0x5,0,0,0)
  3077 host     6.887548 RET   _umtx_op RESTART
  3077 host     6.887565 PSIG  SIGKILL SIG_DFL


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904261831.n3QIVObE043933>