udev: Log errno for udev ERROR messages (#6186)

Co-Authored-By: Ryan Wilson <ryantimwilson@fb.com>
This commit is contained in:
Teddy Reed 2020-02-29 00:24:50 -05:00 committed by GitHub
parent 6a6d08a247
commit 036ef013fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -29,7 +29,7 @@ Status UdevEventPublisher::setUp() {
// Create the udev object. // Create the udev object.
handle_ = udev_new(); handle_ = udev_new();
if (handle_ == nullptr) { if (handle_ == nullptr) {
return Status(1, "Could not create udev object."); return Status::failure("Could not create udev object");
} }
// Set up the udev monitor before scanning/polling. // Set up the udev monitor before scanning/polling.
@ -37,7 +37,7 @@ Status UdevEventPublisher::setUp() {
if (monitor_ == nullptr) { if (monitor_ == nullptr) {
udev_unref(handle_); udev_unref(handle_);
handle_ = nullptr; handle_ = nullptr;
return Status(1, "Could not create udev monitor."); return Status::failure("Could not create udev monitor");
} }
udev_monitor_enable_receiving(monitor_); udev_monitor_enable_receiving(monitor_);
@ -61,11 +61,11 @@ Status UdevEventPublisher::run() {
{ {
WriteLock lock(mutex_); WriteLock lock(mutex_);
if (monitor_ == nullptr) { if (monitor_ == nullptr) {
return Status(1); return Status::failure("udev monitor not set up");
} }
int fd = udev_monitor_get_fd(monitor_); int fd = udev_monitor_get_fd(monitor_);
if (fd < 0) { if (fd < 0) {
LOG(ERROR) << "Could not get udev monitor fd"; LOG(ERROR) << "Could not get udev monitor fd: " << std::strerror(-fd);
return Status::failure("udev monitor failed"); return Status::failure("udev monitor failed");
} }
@ -75,8 +75,8 @@ Status UdevEventPublisher::run() {
int selector = ::poll(fds, 1, 1000); int selector = ::poll(fds, 1, 1000);
if (selector == -1 && errno != EINTR && errno != EAGAIN) { if (selector == -1 && errno != EINTR && errno != EAGAIN) {
LOG(ERROR) << "Could not read udev monitor"; LOG(ERROR) << "Could not read udev monitor: " << std::strerror(errno);
return Status(1, "udev monitor failed."); return Status::failure("udev monitor failed");
} }
if (selector == 0 || !(fds[0].revents & POLLIN)) { if (selector == 0 || !(fds[0].revents & POLLIN)) {
@ -86,8 +86,9 @@ Status UdevEventPublisher::run() {
struct udev_device* device = udev_monitor_receive_device(monitor_); struct udev_device* device = udev_monitor_receive_device(monitor_);
if (device == nullptr) { if (device == nullptr) {
LOG(ERROR) << "udev monitor returned invalid device"; LOG(ERROR) << "udev monitor returned invalid device: "
return Status(1, "udev monitor failed."); << std::strerror(errno);
return Status::failure("udev monitor failed");
} }
auto ec = createEventContextFrom(device); auto ec = createEventContextFrom(device);