[Chilli] chilli_redir hung on reading from unavailable socket

David Bird david at coova.com
Mon Jun 7 10:19:08 UTC 2010


See revision 345. There was an issue when using chilli_redir and openssl
and looping instead of returning during ssl accept. chilli_redir handles
UAM connections asynchronously, whereas when you don't compile with
--enable-chilliredir connections are handled by a forked process (and
hence will block on accept/read/write). 

On Sat, 2010-06-05 at 13:57 +0200, Wichert Akkerman wrote:
> 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.
> 
> _______________________________________________
> Chilli mailing list
> Chilli at coova.org
> http://lists.coova.org/cgi-bin/mailman/listinfo/chilli




More information about the Chilli mailing list