Package: virtuoso-opensource-6.1
Severity: critical
Justification: causes serious data loss
Dear Maintainer.
When calling '/etc/init.d/virtuoso-opensource-6.1 stop', virtuoso may still
be running after the script completes. This might lead to database corruption,
e.g. on system reboot.
Seemingly, the script fails to wait for a clean exit of the server in this
section:
<quote>
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
if running ; then
# Only stop the server if we see it running
errcode=0
stop_server || errcode=$?
log_end_msg $errcode
else
# If it's not running don't do anything
log_progress_msg "apparently not running"
log_end_msg 0
exit 0
fi
;;
</quote>
I have modified the script to temporarily circumvent the situation on my system
by enclosing part of this snippet in a while-loop, as below:
<quote>
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
# keep stopping the server if it fails to stop
while running; do
if running ; then
# Only stop the server if we see it running
errcode=0
stop_server || errcode=$?
log_end_msg $errcode
else
# If it's not running don't do anything
log_progress_msg "apparently not running"
log_end_msg 0
exit 0
fi
sleep 2 # wait two seconds before looping
done
;;
</quote>
As my knowledge of rc.d scripts is limited, this was a quick hack to prevent
my database to suffer corruption. My solution does not cater for the need to
force-stop virtuoso. If the server does not exit cleanly at some point, I have
effectively created an infinite loop.
Please fix this situation in a more proper fashion.
Regards
;)Frode
Frode Severin Hatlevik
-- System Information:
Debian Release: 7.0
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=nb_NO.UTF-8, LC_CTYPE=nb_NO.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]