Red Hat Bugzilla – Bug 607262
Read from /proc/xen/xenbus does not honor O_NONBLOCK
Last modified: 2011-08-30 03:26:00 EDT
+++ This bug was initially created as a clone of Bug #470801 +++ Description of problem: After open(2) on /proc/xen/xenbus with O_NONBLOCK flag, read(2) on the file is blocked, and wait for an event. Version-Release number of selected component (if applicable): kernel-xen-2.6.18-92.el5 How reproducible: Always Steps to Reproduce: 1. open ("/proc/xen/xenbus", O_RDONLY | O_NONBLOCK); 2. read (fd, buf, 4096); Actual results: read(2) is blocked. Expected results: read(2) shall return EAGAIN. --- Additional comment from bburns@redhat.com on 2009-02-24 14:47:39 EST --- Assigned. --- Additional comment from pm-rhel@redhat.com on 2010-02-09 17:38:06 EST --- Since the release flag was set to ? after the pm_ack flag was set to + (was likely set for the previous release), the pm_ack flag has been reset to ? by the bugbot (pm-rhel). This action ensures the proper review by Product Management.
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux major release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Major release. This request is not yet committed for inclusion.
reproducer: #include <stdlib.h> #include <errno.h> #include <fcntl.h> #include <unistd.h> int main() { char buf[256]; int fd = open ("/proc/xen/xenbus", O_RDONLY | O_NONBLOCK); if (fd == -1) { perror ("/proc/xen/xenbus"); exit (1); } alarm (5); while (read (fd, buf, 256) == -1 && errno != EAGAIN) ; puts ("works"); exit (0); }
This issue has been proposed when we are only considering blocker issues in the current Red Hat Enterprise Linux release. It has been denied for the current Red Hat Enterprise Linux release. ** If you would still like this issue considered for the current release, ask your support representative to file as a blocker on your behalf. Otherwise ask that it be considered for the next Red Hat Enterprise Linux release. **
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
It's upstream commit 6280f190 (from 2.6.36).
Patch(es) available on kernel-2.6.32-112.el6
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2011-0542.html