Process hung in STOPPED_SINGLE, wchan vodead, and cannot be killed or continued

Palle Girgensohn girgen at FreeBSD.org
Wed Oct 7 09:46:50 UTC 2015


Hi,

I see a process that is hung in a jail, and cannot be killed or continued:

# ps HO wchan,nwchan,ppid -p 92266
  PID WCHAN  NWCHAN           PPID TT  STAT    TIME COMMAND
92266 -      -                   1  -  TJ   0:00,73 /usr/local/bin/jsvc -home /usr/local/openjdk8 -server
92266 vodead fffff811a5e6b400    1  -  TJ   0:00,48 /usr/local/bin/jsvc -home /usr/local/openjdk8 -server

# top
...
  PID USERNAME     THR PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
92266 nobody         2  20    0  4470M   418M STOP    2   0:20   0.00% jsvc


# ps axu
USER     PID %CPU %MEM     VSZ    RSS TT  STAT STARTED    TIME COMMAND
nobody 92266  0,0  0,4 4577204 427756  -  TJ   11:02pm 0:20,08 /usr/local/bin/jsvc -home /usr/local/openjdk8 ...

# sockstat
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS      
nobody   jsvc       92266 15 stream (not connected)
nobody   jsvc       92266 16 tcp4   127.0.0.1:8078        *:*
?        ?          ?     ?  tcp4   127.0.0.1:8078        127.0.0.1:22789
...

# sockstat | grep '^?' |wc -l
     151

# netstat -an | less
netstat: kvm not available: /dev/mem: No such file or directory
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        (state)
tcp4     374      0 127.0.0.1.8078         127.0.0.1.32866        CLOSED
...


# procstat -t 92266
  PID    TID COMM             TDNAME           CPU  PRI STATE   WCHAN    
92266 105754 jsvc             -                 20  120 stop    -         
92266 106982 jsvc             -                  2  120 stop    vodead    
# procstat -k 92266
  PID    TID COMM             TDNAME           KSTACK                       
92266 105754 jsvc             -                mi_switch thread_suspend_switch thread_single exit1 sys_sys_exit amd64_syscall Xfast_syscall 
92266 106982 jsvc             -                mi_switch sleepq_switch sleepq_wait _sleep vnode_create_vobject zfs_freebsd_open VOP_OPEN_APV vn_open_vnode vn_open_cred kern_openat amd64_syscall Xfast_syscall 



8078 is the java port that it used to listen to...


all look like this
?        ?          ?     ?  tcp4   127.0.0.1:8078        127.0.0.1:53583


# gdb -p 92266  /usr/local/bin/jsvc 
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 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 "amd64-marcel-freebsd"...(no debugging symbols found)...
Attaching to program: /usr/local/bin/jsvc, process 92266

[ just hangs ]...

^Z
[1]+  Stopped                 gdb -p 92266 /usr/local/bin/jsvc
[root at tranbar /]# 
[root at tranbar /]# 
[root at tranbar /]# kill %1
[root at tranbar /]# 
[1]+  Terminated              gdb -p 92266 /usr/local/bin/jsvc
[root at tranbar /]# 




The culprit to begin with could be this:

Oct  7 07:54:00 host kernel: sonewconn: pcb 0xfffff80b49171310: Listen queue overflow: 151 already in queue awaiting acceptance (6 occurrences)

Occurred all through the night, saturating a service, *very likely* the one now showing problems, but i was never there to check. 151 lost network sockets (see sockstat above) connects the dots.

It seems the service entered STOP when we tried to stop it. jsvc is similar to daemontools, and I remeber seeing a references to a parent process 92265, but I might be imaginating, since the ppid = 1.

Trying to shut down the jail we got hanging shutdown processes:

from host:/var/log/console.jailname:
...
Stopping tomcat.
Waiting for PIDS: 9226690 second watchdog timeout expired. Shutdown terminated.
Ons  7 Okt 2015 08:27:19 CEST
...


# freebsd-version -ku
10.2-RELEASE-p3
10.2-RELEASE-p3


So basically, is there a way to get rid of this process without rebooting?

Palle



More information about the freebsd-net mailing list