Actions
Bug #4707
closedrbd CLI: bad error code masked by udevadm_settle
% Done:
0%
Source:
Development
Tags:
Backport:
Regression:
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
I found that despite my attempt to map a v2 image the rbd
CLI gave me an exit status of 0.
Looking at the code, I see this at the end of do_kernel_add():
string add = oss.str(); r = safe_write(fd, add.c_str(), add.size()); close(fd); // let udevadm do its job before we return if (udevadm_settle) { r = system("/sbin/udevadm settle"); if (r) { if (r < 0) cerr << "rbd: error executing udevadm as shell command!" << std::endl; else cerr << "rbd: '/sbin/udevadm settle' failed! (" << r << ")" <<std::endl; return r; } }
So whatever was returned by the write to /sys/bus/rbd/add gets
overwritten by the status of system("udevadm settle").
That's no good.
Actions