[srvx-bugs] [ srvx-Bugs-2985089 ] Glines won't get deleted
Brought to you by:
entrope
From: SourceForge.net <no...@so...> - 2010-04-10 16:49:58
|
Bugs item #2985089, was opened at 2010-04-10 18:49 Message generated for change (Tracker Item Submitted) made by dvdhrm You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=403001&aid=2985089&group_id=31654 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: ircu protocol Group: 1.4 Status: Open Resolution: None Priority: 5 Private: No Submitted By: David Herrmann (dvdhrm) Assigned to: Entrope (entrope) Summary: Glines won't get deleted Initial Comment: Source code is the most recent git source, that is, with the gline lifetime support. Under special circumestances, the srvx will not remove expired (i.e. expire AND lifetime in the past) glines from the gline-list. Reproducable: First go sure the list of glines is empty. Then: ?gline a@b 10y test1 ?gline a@b 1s test2 ?gline x@y 1s test3 wait 1s then: ?gtrace print mask x@y You will see, the gline with expire and lifetime = 1s (x@y) is still in the list and the lifetime is printed to be something around 800.000.000 years. After some research I discovered that the gline heap in gline.c was previously sorted by expiration time but the lifetime-patch did not update "gline_comparator()" to sort the heap by lifetime. So fixing this could be done by changing line 55 of gline.c to: "return ga->lifetime - gb->lifetime;" David Herrmann ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=403001&aid=2985089&group_id=31654 |