View Issue Details

IDProjectCategoryView StatusLast Update
0002479unrealircdpublic2005-04-15 10:23
Reporterw00t Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionreopened 
Summary0002479: Many glines cause problems when listing
DescriptionListing a *lot* of glines causes excess flood kills, this is not a Good Thing(tm)
Steps To ReproduceCreate many, many glines or klines, and try to list them.
3rd party modules

Activities

Stealth

2005-04-13 03:05

reporter   ~0009739

Yes, this is well known. There have been many complaints about it on the support channel, but I don't know if anything can really be done about it.

The best current workaround is to have your opers in a class that has a bigger sendq amount so they don't get killed. Also, you should make all your *lines expire in a reasonable amount of time (like 1 day at the most, and 1 week for *lines that are a must (such as highly abused proxies)).

w00t

2005-04-13 03:19

reporter   ~0009740

But the sendq is limited (or so I have heard) to a certain factor. There is a workaround, I was recently talking with a person who supposedly did a four-line patch to fix this problem (presumably he just disabled sendq kills)

As for expiry, I'm playing with a bot that bans for a *long* time for *good* reason.

syzop

2005-04-13 09:04

administrator   ~0009741

uh-huh? This is really basic ircd knowledge!
Just up your sendq to, say, 10mb for the oper class, and be sure in all your oper blocks you refer to that oper class. (Or be more careful with listing of course.)

It's that simple, really.

If you cannot configure your oper/class blocks right, that isn't our problem.

w00t

2005-04-15 01:52

reporter   ~0009752

Last edited: 2005-04-15 01:54

[I know you're gonna shoot me for reopening this, but I feel I have to add something]

Ok, so then it's designed behaviour to kill opers listing glines? Why then was list modified to avoid this same problem? Isn't it possible to have a safe banlist like it is with /list?

I will experiment, but this problem has only hit me once or twice-- I'm also reporting on behalf of around two others who have asked for support on this issue, apparantly their "other ircds" they had experience with did not have this result, I didn't manage to gather what IRCd they were discussing, but I will try and find out.

[edit]
Please don't take this the wrong way, I just feel that it's wrong that opers (the "trusted" ones) or indeed anyone can get killed for being sent a large amount of data, I mean, sure if it's something like requesting MOTD 100000000 times per second, but then a penalty system like IRCDs could be considered or something?
[/edit]

medice

2005-04-15 06:19

reporter   ~0009755

if your opers are the trusted guys, you're talking about, you would propably not mind to build suitable connection-class-settings for their o:lines...

for my understanding the whole connection/sendq/recq -stuff is a more basical and simple structure then most of the other functions within the ircd. if the queues are exceeded you fly away. It does neither look if that connection is an oper or a user, nor what kind transported data is - spamflooding, /list or /stats requests or anything else. It's just a counter - dropping the line if the set figures are exceeded.

Since this is really simple to config i don't think its worth the time recoding every thing that might produce large amount of data - especially for commands better restricted to opers who should know what to do...

syzop

2005-04-15 08:41

administrator   ~0009757

/LIST is a special implementation, yes. Besides that, medice' story is right: it's just flood protection for the send queue in the ircd (it does not look at the contents of the data, just at the amount), otherwise if you queue some huge requests you can make the server eat up a lot of ram, so the client is killed for protection.
There's really no IRCd with 'safe /stats' or anything I'm aware of, and it's also not needed IF YOU CONFIG YOUR SENDQ CORRECTLY... So why not do just that? Changing a few digits in the oper class isn't that hard...

I always wonder why people don't know these relatively basic things, when I started with my first (ircnet) ircd I knew this in the 1st week, because I readed the docs/etc carefully and had enough normal IRC experience. I find it hard to believe that I'm such an exception. Basically when I fill in a number, I look up WHAT it means, that can't be such an amazing thought, really ;).
Also, if you see your own quit (ask others if you didn't see any quit msg) and you see 'sendq exceeded' -- doesn't that ring a bell?

w00t

2005-04-15 09:47

reporter   ~0009758

Last edited: 2005-04-15 09:48

Well, like I said, I only had one or two problems before tweaking it slightly as suggested :)

But there are others out there :/

And it just... doesn't seem right that trusted users are subject to this. But oh well.

Issue History

Date Modified Username Field Change
2005-04-13 01:29 w00t New Issue
2005-04-13 03:05 Stealth Note Added: 0009739
2005-04-13 03:19 w00t Note Added: 0009740
2005-04-13 09:04 syzop Status new => closed
2005-04-13 09:04 syzop Note Added: 0009741
2005-04-15 01:52 w00t Status closed => feedback
2005-04-15 01:52 w00t Resolution open => reopened
2005-04-15 01:52 w00t Note Added: 0009752
2005-04-15 01:54 w00t Note Edited: 0009752
2005-04-15 06:19 medice Note Added: 0009755
2005-04-15 08:41 syzop Note Added: 0009757
2005-04-15 09:47 w00t Note Added: 0009758
2005-04-15 09:48 w00t Note Edited: 0009758
2005-04-15 10:23 syzop Status feedback => closed