The reason why it is breaking now and not before was that we were ignoring the exit code of "getdriver.sh". After a recent commit (https://git.beaker-project.org/cgit/beaker-system-scan/commit/?id=c8a349ffb19390842380404288535178592e629e), where we actually check the status code of the exited process, this becomes visible. The real reason is: The boot disk on this system is: /dev/mapper/mpathap1 on /boot type ext4 (rw) with the present code, "getdriver.sh" is called as follows: ./getdriver.sh 'mapper!mpathap1' # [root@dell-pec6105-01 beaker-system-scan]# echo $? 1 which is a non-0 exit code and hence the traceback. The code has couple of issues, one of which I tried to fix here: http://gerrit.beaker-project.org/#/c/3346/3
(In reply to Amit Saha from comment #2) > The reason why it is breaking now and not before was that we were ignoring > the exit code of "getdriver.sh". After a recent commit > (https://git.beaker-project.org/cgit/beaker-system-scan/commit/ > ?id=c8a349ffb19390842380404288535178592e629e), where we actually check the > status code of the exited process, this becomes visible. > > The real reason is: > > The boot disk on this system is: > > /dev/mapper/mpathap1 on /boot type ext4 (rw) > > with the present code, "getdriver.sh" is called as follows: > > ./getdriver.sh 'mapper!mpathap1' > # [root@dell-pec6105-01 beaker-system-scan]# echo $? > 1 > > which is a non-0 exit code and hence the traceback. So the right thing to do here I think is: Find the boot disk: # device=mount | grep "on /boot" | awk '{print $1}' Find the dm device: [root@dell-pec6105-01 block]# readlink /dev/mapper/mpathap1 ../dm-1 Get the physical devices: [root@dell-pec6105-01 block]# ls /sys/block/dm-1/slaves/ dm-0 [root@dell-pec6105-01 block]# ls /sys/block/dm-0/slaves/ sda sdb sdc sdd [root@dell-pec6105-01 block]# /root/beaker-system-scan/getdriver.sh sda sd lpfc lpfc [root@dell-pec6105-01 block]# /root/beaker-system-scan/getdriver.sh sdb sd lpfc .. and so on. I believe that is the job of getdriver.sh to take care of that.
From looking at getdriver.sh it's not clear what the best way to make it give a good result is. It's also not clear in this case (multipath dm block device) what the desired answer is anyway. And we're only using it to populate the BOOTDISK key-value. So let's just change it back to ignoring failures from getdriver.sh when handling bootdisk.
> > So let's just change it back to ignoring failures from getdriver.sh when > handling bootdisk. http://gerrit.beaker-project.org/#/c/3379/
Amit, can you please prepare a new build of beaker-system-scan with this fix?
I have requested a loan for the system as well, so I can give it a shot too. Arthur: please feel free to go ahead and give it a try and let us know.