Closed GoogleCodeExporter closed 8 years ago
Hello,
thank you for reporting, this seems to be definitely to be a bug, it is
probably the first 2.2 crash reported.
I think this is due to interaction between blocking pop and clients closing the
connection. I'll fix this today as otherwise this will block 2.2 release.
Thank you for reporting!
Currently not stopping the workers should avoid the bug.
Salvatore
Original comment by anti...@gmail.com
on 17 Jan 2011 at 8:53
The issue was fixed by Pieter Noordhuis, thank you for reporting. You should
not experience any further problem while killing your clients.
Post mortem: the issue was caused by the fact that we moved blocking pop
operations to a new abstraction we have in the event loop. Basically when the
clients are ready to be unblocked, we no longer do this synchronously when the
PUSH happens against the list, and we are in the contest of another client.
Instead we put the client to unblock into a list of clients that must be
unblocked. This clients are unblocked in a function called beforeSleep() that
is called every time we are going to re-enter the event loop.
However we moved the blocking pop with the new system, but forgot to perform
the appropriate cleanup in this list of clients to resume when a client was
freed. This had the effect of resuming a client that was no longer valid or
existing, with the effect of a crash.
Original comment by anti...@gmail.com
on 17 Jan 2011 at 9:20
Original issue reported on code.google.com by
p...@p-dw.com
on 17 Jan 2011 at 8:36