Bug 1391472 - nova-novncproxy does not work after systemd-journald restarts
Summary: nova-novncproxy does not work after systemd-journald restarts
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-nova
Version: 9.0 (Mitaka)
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Eoghan Glynn
QA Contact: Prasanth Anbalagan
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-11-03 11:58 UTC by VIKRANT
Modified: 2022-08-09 15:18 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-11-24 13:35:29 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker OSP-7907 0 None None None 2022-08-09 15:18:12 UTC
Red Hat Knowledge Base (Solution) 2746111 0 None None None 2016-11-03 12:01:43 UTC

Description VIKRANT 2016-11-03 11:58:54 UTC
Description of problem:

When systemd-journald restarts, the console connection from Horizon web interface to the VM does not work anymore until nova-novavncproxy is restarted (with command pcs resource restart openstack-nova-novncproxy-clone.)

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

RHEL OSP 7
RHEL OSP 8
RHEL OSP 9

How reproducible:
Everytime.

Steps to Reproduce:
1. Check the status of "nova-novncproxy" and "systemd-journald" services. Verify that instance console is accessible.

2. Restart the "systemd-journald" service using systemd command. 

3. "nova-novncproxy" is still running but instance console is not accessible.

4. Restart "nova-novncproxy" now instance console is accessible. 

Actual results:
instance doesn't remain functional after restarting "systemd-journald" service.

Expected results:
instance console should remain functional after restarting "systemd-journald" service.

Additional info:

Opening this Bug with OSP 9 as latest version is also impacted with this issue. This isssue is also seen in OSP 8 and OSP 7.

Comment 1 VIKRANT 2016-11-03 12:06:06 UTC
Workaround : One way to fix is to modify shared by Cu : 

/lib/systemd/system/openstack-nova-novncproxy.service so that it does not use the default redirecting to systemd-journald
by adding these 2 lines to it
StandardOutput=null
StandardError=null

For example this way

[root@controller-1 ~]# cat /lib/systemd/system/openstack-nova-novncproxy.service
[Unit]
Description=OpenStack Nova NoVNC Proxy Server
After=syslog.target network.target

[Service]
Type=simple
User=nova
EnvironmentFile=-/etc/sysconfig/openstack-nova-novncproxy
StandardOutput=null
StandardError=null
ExecStart=/usr/bin/nova-novncproxy --web /usr/share/novnc/ $OPTIONS

[Install]
WantedBy=multi-user.target

Comment 2 Daniel Berrangé 2016-11-03 12:18:29 UTC
I'm pretty sure that restarting of the systemd-journald process is *not* supported by the systemd project. The journal holds the other end of the stdout/stderr FDs for processes connected to it, and when you restart journald those FDs get closed, breaking stdout/err for every process.

Comment 3 Sahid Ferdjaoui 2016-11-04 08:00:10 UTC
(In reply to Daniel Berrange from comment #2)
> I'm pretty sure that restarting of the systemd-journald process is *not*
> supported by the systemd project. The journal holds the other end of the
> stdout/stderr FDs for processes connected to it, and when you restart
> journald those FDs get closed, breaking stdout/err for every process.

According to the last comment from Daniel, can Cu explain why there are restarting 'systemd-journald' ?

Comment 4 Nilesh 2016-11-15 05:16:31 UTC
(In reply to Daniel Berrange from comment #2)
> I'm pretty sure that restarting of the systemd-journald process is *not*
> supported by the systemd project. The journal holds the other end of the
> stdout/stderr FDs for processes connected to it, and when you restart
> journald those FDs get closed, breaking stdout/err for every process.



In NCIO16.5 there is one puppet module, which modifies journal configuration. To make that setting active, the systemd-journald must be restarted. I do not know if there is any other way. I think the idea here is to do that restart after all controller and compute nodes have been installed..

The change to journald configuration is to make journal logs storage persistent.
Othewise the journald log information will be lost after rebooting the node.
The fix creates /etc/systemd/journald.conf.d/persistent_storage.conf
That has setting 
[Journal]
Storage=persistent


I heard that there should be a RedHat ticket for that problem (journald information will be lost after reboot).

Comment 10 awaugama 2017-08-30 17:55:56 UTC
WONTFIX/NOTABUG therefore QE Won't automate


Note You need to log in before you can comment on or make changes to this bug.