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.