On Mon, Apr 11, 2016 at 05:10:48PM -0400, Nenad Merdanovic wrote: > Hello Willy, > > On 4/11/2016 11:23 AM, Willy Tarreau wrote: > > OK so my assumption was right and I could even model a reproducer against > > this bug :-) > > > > Interestingly it doesn't affect 1.6+ because we added some protections > > against polling loops in 1.6, so a failed read is properly detected and > > disabled. Janusz, that explains why 1.6.4 doesn't cause the spikes. > > > > Janusz and Nenad, please apply the following patch to your 1.5 tree. > > It works for me and does what the code is supposed to do (ie: subtract > > outgoing data from the reserve as done in channel_full() when deciding > > to re-enable polling). > > Thanks a lot for the fix! I've upgraded the LB farm and can confirm that > we no longer see increased CPU usage.
Excellent, thanks very much for confirming! I feel like I'm not completely obsolete yet if I can still spot such an issue by reading the code then write the reproducer :-) Cheers, Willy

