[Bug 1987663] Re: cinder-volume: "Failed to re-export volume, setting to ERROR" with "tgtadm: failed to send request hdr to tgt daemon, Transport endpoint is not connected" on service startup
Mauricio Faria de Oliveira
1987663 at bugs.launchpad.net
Fri Nov 22 19:28:23 UTC 2024
Verification done on bionic's ESM Infra Updates -staging ("-proposed").
The detailed verification steps as per comment #3
are attached. This is the summary with key steps.
With the packages from -staging, when (re)starting {cinder-volume,tgt}.service,
the cinder-volume service is started _after_ the tgt service, and
the volumes remain with 'in-use' status (no longer 'error' status).
# Reproducer (45-second startup delay in tgt.service)
Before:
... Notice that cinder-volume.service is Started _BEFORE_ tgt.service
... And the 'tgtadm' error _IS_ seen in the logs.
... And volumes are listed with 'error' Status.
root at cinder-bionic:~# dpkg -s cinder-volume | grep Version:
Version: 2:12.0.10-0ubuntu2.2
root at cinder-bionic:~# date; systemctl restart cinder-volume.service tgt.service; date
Fri Nov 22 19:02:00 UTC 2024
Fri Nov 22 19:02:45 UTC 2024
root at cinder-bionic:~# journalctl -b -u cinder-volume.service -u tgt.service | grep Start | tail -3
Nov 22 19:02:00 cinder-bionic systemd[1]: Started OpenStack Cinder Volume.
Nov 22 19:02:00 cinder-bionic systemd[1]: Starting (i)SCSI target daemon...
Nov 22 19:02:45 cinder-bionic systemd[1]: Started (i)SCSI target daemon.
root at cinder-bionic:~# grep 'ERROR cinder.volume.manager' /var/log/cinder/cinder-volume.log | grep tgtadm
2024-11-22 19:02:04.926 9281 ERROR cinder.volume.manager Command: sudo cinder-rootwrap /etc/cinder/rootwrap.conf tgtadm --lld iscsi --op show --mode target
2024-11-22 19:02:04.926 9281 ERROR cinder.volume.manager Stderr: u'tgtadm: failed to send request hdr to tgt daemon, Transport endpoint is not connected\n'
root at cinder-bionic:~# cinder list
+--------------------------------------+--------+-------------+------+-------------+----------+-------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+--------+-------------+------+-------------+----------+-------------+
| a07b08d7-1fef-446e-b760-d69bad24aa40 | error | test-volume | 1 | - | false | |
+--------------------------------------+--------+-------------+------+-------------+----------+-------------+
After:
... Notice that cinder-volume.service is Started *AFTER* tgt.service now
... And now the 'tgtadm' error is *NOT* seen in the logs.
... And the volumes are listed with Status 'in-use' (no longer 'error')
root at cinder-bionic:~# dpkg -s cinder-volume | grep Version:
Version: 2:12.0.10-0ubuntu2.2+esm1
root at cinder-bionic:~# date; systemctl restart cinder-volume.service tgt.service; date
Fri Nov 22 19:20:52 UTC 2024
Fri Nov 22 19:21:37 UTC 2024
root at cinder-bionic:~# journalctl -b -u cinder-volume.service -u tgt.service | grep Start | tail -3
Nov 22 19:20:52 cinder-bionic systemd[1]: Starting (i)SCSI target daemon...
Nov 22 19:21:37 cinder-bionic systemd[1]: Started (i)SCSI target daemon.
Nov 22 19:21:37 cinder-bionic systemd[1]: Started OpenStack Cinder Volume.
(error timestamps are from the previous/non-proposed run)
root at cinder-bionic:~# grep 'ERROR cinder.volume.manager' /var/log/cinder/cinder-volume.log | grep tgtadm
2024-11-22 19:02:04.926 9281 ERROR cinder.volume.manager Command: sudo cinder-rootwrap /etc/cinder/rootwrap.conf tgtadm --lld iscsi --op show --mode target
2024-11-22 19:02:04.926 9281 ERROR cinder.volume.manager Stderr: u'tgtadm: failed to send request hdr to tgt daemon, Transport endpoint is not connected\n'
root at cinder-bionic:~# cinder list
+--------------------------------------+--------+-------------+------+-------------+----------+-------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+--------+-------------+------+-------------+----------+-------------+
| a07b08d7-1fef-446e-b760-d69bad24aa40 | in-use | test-volume | 1 | - | false | |
+--------------------------------------+--------+-------------+------+-------------+----------+-------------+
** Attachment added: "2024-11-22 bionic cinder esm verification"
https://bugs.launchpad.net/ubuntu/+source/cinder/+bug/1987663/+attachment/5839540/+files/2024-11-22%20bionic%20cinder%20esm%20verification
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to cinder in Ubuntu.
https://bugs.launchpad.net/bugs/1987663
Title:
cinder-volume: "Failed to re-export volume, setting to ERROR" with
"tgtadm: failed to send request hdr to tgt daemon, Transport endpoint
is not connected" on service startup
Status in Ubuntu Cloud Archive:
Fix Released
Status in Ubuntu Cloud Archive antelope series:
Triaged
Status in Ubuntu Cloud Archive bobcat series:
Fix Released
Status in Ubuntu Cloud Archive caracal series:
Fix Released
Status in Ubuntu Cloud Archive ussuri series:
Fix Committed
Status in Ubuntu Cloud Archive victoria series:
Won't Fix
Status in Ubuntu Cloud Archive wallaby series:
Won't Fix
Status in Ubuntu Cloud Archive xena series:
Won't Fix
Status in Ubuntu Cloud Archive yoga series:
Fix Released
Status in Ubuntu Cloud Archive zed series:
Won't Fix
Status in Ubuntu Pro:
Fix Committed
Status in Ubuntu Pro 18.04 series:
Fix Committed
Status in cinder package in Ubuntu:
Fix Released
Status in cinder source package in Bionic:
Won't Fix
Status in cinder source package in Focal:
Fix Released
Status in cinder source package in Jammy:
Fix Released
Status in cinder source package in Lunar:
Won't Fix
Status in cinder source package in Mantic:
Fix Released
Status in cinder source package in Noble:
Fix Released
Bug description:
[Impact]
* The cinder-volume service might fail to re-export volumes
in-use on startup if tgt.service isn't fully started yet.
* This affects the 'lvm' driver with 'tgtadm' target helper
(which runs 'tgtadm' commands that need the service ready).
* Snippets from /var/log/cinder/cinder-volume.log:
Failed to re-export volume, setting to ERROR.
...
Command: tgtadm --lld iscsi --op show --mode target
...
Stderr: 'tgtadm: failed to send request hdr to tgt daemon,
Transport endpoint is not connected\n'
* This issue is more common in openstack compute nodes
with networking (ovs/ovn) that takes long to startup,
which might delay the startup of tgt.service _after_
cinder-volume.service.
[Test Steps]
* Steps to reproduce are detailed in comment #3.
Summary:
* Install mysql, rabbitmq-server, keystone, and cinder
(controller and storage nodes; backup node unneeded).
* Configure cinder-volume (storage node) for LVM backend
and tgtadm iSCSI helper (tgt.service).
* Create a cinder volume, and configure it as 'in-use'.
* Simulate a start delay on tgt.service with a drop-in.
* Restart services: cinder-volume.service tgt.service
* Check sequence of service startup.
* Check status of the cinder volume:
'in-use' (expected) or 'error' (bug).
* Check log file /var/log/cinder/cinder-volume.log for
'tgtadm: failed to send request hdr to tgt daemon'.
[Regression Potential]
* The fix introduces systemd unit 'After=' and 'Wants='
properties for tgt.service in cinder-volume.service,
thus might delay the boot process (multi-user.target).
$ systemctl show cinder-volume.service | grep WantedBy=
WantedBy=multi-user.target
* However, the boot process already waits on tgt.service
anyway, thus the difference (if any) should not be big,
and would provide more correct behavior.
$ systemctl show tgt.service | grep WantedBy=
WantedBy=multi-user.target
* If tgt.service is not present (tgt package not installed)
_no errors_ occur, as both 'After=' and 'Wants=' are weak
ordering/dependency properties (man 5 systemd.unit).
[Other Info]
* The fix uses a systemd service drop-in snippet because
the service unit is generated by openstack-pkg-tools
(pkgos-gen-systemd-unit) based on the 'init' service,
and it only emits 'Wants=' for network-online.target.
* Changing that in openstack-pkg-tools changes behavior
in stable releases, and only manifest at build time,
for many openstack packages that have no issues now.
* We'll continue to pursue the general improvement in
Debian, so it comes into Ubuntu development release,
but for the Ubuntu stable releases, this should do.
[Original Bug Description]
Real-world example in comment #2.
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1987663/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list