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

Reply via email to