Bug#832537: mdadm: /usr/share/mdadm/checkarray: fails silently, without any action

Sabahattin Gucukoglu scrapedsebby at me.com
Tue Jul 26 15:36:14 UTC 2016


Package: mdadm
Version: 3.4-1
Severity: important

Because of a peculiar bug in dash (0.5.8-2.2) reading from sysfs using the 
read command, on my sysstem, line 145 of checkarray always fails with status 
1, thus ending the script (set -e) and providing no hint to the 
administrator (via cronjob output mail) that checks are not actually being 
performed on schedule.  Assuming it affects others, this is of course very 
serious.

I can reproduce the shell bug easily enough at a /bin/sh prompt:

$ MDBASE=/sys/block/md126/md
$ cat $MDBASE/sync_ation
idle
$ read cur_status < $MDBASE/sync_ation
$ echo $?
1
$ echo $cur_status
i

The workaround for me is to use bash (start the script from the crontab 
using bash).  It works perfectly then.

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.6.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)



More information about the pkg-mdadm-devel mailing list