On Tue, Dec 1, 2009 at 12:30 PM, xor <x...@gmx.li> wrote:
>
> - The autoupdater MUST call plugin.terminate() before unloading the plugin
> because plugins use databases and those must be properly closed.
>
> - Deadlock bugs however might prevent plugins from terminating properly,
> terminate() might not return.
>
> So the question is: If a bug is introduced which permanently breaks
> terminate(), even after restarting the node, will the autoupdater handle
> that?
>
> IMHO if it is told to update a plugin and the node is restarted in between
> then it should update the plugin before even starting it after the restart.
> That would prevent this issue
>
> Further, toad please remember that you should add logic to the node which
> calls terminate() on all plugins before node shutdown, otherwise the
> WoT/Freetalk databases might get corrupted, resulting in un-debuggle weird
> issues.

Surely the on-disk database is always in a valid (or at least
recoverable) state?  That is one of the points of using a database,
right?  That it can recover to a valid state after a software or
hardware crash, such as abrupt termination of the program or loss of
power?

Evan Daniel
_______________________________________________
Devl mailing list
Devl@freenetproject.org
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to