From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Pitt Date: Mon, 19 Aug 2013 12:15:59 +0000 Subject: Re: udev: Why non-blocking poll() with blocking recvmsg()? Message-Id: <20130819121559.GG3077@piware.de> List-Id: References: <201308192039.ACD60413.HFOQSFtLFMOJVO@I-love.SAKURA.ne.jp> In-Reply-To: <201308192039.ACD60413.HFOQSFtLFMOJVO@I-love.SAKURA.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org Hello Tetsuo, Tetsuo Handa [2013-08-19 20:39 +0900]: > I'm experiencing a boot failure problem with wait-for-root utility in Ubuntu 12.04. Note that this is an Ubuntu specific program. > Although wait-for-root uses blocking socket, udev_monitor_receive_device() sometimes > immediately returns NULL. It *assumed* a blocking socket, but didn't make sure that it actually was. Originally libudev used blocking sockets, but at some point [1] this was switched to non-blocking by default, and wait-for-root needed to be adjusted to that. Please see https://launchpad.net/bugs/1154813, it's fixed in newer Ubuntu releases. [1] http://git.kernel.org/cgit/linux/hotplug/udev.git/commit/?idd83b8 Martin -- Martin Pitt | http://www.piware.de Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)