[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Strange Error



On Jun 18, Nacho Ruiz at RedesTB IRC Server wrote:
| 
| anyone knows what means the signoff error:
| 
| *** DAtiL has quit IRC (Buffer allocation error for lucas
| [195.122.196.12])
| 
| Buffer allocation error? perhaps is a poor value of sendq?
| and why appears another user (lucas)?
| any hints welcome

it has to do with the number of "dbufs" allocated (see
/stats z).  dbufs are used for sendq for all clients.
Having the right number is important because ircd will only
allocate more if it runs out of dbufs while sending a
connect burst to a server.  (And it could very well have
just enough dbufs for the connect burst, but not enough a
second later trying to send other things)

This is quite an annoying problem which has been discussed
several times since the 2.9 serie came out.  Changing this
behaviour isn't easy (to do well), so it remains unchanged.

Using various values in config.h, ircd tries to guess the
right amount of dbufs to allocate.  Making this guess be
right has proved to be a really difficult task, and is still
not very efficient (as of 2.9.5).

When the guess is too low, ircd should at some point
allocate more, but it may not happen.

Anyway, the number of dbufs to be allocated is stored as the
last line in ircd.tune, you can /die, edit ircd.tune,
restart to manually increase this number.
Another thing you might want to try is to remove ircd.tune
and restart.  (Recent versions make somewhat better guesses
than early ones :)

Finally, tuning can be accomplished using /stats z :

249 Dbuf blocks 7997(16281892) (> 7997 [191]) (1 < 3807) [14]

7997 is the number currently allocated,
7997 was the original ircd.tune value for this session,
191 is the guess ircd made
1 the minimum ever used
3807 the maximum ever used
14 the number of times more dbufs were allocated (which means
that something isn't quite right.. 7997 is the now and the
original value..)