Server: the cause of isolated crashes found and fixed
Four isolated crashes during the evening had the same cause, identified thanks to a memory dump: a consumed item (the last ration fed to a hunter's pet) was read again right after being destroyed. All four affected places are fixed. Guilds also get French rank names and officers.
- Commit
- 4de27c8
- Build
- Build success (1 min) · Target worldserver
The crash
The server had crashed in isolation four times (21:32, 21:38, 23:27 and 00:52 UTC). Memory dumps were not being saved because the service runs on a read-only filesystem. Once dumps were redirected to an allowed folder, the next crash gave the full call stack.
A hunter feeds the last ration in their bag to their pet: the spell consumes and destroys the item, then the code read its name again for the log. That is a read of freed memory, hence a crash once that memory had been reused.
The same pattern existed in three other places: quest item used on a target, used on a world object, mount item learned. Everywhere, information is now read before use, including the target's, which may disappear too.
Guilds
Ranks have French names (Guild master, Officer, Veteran, Member, Recruit). The two highest-level members become officers, and recruits become members from level 10.