Bug 1691784

Summary: [RFE] Backport oslo_rootwrap fix for syslog issue
Product: Red Hat OpenStack Reporter: Elf Lewis <elewis>
Component: python-oslo-rootwrapAssignee: Hervé Beraud <hberaud>
Status: CLOSED ERRATA QA Contact: nlevinki <nlevinki>
Severity: medium Docs Contact:
Priority: medium    
Version: 10.0 (Newton)CC: aherr, apevec, lhh, pkomarov
Target Milestone: ---Keywords: FutureFeature, Triaged, ZStream
Target Release: 10.0 (Newton)   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: python-oslo-rootwrap-5.1.2-3.el7ost Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-04-30 16:59:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Elf Lewis 2019-03-22 14:00:56 UTC
Description of problem:
the oslo_rootwrap wrapper.py component checks for the existence of /dev/log.  But if Journald/rsyslog is not running, /dev/log does not exist.  This causes cold migrations, which use oslo_rootwrap, to fail.

Version-Release number of selected component (if applicable):


How reproducible:
Every time

Steps to Reproduce:
1. Stop journald and rsyslog, and verify /dev/log is not present
2. Attempt to perform a cold migration of a host 
3. Test that ssh communications is working with the nova_migrate user:  
ssh -i /etc/nova/migration/identity nova_migration.ip.address  touch /var/lib/nova/instances/test

Actual results:
cold migration will fail.  the ssh test will fail with the following error:

Traceback (most recent call last):
  File "/usr/bin/nova-rootwrap", line 10, in <module>
    sys.exit(main())
  File "/usr/lib/python2.7/site-packages/oslo_rootwrap/cmd.py", line 89, in main
    config.syslog_log_level)
  File "/usr/lib/python2.7/site-packages/oslo_rootwrap/wrapper.py", line 101, in setup_syslog
    facility=facility)
  File "/usr/lib64/python2.7/logging/handlers.py", line 761, in __init__
    self._connect_unixsocket(address)
  File "/usr/lib64/python2.7/logging/handlers.py", line 789, in _connect_unixsocket
    self.socket.connect(address)
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 2] No such file or directory

Expected results:
Cold migration should work.  The ssh test should complete successfully.

Additional info:

There is an upstream fix for this, which we would like backported to OSP10.

Comment 1 Hervé Beraud 2019-03-28 09:45:42 UTC
FYI already fixed on queens, rocky, stein, and highers by commit 574dede5efaaf39dd93c91dfb01fc08b03164282

Comment 2 Hervé Beraud 2019-04-01 14:11:20 UTC
Solved in python-oslo-rootwrap-5.1.2-3.el7ost for rhos-10.0-rhel-7-candidate
https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=20823207

Comment 8 errata-xmlrpc 2019-04-30 16:59:40 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:0922