Bug 1769823

Summary: [RHEL 8.2] mdcheck_start.service can't start successfully
Product: Red Hat Enterprise Linux 8 Reporter: Pino Toscano <ptoscano>
Component: mdadmAssignee: XiaoNi <xni>
Status: CLOSED ERRATA QA Contact: Fine Fan <ffan>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.1CC: cmarthal, guazhang, jbrassow, jwboyer, ncroxon, revers, xni
Target Milestone: rc   
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: mdadm-4.1-11.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-28 17:00:47 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:
Attachments:
Description Flags
Fixed service files none

Description Pino Toscano 2019-11-07 14:53:23 UTC
Created attachment 1633684 [details]
Fixed service files

Description of problem:
mdadm 4.1-9 adds few new service files:
- /lib/systemd/system/mdcheck_continue.service
- /lib/systemd/system/mdcheck_start.service
- /lib/systemd/system/mdmonitor-oneshot.service
I noticed that augeas [1] cannot parse these files, with parse errors in the Environment= keys.
In particular, there are double quoting, and even more covering just the values and not the whole Environment= string (at least, according to my reading systemd.service(5) man page).
Furthermore, the two mdcheck_*.service files refer to /usr/share/mdadm/mdcheck in ExecStart=, and that executable does not even exist.

[1] a library to parse & edit configuration files

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

How reproducible:


Steps to Reproduce:
1. install mdadm and augeas
2. run `augtool print /augeas//error | grep lib/systemd/system`

Actual results:
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error = "parse_failed"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/pos = "341"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/line = "12"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/char = "0"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/lens = "/usr/share/augeas/lenses/dist/inifile.aug:497.25-.43:"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/message = "Get did not match entire input"
/augeas/files/lib/systemd/system/mdcheck_start.service/error = "parse_failed"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/pos = "370"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/line = "14"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/char = "0"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/lens = "/usr/share/augeas/lenses/dist/inifile.aug:497.25-.43:"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/message = "Get did not match entire input"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error = "parse_failed"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/pos = "409"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/line = "14"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/char = "0"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/lens = "/usr/share/augeas/lenses/dist/inifile.aug:497.25-.43:"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/message = "Get did not match entire input"

Expected results:
No output

Additional info:
I tried to fix the .service files according to the documentation, although I did not have the possibility to test them; I will attach them.

Comment 33 Fine Fan 2020-02-20 08:55:53 UTC
Hi All,

I've talked with xni, and did the test on mdadm-4.1-11.el8.
on mdadm-4.1-11.el8 the mdcheck_start.service could start normally,but still got some output from "augtool print /augeas//error | grep lib/systemd/system".

#####################
#####mdadm-4.1-10.el8
#####################

[root@localhost ~]# rpm -q mdadm
mdadm-4.1-10.el8.x86_64

[root@localhost ~]# systemctl start mdcheck_start.service
Job for mdcheck_start.service failed because the control process exited with error code.
See "systemctl status mdcheck_start.service" and "journalctl -xe" for details.
[root@localhost ~]# 

---------------------
[root@localhost ~]# augtool print /augeas//error | grep lib/systemd/system
/augeas/files/lib/systemd/system/mdcheck_continue.service/error = "parse_failed"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/pos = "409"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/line = "14"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/char = "0"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/lens = "/usr/share/augeas/lenses/dist/inifile.aug:497.25-.43:"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/message = "Get did not match entire input"
/augeas/files/lib/systemd/system/mdcheck_start.service/error = "parse_failed"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/pos = "370"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/line = "14"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/char = "0"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/lens = "/usr/share/augeas/lenses/dist/inifile.aug:497.25-.43:"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/message = "Get did not match entire input"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error = "parse_failed"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/pos = "341"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/line = "12"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/char = "0"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/lens = "/usr/share/augeas/lenses/dist/inifile.aug:497.25-.43:"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/message = "Get did not match entire input"
[root@localhost ~]# 



#####################
#####mdadm-4.1-11.el8
#####################
[root@localhost ~]# rpm -q mdadm
mdadm-4.1-11.el8.x86_64

During one terminal excuted "system start mdcheck_strt.service"
I got below output from another terminal:

[root@localhost ~]# systemctl status mdcheck_start.service
● mdcheck_start.service - MD array scrubbing
   Loaded: loaded (/usr/lib/systemd/system/mdcheck_start.service; static; vendor preset: disabled)
   Active: activating (start) since Thu 2020-02-20 10:13:20 EST; 3s ago
  Process: 14813 ExecStartPre=/usr/lib/mdadm/mdadm_env.sh (code=exited, status=0/SUCCESS)
 Main PID: 14815 (mdcheck)
    Tasks: 2
   Memory: 960.0K
   CGroup: /system.slice/mdcheck_start.service
           ├─14815 /bin/bash /usr/share/mdadm/mdcheck --duration 6 hours
           └─14833 sleep 120

Feb 20 10:13:20 localhost.localdomain systemd[1]: Starting MD array scrubbing...

-------------------
But augtool still got some output:

[root@localhost ~]# augtool print /augeas//error | grep lib/systemd/system
/augeas/files/lib/systemd/system/mdcheck_continue.service/error = "parse_failed"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/pos = "409"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/line = "14"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/char = "0"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/lens = "/usr/share/augeas/lenses/dist/inifile.aug:497.25-.43:"
/augeas/files/lib/systemd/system/mdcheck_continue.service/error/message = "Get did not match entire input"
/augeas/files/lib/systemd/system/mdcheck_start.service/error = "parse_failed"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/pos = "370"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/line = "14"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/char = "0"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/lens = "/usr/share/augeas/lenses/dist/inifile.aug:497.25-.43:"
/augeas/files/lib/systemd/system/mdcheck_start.service/error/message = "Get did not match entire input"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error = "parse_failed"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/pos = "341"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/line = "12"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/char = "0"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/lens = "/usr/share/augeas/lenses/dist/inifile.aug:497.25-.43:"
/augeas/files/lib/systemd/system/mdmonitor-oneshot.service/error/message = "Get did not match entire input"
[root@localhost ~]# 


xni has made mdadm-4.1-13.el8, which I've tested too, it works well with both "mdcheck_start.service" and "augtool" problem, but we still need to wait for the upstream's accept.
so I changed the status into VERIFIED.


#####################
#####mdadm-4.1-13.el8
#####################


[root@el8 ~]# rpm -q mdadm
mdadm-4.1-13.el8.x86_64


During one terminal excuted "system start mdcheck_strt.service"
I got below output from another terminal:

[root@el8 ~]# systemctl status mdcheck_start.service
● mdcheck_start.service - MD array scrubbing
   Loaded: loaded (/usr/lib/systemd/system/mdcheck_start.service; static; vendor preset: disabled)
   Active: activating (start) since Thu 2020-02-20 11:29:50 EST; 5s ago
  Process: 8729 ExecStartPre=/usr/lib/mdadm/mdadm_env.sh (code=exited, status=0/SUCCESS)
 Main PID: 8731 (mdcheck)
    Tasks: 2
   Memory: 960.0K
   CGroup: /system.slice/mdcheck_start.service
           ├─8731 /bin/bash /usr/share/mdadm/mdcheck --duration 6 hours
           └─8749 sleep 120

Feb 20 11:29:50 el8.localdomain systemd[1]: Starting MD array scrubbing...
[root@el8 ~]# 

---------------------
[root@el8 ~]# augtool print /augeas//error | grep lib/systemd/system
[root@el8 ~]# 

BR
Fine

Comment 35 errata-xmlrpc 2020-04-28 17:00:47 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-2020:1890