Bug 105845

Summary: Deinstall directory installation kills running daemons
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Thorsten Kukuk <kukuk>
Component: BasesystemAssignee: Dr. Werner Fink <werner>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Blocker    
Priority: P5 - None CC: dmueller
Version: Beta 2   
Target Milestone: ---   
Hardware: Other   
OS: All   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Thorsten Kukuk 2005-08-19 13:51:38 UTC
Best way to reproduce:

Install on a Beta2 the Beta2 into a directory with YaST2 (for example
for Xen).
Remove openssh from this installation:

rpm --root=/var/tmp/dirinstall -e openssh

chroot /var/tmp/dirinstall /etc/init.d/sshd stop

will be called. This calls killproc -p $PIDFILE -TERM /usr/bin/sshd
The file $PIDFILE does not exist.

Afterwards, all running sshd daemons are killed.

Same is true for all other packages.
Comment 1 Thorsten Kukuk 2005-08-19 13:55:43 UTC
This is a killproc bug. From LSB definition of "killproc -p":

"If the -p pidfile option is specified, and the named pidfile exists, a single 
  line at the start of the pidfile shall be read. If this line contains one or
more numeric values, separated by spaces, these values shall be used. If the -p
pidfile option is specified and the named pidfile does not exist, the functions
shall assume that the daemon is not running."

Our killproc does not assume that the daemon is not running, but instead kills
every running process with this name.
Comment 2 Dr. Werner Fink 2005-08-22 09:22:00 UTC
Why is this a blocker?
Comment 3 Thorsten Kukuk 2005-08-22 09:47:22 UTC
Data lossage, connection crashes, unuseable system. 
Comment 4 Dr. Werner Fink 2005-08-22 14:07:08 UTC
FIXED