Bug#828018: minetest-server is not shutdown properly

dr4ke at dr4ke.net dr4ke at dr4ke.net
Fri Jun 24 06:32:12 UTC 2016


On 2016-06-23 23:09, Markus Koschany wrote:
> What minetest modification caused the server failure? How can we
> reproduce the data inconsistency?


There is no server failure. The failure is happening when systemd sends 
a
SIGTERM. It seems that minetest-server respond by exiting immediately
without executing its shutdown routines, namely the register_on_shutdown
functions from the mods.
I experienced the issue with one particular mod that only save its data
through this shutdown function (this is an error, IMO, and I reported it
to the mod developper).
The mod is: https://github.com/minetest-mods/character_creator
https://forum.minetest.net/viewtopic.php?f=9&t=13138

To reproduce:
- install the mod
- change your appearance in the game
- leave the game
- restart the minetest-server service with systemctl
- enter the game, you have the default appearance

At shutdown, the file character_creator.mt should be created in the
world directory. It is created if you kill the minetest-server from
the game with /shutdown or outside with a SIGINT (I think it's the
same as a ctrl-C, right?)


> Restarting the server is equivalent with stopping and starting the
> server again. Systemd will send a SIGTERM signal by default to the
> server to terminate the running process. I don't see a reason why we
> should use a different KillSignal in this case. SIGINT means
> interrupting the process.


You're right, there is probably a bad choice of signal processing
in the minetest-server code. I'll report an issue there too.


> I suggest to investigate the cause of the server failure and then 
> report
> your findings to the mod developers. If they think it is rather a
> minetest bug, please get in contact with the minetest developers
> directly because this is the fastest way to get your issue solved.


It's already done with the mod. I'll do it with the server, regarding 
its
behavior with the SIGTERM signal.


> If you want to play with different service file settings, use a 
> modified
> service file in /etc/systemd/system to override Debian's default 
> settings.


That's what I do for now.

Thank you for these suggestions.



More information about the Pkg-games-devel mailing list