https://bugzilla.wikimedia.org/show_bug.cgi?id=28144
Platonides <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution| |FIXED --- Comment #7 from Platonides <[email protected]> 2011-03-22 21:25:24 UTC --- I have been able to reproduce it: The strace is as follows: fd 7 is the first one that locks the entry. fd 11 is the leaked entry. epoll_wait(3, {{EPOLLIN, {u32=0, u64=0}}}, 32, 4294967295) = 1 accept4(0, 0, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK) = 7 epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLIN, {u32=7, u64=7}}) = 0 epoll_wait(3, {{EPOLLIN, {u32=7, u64=7}}}, 32, 4294967295) = 1 epoll_ctl(3, EPOLL_CTL_DEL, 7, {EPOLLIN, {u32=7, u64=7}}) = 0 recvfrom(7, "ACQ4ME bug 1 2 3\r\n", 1024, 0, NULL, NULL) = 18 sendto(7, "LOCKED\n", 7, 0, NULL, 0) = 7 epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLIN, {u32=7, u64=7}}) = 0 fd 7 locked an entry epoll_wait(3, {{EPOLLIN, {u32=0, u64=0}}}, 32, 4294967295) = 1 accept4(0, 0, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK) = 11 epoll_ctl(3, EPOLL_CTL_ADD, 11, {EPOLLIN, {u32=11, u64=11}}) = 0 epoll_wait(3, {{EPOLLIN, {u32=11, u64=11}}}, 32, 4294967295) = 1 epoll_ctl(3, EPOLL_CTL_DEL, 11, {EPOLLIN, {u32=11, u64=11}}) = 0 recvfrom(11, "ACQ4ME bug 1 2 3\r\n", 1024, 0, NULL, NULL) = 18 epoll_ctl(3, EPOLL_CTL_ADD, 11, {EPOLLIN, {u32=11, u64=11}}) = 0 fd 11 is waiting on that same entry epoll_wait(3, {{EPOLLIN, {u32=7, u64=7}}}, 32, 3000) = 1 epoll_ctl(3, EPOLL_CTL_DEL, 7, {EPOLLIN, {u32=7, u64=7}}) = 0 recvfrom(7, "RELEASE\r\n", 1024, 0, NULL, NULL) = 9 sendto(11, "LOCKED\n", 7, 0, NULL, 0) = 7 sendto(7, "RELEASED\n", 9, 0, NULL, 0) = 9 epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLIN, {u32=7, u64=7}}) = 0 epoll_wait(3, {}, 32, 594) = 0 epoll_ctl(3, EPOLL_CTL_DEL, 11, {EPOLLIN, {u32=11, u64=11}}) = 0 epoll_wait(3, poolcounterd does not receive anything else about fd 11 (inclusing releases or connection closing) That seems due to the timeout set when readding the event. Readding the event without timeout when on_client EV_TIMEOUT fixes the problem. <s>However, it still reads after a normal timeout, which is odd.</s> send_client() not only sends the message, it also readds the event. Fixed in r84560. -- Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ Wikibugs-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikibugs-l
