olsr.funkfeuer.at
Found segmentation violation bug
Cédric Krier <
ced@ced.homedns.org> reported a segmentation violation with the "bmf" plugin last Sunday.
As it turned out, it happened in the dlcose(3) function if we unload a plugin after someerror.
Today it turned out that the "destructor" function of that plugin always wants to kill a thread upon unloading.
Well, since no thread was running the thread library puked on that.
More on the hardware
I bought a new power supply and CPU fan and (tried to) put them into the hardware.
- The fan (15mm high) is too high.
- The power supply works (which was tested with short circuiting two pins) but the thing doesn't even give an BIOS error number. Removing the RAM and harddisk didn't help. So either the mainboard or the CPU (or both) seems to be broken.
Power Supply really broken
I tested the presumbly-broken power supply today on a working mainboard (working before and afterwards;-) and it didn't boot the thing. So it is broken.
Server Hardware Problems
The UML server had some problems in the last weeks - it regularly didn't come aftar a cold or warmboot. The "nice"
error number on the mainboard didn't help - it wasn't mentioned in the manual.
Two days after installation in the rack, a BIOS update showed up [0], so we thought this might help. And the BIOS update should havehappen yesterday evening. But the hardware didn't even boot - some LEDs were flashing and after half a second (or so), everything was silent and dark again. Not even the fan of the power supply was working. Apparently the power supply is gone which might also be the source of the boot problems. So the power supply will be replaced as soon as possible (it's for a 1HU case and should have 24+8 pin connectors. The old one delivered 300W BTW).
FWIW the CPU fan lost also a wing. I haven't seen this before. So th e CPU fan will also bereplaced.
[0]: Yes, I checked upon installation (as with all new hardware) if there is a newer BIOS available.
0.5.2 released
I just released 0.5.2 to get Sven-Olas the bug fix "officially out". And it avoids that the to-be-generated Debian package is a 0.5.1+patch thingy.
The other change to 0.5.1 is a new plugin interface: Prrimarily purpose is to make parameter handling and error/problem reporting of the more consistent in all plugins. The obvious way to do this is to put as much code as useful in the common part and leave only strictly plugin-local functionality there.
The other gain could/should be to share more code (e.g. parsing a port numner or IP address) which are used by several plugins. However, this puts code in the coer which is not really used there so one could argue that this bloat should be avoided.
I'm waiting for a good solution toarrive - either through the mailinglists or a good idea
Bug found and fixed
Shit happens.
Sven-Ola Tuecke found a serious bug (written by me of course!) in the released version. Don't ask me how this cumb piece of code crept in.
olsrd-0.5.1 released
I just released olsrd-0.5.1. A .tar.gz and a .tar.bz2 can be found for now on
http://bernd.petrovitsch.priv.at/olsr-ng/ until they find their way to
http://www.olsr.org/.To quote from the changelog:
---- snip ----
MISC
Upgrade to olsr-bmf 1.5 from Erik Tromp <
erik_tromp@hotmail.com>
latitude/longitude support is now in the nameservice plugin done by
Sven-Ola Tuecke <
mail2news@commando.de>
added the spf refactoring patch from Hannes Gredler
which saves a noteworthy amount of CPU time. To quite him:
---- snip ----
1. use of an AVL tree as a min-heap implementation
as a means for efficient sorting.
(the etx metric is used as the key in the candidate tree)
2. next-hop propagation
rather than tracking the previous node in olsr_relax()
i have changed that model and pre-populate all one-hop neighbors
with their own IP adress as 'next-hop' and pull that
pointer up once new paths are explored.
as a result no walker for counting hops and extracting next-hops
is required - it turns out at this is slighly more efficient
than the existing behaviour (even with the cache applied).
---- snip ----
CLEANUPS
* moved a only locally needed hack from "union olsr_ip_addr" into the only place
where it is needed in hashing.c
---- snip ----
And to emphasize the probably biggest step forward in this release (apart from the various smaller patches and fixes - which are important as well), the SPF refactoring saves quite a lot of CPU time by implementing efficient algorithms - all kudos go to Hannes Gredler who implemented it. This was supported by Thomas Lopatic extending/completing the already present in-tree AVL "mini-library".
Since the spf-refactoring patch was officially in the FreiFunkFirmware and several other Linux based nodes, it runs obviously on "Linux".
I compiled and tested it on WinXP and it seems there as an even bigger win (I didn't measure it seriously but it seems to me that initially the nodes are much faster detected and routes are much faster installed).
Since it doesn't touch any OS specific parts, I expect it to run on other OSes (*BSD, MacOS, ...) too. Testing (everywhere) and feedback is of course always appreciated.