Bug 1060134
Summary: | The dm-event.service reload goes wrong - it passes failed state and completely new instance is used in the end | |||
---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Peter Rajnoha <prajnoha> | |
Component: | lvm2 | Assignee: | Peter Rajnoha <prajnoha> | |
Status: | CLOSED ERRATA | QA Contact: | James Hartsock <hartsjc> | |
Severity: | high | Docs Contact: | ||
Priority: | high | |||
Version: | 20 | CC: | agk, bmarzins, bmr, dwysocha, hartsjc, heinzm, jonathan, lvm-team, msnitzer, okozina, prajnoha, prockai, zkabelac | |
Target Milestone: | --- | |||
Target Release: | --- | |||
Hardware: | All | |||
OS: | Linux | |||
Whiteboard: | ||||
Fixed In Version: | lvm2-2.02.106-1.fc20 | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | ||
Clone Of: | ||||
: | 1060737 (view as bug list) | Environment: | ||
Last Closed: | 2014-04-20 01:28:46 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
Peter Rajnoha
2014-01-31 10:57:33 UTC
I think this could work for the dmeventd restart in systemd environment: - dmeventd -R calls the "restart" fn - we get the state from the old dmeventd - we order the old dmeventd to die (up until here, the procedure is the same as it was before) - if under systemd management, send request to register all the original event registrations directly to the fifo - this instantiates a new dmeventd which will read the initial registrations right after it's started - the dmeventd -R call finishes - the newly instantiated dmeventd continues.... The direct outcome of this bug is that we lose existing event monitoring on dmeventd daemon restart (that normally happens on package update!). The fix has been pushed upstream: https://git.fedorahosted.org/cgit/lvm2.git/commit/?id=8a8abc5ed9358f45b127927a20f844a7ef122466 https://git.fedorahosted.org/cgit/lvm2.git/commit/?id=fbeb08f320414cf0b5ae22096504bc4293fe939a https://git.fedorahosted.org/cgit/lvm2.git/commit/?id=90286fa0e96dde8f79c1d06eff4a878cb3024283 https://git.fedorahosted.org/cgit/lvm2.git/commit/?id=73f30ed6a4b85c3b70aa39efa14ce78be5bf8a3a https://git.fedorahosted.org/cgit/lvm2.git/commit/?id=290e58b0b6f001b2f3563304fd17d606eff51ba2 lvm2-2.02.106-1.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/lvm2-2.02.106-1.fc20 Package lvm2-2.02.106-1.fc20: * should fix your issue, * was pushed to the Fedora 20 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing lvm2-2.02.106-1.fc20' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2014-5241/lvm2-2.02.106-1.fc20 then log in and leave karma (feedback). lvm2-2.02.106-1.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report. As customer needs something to get systems usable and found that a sleep in dracut-pre-pivot.service was working, I came up with the following so we could be a little more dynamic in our waiting period. Script example to wait for mlx4-setup.sh ~~~ # cat /usr/bin/mlx4-wait.sh #!/bin/bash PATH=/bin:/usr/bin tty -s 2>/dev/null || exec >>/run/initramfs/mlx4-wait.log 2>&1 Sleep=3 Max=20 count=1 #while ps -C mlx4-setup.sh >/dev/null 2>&1 && [[ ${count:=1} -lt ${Max=3} ]] ; do while ps -flC modprobe | grep -q mlx4 && [[ ${count:=1} -lt ${Max=3} ]] ; do #ps -fC mlx4-setup.sh ps -ef | grep -e mlx4 -e modprobe echo "Sleeping for ${Sleep:=3} sec (${count} of ${Max})" && sleep ${Sleep} echo count=$((count+1)) done ~~~ Then had them add it to the ExecPre for dracut-pre-pivot.service ~~~ # cp -p /usr/lib/systemd/system/dracut-pre-pivot.service /usr/lib/systemd/system/dracut-pre-pivot.service.orig # echo -e "/^ExecStart=\ni\nExecStartPre=-/usr/bin/mlx4-wait.sh\n.\nw\nq" | ed -s /usr/lib/systemd/system/dracut-pre-pivot.service # cp -p /usr/lib/dracut/modules.d/05rdma/module-setup.sh /usr/lib/dracut/modules.d/05rdma/module-setup.sh.orig # echo -e "/mlx4-setup.sh\ni\n\tinst /usr/bin/mlx4-wait.sh\n.\nw\nq" | ed -s /usr/lib/dracut/modules.d/05rdma/module-setup.sh # systemctl daemon-reload # dracut -f # kexec -l /boot/vmlinuz-$(uname -r) \ --initrd=/boot/initramfs-$(uname -r).img \ --reuse-cmdline # systemctl kexec ~~~ This all worked for system with 3 (ie 6ports) ConnectX-3 Cards. However a system that has 7 cards (14 ports) we were hitting issues. We found that we had to wait 130 seconds. Once was in place we were able to get this system up. |