View Issue Details

IDProjectCategoryView StatusLast Update
0004107unrealircdpublic2012-05-02 19:20
Reportersyzop Assigned Tosyzop  
PriorityhighSeverityblockReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.2.10-rc1 
Fixed in Version3.2.10-rc1 
Summary0004107: I/O Engine or buffer hang
DescriptionThere's a bug that has been introduced somewhere between rev. 4996 and 5002, so when the new I/O Engine was added.

The bug happens both with and without USE_POLL. This should make it easier to trace as thus the change must exist in the 'shared code path'.

See Steps-to-reproduce for more info.
Steps To ReproduceEasy. Telnet or nc to the irc server, and copy & paste this:

USER x x x x
NICK Something
x1xxxxxxxxxxxxxxxxxxx
x2xxxxxxxxxxxxxxxxxxx
x3xxxxxxxxxxxxxxxxxxx
x4xxxxxxxxxxxxxxxxxxx
x5xxxxxxxxxxxxxxxxxxx
x6xxxxxxxxxxxxxxxxxxx
x7xxxxxxxxxxxxxxxxxxx
x8xxxxxxxxxxxxxxxxxxx
x9xxxxxxxxxxxxxxxxxxx
x10xxxxxxxxxxxxxxxxxxx
x11xxxxxxxxxxxxxxxxxxx
x12xxxxxxxxxxxxxxxxxxx
x13xxxxxxxxxxxxxxxxxxx
x14xxxxxxxxxxxxxxxxxx


Normally, the irc will process 8-10 lines or so, and then the rest is slowly processed (= fake lag), that is what we want.

With this bug, the lines 9 through 14 are not processed at all, even if you wait for more than 30 seconds.
Only AFTER you type another command, suddenly all (or most) lines are processed at once.

Note that this hang happens per-client (per connection), and so other clients still behave fine, so it's not an ircd (process) hang.
TagsNo tags attached.
3rd party modules

Activities

syzop

2012-05-02 19:20

administrator   ~0016986

- Fix bug caused by new I/O engine (both with and without USE_POLL):
  queued data on the receive queue (eg: due to fake lag) was not processed
  unless we got new data from the client.
  Now, better document this. Also, avoid calling dbuf_put with 0 length.

http://hg.unrealircd.com/hg/unreal/rev/f892b237c7a3

Issue History

Date Modified Username Field Change
2012-05-01 14:24 syzop New Issue
2012-05-01 14:25 syzop Status new => confirmed
2012-05-02 19:20 syzop Note Added: 0016986
2012-05-02 19:20 syzop Status confirmed => resolved
2012-05-02 19:20 syzop Fixed in Version => 3.2.10-rc1
2012-05-02 19:20 syzop Resolution open => fixed
2012-05-02 19:20 syzop Assigned To => syzop