<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Darren,<div><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 24, 2011, at 7:04 PM, Darren Nickerson wrote:</div><blockquote type="cite"><div><font class="Apple-style-span" color="#000000"><br></font>That FD is a network connection to our database server:<br><br>[root@rt4 Plack-0.9970]# ls -l /proc/30310/fd/1<br>lrwx------. 1 root root 64 Feb 24 17:44 /proc/30310/fd/1 -> socket:[281592]<br>[root@rt4 Plack-0.9970]# netstat -antep | grep 281592<br>tcp 0 5 10.0.12.149:49410 10.0.11.100:3306 ESTABLISHED 48 281592 30310/httpd <br><br>The database server has no record of that tcp connection any longer, and mysqladmin processlist shows all threads sleeping.</div></blockquote><br></div><div>*bump* any thoughts on this?</div><div><br></div><div>Should I be looking outiside of RT for a fix for this? Is this more likely to be a kernel/networking problem in RHEL6 or with mod_perl or the MySQL DBD/DBI stuff? Looks like RT is using persistent database connections, but that when the lockup occurs it's usually because apache is waiting to get data back from a MySQL socket that no longer exists on the database server ...</div></div></blockquote><br></div><div>It seems the issue is with apache2 and plack. i can reproduce the stalled connection (however not always) with the</div><div>plack-req.psgi example from the plack dist, with apache 2.2.16 on ubuntu maverick. however it's a bit different from yours.</div><div><br></div><div>strace says:</div><div><br></div><div><div>close(0) = 0</div><div>read(5, 0x7fffff1f67af, 1) = -1 EAGAIN (Resource temporarily unavailable)</div><div>accept(4, {sa_family=AF_INET, sin_port=htons(64924), sin_addr=inet_addr("114.44.215.78")}, [16]) = 0</div><div>fcntl(0, F_GETFD) = 0</div><div>fcntl(0, F_SETFD, FD_CLOEXEC) = 0</div><div>getsockname(0, {sa_family=AF_INET, sin_port=htons(6254), sin_addr=inet_addr("10.130.158.43")}, [16]) = 0</div><div>fcntl(0, F_GETFL) = 0x2 (flags O_RDWR)</div><div>fcntl(0, F_SETFL, O_RDWR|O_NONBLOCK) = 0</div><div>read(0, 0x7f8e98b0bf58, 8000) = -1 EAGAIN (Resource temporarily unavailable)</div><div>poll([{fd=0, events=POLLIN}], 1, 300000</div><div><br></div><div><br></div><div>Cheers,</div><div>CLK</div><div><br></div></div></div></body></html>