Hurd Traffic #106 For 3 Sep 2001

By Paul Emsley

Mach 4 ( | Hurd Servers ( | Debian Hurd Home ( | Debian Hurd FAQ ( | debian-hurd List Archives ( | bug-hurd List Archives ( | help-hurd List Archive ( | Hurd Reference Manual ( | Hurd Installation Guide ( | Cross-Compiling GNUMach ( | Hurd Hardware Compatibility Guide (

Table Of Contents

1. Journaling Filesystems

27 Aug 2001 - 29 Aug 2001 (4 posts) Archive Link: "journaling filesystems"

Topics: FS: ext3

People: James MorrisonPaul EmsleyRobert Millan

Robert Millan How can a Linux journaling file sytem be accessible by the Hurd too? James Morrison and Paul Emsley suggested using ext3.

2. tetex-extra Installation Strangeness

27 Aug 2001 - 28 Aug 2001 (3 posts) Archive Link: "failed to install tetex-extra in Hurd"

People: Marcus Brinkmann

Atsuhito Kohda had problems installing tetex-extra, citing an undefined control sequence in ocp\OCPebcdic =ebcdic. Marcus Brinkmann replied, saying that he thought it may be bug #49955 ( . If it is then it will be fixed when GNU/Hurd moves to libio.

3. OSKit-Mach Inches Forward

25 Aug 2001 - 28 Aug 2001 (6 posts) Archive Link: "oskit-mach & oskit-20010214: network"

People: Daniel WagnerRoland McGrath

As mentioned a couple of weeks ago, Daniel Wagner is try to get his system booting using using OSKit-mach. Last week he had problems with the partition detection, this week he has network problems:

oskit-mach and oskit-20010214 are working fine with the patches from Jeroen together except the network doesn't work. Here is what I found out:

As I have seen there were some changes on the oskit net interface. E.g. oskit_linux_netdev_rxpoll is new. I don't know if this is important. The main problem to debug further is that I don't know where to set the breakpoints to get better insights.

To diagnose further, Roland McGrath suggested writing a small program to send Ethernet packets using device_write. Daniel write such a program and posted it.

More next week.

4. More Readable Debug Boot Messages

25 Aug 2001 - 26 Aug 2001 (4 posts) Archive Link: "[uPATCH] nicer pause-debug bootstrap"

People: Moritz Schulte

Moritz Schulte posted a few small patches to enhance the readability of the core servers while debug-pausing is on. Roland thought that there was unnecesary hairiness and fflushing and wanted simpler patches.

5. On The Tail Of The select() Bug

30 Aug 2001 (4 posts) Archive Link: "select()"

Topics: Apt

People: Marcus BrinkmannMark KettenisRoland McGrath

Now that the proc bug is fixed, Marcus turned his attention to the other famous outstanding bug: the select() bug. This bug exhibits itself in several places, but particularly when frobbed by apt-get.

Marcus starts off with: "I tried to debug the apt-get/select() situation, but I have to admit I am totally and completely confused. What happens doesn't make any sense to me." Marcus descibed setting a breakpoint and using gdb, but said "This is not possible!!! msgerr can not be EINTR at this point [hurdselect.c:320], otherwise the while() loop should have been terminated!" .

Mark Kettenis suggested that he was being fooled by GDB: "You're probably debugging optimized code, which means that several variables might share the same space in memory. "

Roland McGrath agreed with Mark about the debugger and gave some extra extra advice to deal with it. Roland added "So, pfinet returned EINTR. It is allowed to do this spuriously, and select is supposed to deal (but doesn't). But probably it is doing it because there is some other client thread using the same socket that did interrupt_operation. The problem is that select isn't using the interruptible-RPC infrastructure stuff in the signal thread, and so it doesn't know whether it actually just got a signal or whether that signal had SA_RESTART set. "

Marcus went on to ask about how pfinet should return: "Another question is why pfinet returns EINTR. It seems to happen if I have two connections, eg, I am downloading with apt-get, and then start lynx with a page. This quickly and reproducably leads to an EINTR from pfinet. Is this correct behaviour? What does interrupting mean for pfinet? Oh, and a timeout of 0 doesn't work anyway, as we found out earlier. Should this code be changed to use the minimal timeout? "

Roland thought that the two connection behaviour was worth investigating, since EINTR should be returned only after interrupt_operation is called for that socket.

So Marcus has a few more threads on which to draw. More shortly perhaps.







Sharon And Joy

Kernel Traffic is grateful to be developed on a computer donated by Professor Greg Benson and Professor Allan Cruse in the Department of Computer Science at the University of San Francisco. This is the same department that invented FlashMob Computing. Kernel Traffic is hosted by the generous folks at All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0.