[Chilli] chilli_redir hung on reading from unavailable socket

Wichert Akkerman wichert at wiggy.net
Sat Jun 5 11:57:17 UTC 2010


We had another instance of chilli_redir stopping to respond today. An 
strace showed the same output we've seen earlier: a busy loop trying to 
read from an unavailable filedescriptor:

time(NULL)                              = 1275738485
read(25, 0x897e468, 11)                 = -1 EAGAIN (Resource 
temporarily unavailable)
time(NULL)                              = 1275738485
read(25, 0x897e468, 11)                 = -1 EAGAIN (Resource 
temporarily unavailable)
time(NULL)                              = 1275738485

This is the list of open filedescriptors for the chilli_redir process:

lr-x------ 1 root root 64 2010-06-05 13:48 0 -> pipe:[37194254]
l-wx------ 1 root root 64 2010-06-05 13:48 1 -> pipe:[37194255]
lrwx------ 1 root root 64 2010-06-05 13:48 10 -> socket:[37194893]
lrwx------ 1 root root 64 2010-06-05 13:48 11 -> anon_inode:[eventpoll]
lrwx------ 1 root root 64 2010-06-05 13:48 12 -> socket:[2343658067]
lrwx------ 1 root root 64 2010-06-05 13:48 13 -> socket:[2342518623]
lrwx------ 1 root root 64 2010-06-05 13:48 14 -> socket:[2343704926]
lrwx------ 1 root root 64 2010-06-05 13:48 15 -> socket:[2343205790]
lrwx------ 1 root root 64 2010-06-05 13:48 16 -> socket:[2343240766]
lrwx------ 1 root root 64 2010-06-05 13:48 17 -> socket:[2343733035]
lrwx------ 1 root root 64 2010-06-05 13:48 18 -> socket:[2343871860]
lrwx------ 1 root root 64 2010-06-05 13:48 19 -> socket:[2343872794]
l-wx------ 1 root root 64 2010-06-05 13:48 2 -> pipe:[37194256]
lrwx------ 1 root root 64 2010-06-05 13:48 20 -> socket:[2343899518]
lrwx------ 1 root root 64 2010-06-05 13:48 21 -> socket:[2344155630]
lrwx------ 1 root root 64 2010-06-05 13:48 22 -> socket:[101733818]
lrwx------ 1 root root 64 2010-06-05 13:48 23 -> socket:[2344215297]
lrwx------ 1 root root 64 2010-06-05 13:48 24 -> socket:[2344292072]
lrwx------ 1 root root 64 2010-06-05 13:48 25 -> socket:[2344474331]
lrwx------ 1 root root 64 2010-06-05 13:48 3 -> socket:[37194892]
lrwx------ 1 root root 64 2010-06-05 13:48 30 -> socket:[2342619478]
lrwx------ 1 root root 64 2010-06-05 13:48 31 -> socket:[2342619647]
lrwx------ 1 root root 64 2010-06-05 13:48 32 -> socket:[2342630816]
lrwx------ 1 root root 64 2010-06-05 13:48 33 -> socket:[2342673196]
lrwx------ 1 root root 64 2010-06-05 13:48 37 -> socket:[2342750246]
lrwx------ 1 root root 64 2010-06-05 13:48 38 -> socket:[2342819623]
lrwx------ 1 root root 64 2010-06-05 13:48 39 -> socket:[2343164358]
lrwx------ 1 root root 64 2010-06-05 13:48 4 -> /dev/net/tun
lrwx------ 1 root root 64 2010-06-05 13:48 40 -> socket:[2343173350]
lrwx------ 1 root root 64 2010-06-05 13:48 5 -> socket:[37194878]
lr-x------ 1 root root 64 2010-06-05 13:48 6 -> /dev/urandom
lrwx------ 1 root root 64 2010-06-05 13:48 7 -> socket:[37194881]
lrwx------ 1 root root 64 2010-06-05 13:48 8 -> socket:[37194883]
lrwx------ 1 root root 64 2010-06-05 13:48 9 -> socket:[37194885]

So filedescriptor 25 is one of the sockets. Looking at the open files 
for the chilli process I do not see the same socket in the list:

lr-x------ 1 root root 64 2010-06-05 13:49 0 -> pipe:[37194254]
l-wx------ 1 root root 64 2010-06-05 13:49 1 -> pipe:[37194255]
lrwx------ 1 root root 64 2010-06-05 13:49 10 -> anon_inode:[eventpoll]
l-wx------ 1 root root 64 2010-06-05 13:49 2 -> pipe:[37194256]
lrwx------ 1 root root 64 2010-06-05 13:49 3 -> socket:[37194871]
lrwx------ 1 root root 64 2010-06-05 13:49 4 -> /dev/net/tun
lrwx------ 1 root root 64 2010-06-05 13:49 5 -> socket:[37194878]
lr-x------ 1 root root 64 2010-06-05 13:49 6 -> /dev/urandom
lrwx------ 1 root root 64 2010-06-05 13:49 7 -> socket:[37194881]
lrwx------ 1 root root 64 2010-06-05 13:49 8 -> socket:[37194883]
lrwx------ 1 root root 64 2010-06-05 13:49 9 -> socket:[37194885]

I'm not sure what socket 25 should be.

Wichert.



More information about the Chilli mailing list