Bug 1765608 - [Hyper-V][RHEL7.8] Running 'systemctl isolate' on any target stops hyperv-daemon services
Summary: [Hyper-V][RHEL7.8] Running 'systemctl isolate' on any target stops hyperv-dae...
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: hyperv-daemons
Version: 7.7
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Vitaly Kuznetsov
QA Contact: xuli
URL:
Whiteboard:
Depends On:
Blocks: 1769920
TreeView+ depends on / blocked
 
Reported: 2019-10-25 14:55 UTC by Kai Meyer
Modified: 2019-12-05 16:51 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1769920 (view as bug list)
Environment:
Last Closed:
Target Upstream Version:


Attachments (Terms of Use)

Description Kai Meyer 2019-10-25 14:55:55 UTC
Description of problem:
Isolating systemd targets like 'multi-user.target' and 'graphical.target' will stop the hyperv-daemon services.

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

How reproducible:
Isolate any systemd target.

Steps to Reproduce:
1. systemctl isolate multi-user.target

Actual results:
All three hyperv-daemon services are stopped:
hypervfcopyd.service
hypervkvpd.service  
hypervvssd.service  

Expected results:
All three hyperv-daemons should continue to run.

Additional info:
The only time that systemd will start these three services is when their associated devices devices are created by udev. These .device units "Want" their companion .service units, and the .service units "BindsTo" the .device units. However, isolating systemd targets does not add or remove the devices, nor does the target "Want" or "Require", so systemd thinks that the isolated state should not include these services, and gracefully shuts them down.

There should be tighter coupling between the .device units and their .service units such that isolating targets shouldn't stop these services.

Comment 2 Kai Meyer 2019-10-25 17:08:56 UTC
Adding a systemd drop-in with:
[Unit]
IgnoreOnIsolate=1

Seems to resolve this issue very directly.


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