Bug 698777

Summary: service sshd restart kills other sshd instance and keeps failing to restart
Product: Red Hat Enterprise Linux 6 Reporter: Miroslav Vadkerti <mvadkert>
Component: opensshAssignee: Jan F. Chadima <jchadima>
Status: CLOSED WONTFIX QA Contact: BaseOS QE Security Team <qe-baseos-security>
Severity: high Docs Contact:
Priority: high    
Version: 6.1CC: pvrabec
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: openssh-5.3p1-58.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-07-26 12:34:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 682670    

Description Miroslav Vadkerti 2011-04-21 18:14:15 UTC
Description of problem:
Finally I have a reproducer issue that was hunting me last months. I'm glad it is not that serious and looks like it has been in openssh-server package forever. I can reproduce it on both EL5 and EL6.

The reproducer is very simple:
# service sshd restart
Stopping sshd: [  OK  ]
Starting sshd: [  OK  ]
# netstat -putna | grep sshd
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      19565/sshd          
tcp        0      0 :::22                       :::*                        LISTEN      19565/sshd          
# /usr/sbin/sshd -p 133
# netstat -putna | grep sshd
tcp        0      0 0.0.0.0:133                 0.0.0.0:*                   LISTEN      19571/sshd          
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      19565/sshd          
tcp        0      0 :::133                      :::*                        LISTEN      19571/sshd          
tcp        0      0 :::22                       :::*                        LISTEN      19565/sshd          
# service sshd restart
Stopping sshd: [  OK  ]
Starting sshd: [  OK  ]
# netstat -putna | grep sshd
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      19565/sshd          
tcp        0      0 :::22                       :::*                        LISTEN      19565/sshd          
# service sshd restart
Stopping sshd: [FAILED]
Starting sshd: [  OK  ]
# netstat -putna | grep sshd
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      19565/sshd          
tcp        0      0 :::22                       :::*                        LISTEN      19565/sshd        

As you can see the restarting the sshd service when also sshd on port 133 is running kills this instance and the previous instance is still running. The next restarts fail.

Version-Release number of selected component (if applicable):
openssh-5.3p1-52.el6

How reproducible:
100%

Steps to Reproduce:
see description
  
Actual results:
service sshd restart kills incorrect sshd instance and then begins to fail.

Expected results:
service sshd restart restarts correct sshd instance and doesn't fail if original instance still running. This makes impossible to restart ssh daemon with new configuration for example.

Comment 3 Jan F. Chadima 2011-07-26 10:59:40 UTC
Changes in the init script causes regressions. It is likely that there may even cause regressions on customers. Since this bug is internal error only I recommend to revert this change.

Comment 4 Miroslav Vadkerti 2011-07-26 13:10:17 UTC
This bug can be dropped from the errata. If you want to run more sshd daemons you have to make sure they use separate pid files using the -o 'PidFile pid-file' or other configuration file.