[Soc-coordination] Weekly report (10th week) - Debian GNU/Hurd Debianish initialization

4winter at informatik.uni-hamburg.de 4winter at informatik.uni-hamburg.de
Fri Aug 23 20:10:51 UTC 2013


.. link: 
.. description: 
.. tags: gsoc, debian, hurd
.. date: 2013/08/23 21:30:48
.. title: No noweb anymore...
.. slug: no-noweb-anymore

\... which is probably a good thing. But here is the boot log you all
have been waiting for::

  start ext2fs: Hurd server bootstrap: ext2fs[device:hd0s1] exec init proc auth
  INIT: version 2.88 booting
  Using makefile-style concurrent boot in runlevel S.
  Activating swap...done.
  Checking root file system...fsck from util-linux 2.20.1
  hd2 : tray open or drive not ready
  hd2 : tray open or drive not ready
  hd2 : tray open or drive not ready
  hd2 : tray open or drive not ready
  end_request: I/O error, dev 02:00, sector 0
  /dev/hd0s1: clean, 44693/181056 files, 291766/723200 blocks
  done.
  Activating lvm and md swap...(default pager): Already paging to partition hd0s5!
  done.
  Checking file systems...fsck from util-linux 2.20.1
  hd2 : tray open or drive not ready
  hd2 : tray open or drive not ready
  end_request: I/O error, dev 02:00, sector 0
  done.
  Cleaning up temporary files... /tmp.
  Mounting local filesystems...done.
  Activating swapfile swap...(default pager): Already paging to partition hd0s5!
  done.
  df: Warning: cannot read table of mounted file systems: No such file or directory
  Cleaning up temporary files....
  Configuring network interfaces...Internet Systems Consortium DHCP Client 4.2.2
  Copyright 2004-2011 Internet Systems Consortium.
  All rights reserved.
  For info, please visit https://www.isc.org/software/dhcp/
  
  Listening on Socket//dev/eth0
  Sending on   Socket//dev/eth0
  *** stack smashing detected ***: dhclient terminated
  Aborted
  Failed to bring up /dev/eth0.
  done.
  Cleaning up temporary files....
  Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix.
  INIT: Entering runlevel: 2
  Using makefile-style concurrent boot in runlevel 2.
  Starting enhanced syslogd: rsyslogd.
  Starting deferred execution scheduler: atd.
  Starting periodic command scheduler: cron.
  Starting system message bus: dbusFailed to set socket option"/var/run/dbus/system_bus_socket": Protocol not available.
  Starting OpenBSD Secure Shell server: sshd.
  unexpected ACK from keyboard
  
  
  GNU 0.3 (debian) (console)
  
  login: root
  [...]
  root at debian:~# ifup /dev/eth0
  Internet Systems Consortium DHCP Client 4.2.2
  Copyright 2004-2011 Internet Systems Consortium.
  All rights reserved.
  For info, please visit https://www.isc.org/software/dhcp/
  
  Listening on Socket//dev/eth0
  Sending on   Socket//dev/eth0
  *** stack smashing detected ***: dhclient terminated
  Aborted
  Failed to bring up /dev/eth0.
  root at debian:~# dhclient -v -pf /run/dhclient.-dev-eth0.pid -lf /var/lib/dhcp/dhclient.-dev-eth0.leases /dev/eth0
  Internet Systems Consortium DHCP Client 4.2.2
  Copyright 2004-2011 Internet Systems Consortium.
  All rights reserved.
  For info, please visit https://www.isc.org/software/dhcp/
  
  Listening on Socket//dev/eth0
  Sending on   Socket//dev/eth0
  *** stack smashing detected ***: dhclient terminated
  Aborted
  root at debian:~# dhclient -pf /run/dhclient.-dev-eth0.pid -lf /var/lib/dhcp/dhclient.-dev-eth0.leases /dev/eth0
  root at debian:~# ifup /dev/eth0
  Internet Systems Consortium DHCP Client 4.2.2
  Copyright 2004-2011 Internet Systems Consortium.
  All rights reserved.
  For info, please visit https://www.isc.org/software/dhcp/
  
  Listening on Socket//dev/eth0
  Sending on   Socket//dev/eth0
  DHCPREQUEST on /dev/eth0 to 255.255.255.255 port 67
  DHCPACK from 10.0.2.2
  bound to 10.0.2.15 -- renewal in 34108 seconds.
  ps: comm: Unknown format spec
  root at debian:~# halt
  
  Broadcast message from root at debian (console) (Fri Aug 23 19:42:19 2013):
  
  The system is going down for system halt NOW!
  INIT: Switching to runlevel: 0root at debian:~# 
  INIT: Sending processes the TERM signal
  INIT: Sending processes the KILL signal
  Using makefile-style concurrent boot in runlevel 0.
  Stopping deferred execution scheduler: atd.
  task c10f53f8 deallocating an invalid port 2098928, most probably a bug.
  Asking all remaining processes to terminate...done.
  All processes ended within 1 seconds...done.
  Stopping enhanced syslogd: rsyslogd.
  Deconfiguring network interfaces...Internet Systems Consortium DHCP Client 4.2.2
  Copyright 2004-2011 Internet Systems Consortium.
  All rights reserved.
  For info, please visit https://www.isc.org/software/dhcp/
  
  Listening on Socket//dev/eth0
  Sending on   Socket//dev/eth0
  DHCPRELEASE on /dev/eth0 to 10.0.2.2 port 67
  /dev/eth0 (2):
    inet address  0.0.0.0
    netmask       255.255.255.0
    broadcast     10.0.2.255
    flags         BROADCAST ALLMULTI MULTICAST
    mtu           1500
  done.
  Deactivating swap...swapoff: /dev/hd0s5: 177152k swap space
  done.
  Unmounting weak filesystems...umount: /etc/mtab: Warning: duplicate entry for device /dev/hd0s1 (/servers/socket/26)
  umount: /etc/mtab: Warning: duplicate entry for device /dev/hd0s1 (/dev/cons)
  umount: could not find entry for: /dev/cons
  umount: could not find entry for: /servers/socket/26
  done.
  mount: cannot remount /: Device or resource busy
  Will now halt.
  store a new irq 11init: notifying pfinet of shutdown...init: notifying tmpfs swap of shutdown...init: notifying tmpfs swap of shutdown...init: notifying tmpfs swap of shutdown...init: notifying ext2fs device:hd0s1 of shutdown...init: halting Mach (flags 0x8)...
  In tight loop: hit ctl-alt-del to reboot

With some tiny patches for `ifupdown` I've been able to resolve
`network related issues </gsoc/#networkrelatedissues>`_. All of them?
Of course not, funny thing about developing for the Hurd is that once
you fix one thing, then some other thing or code path is executed that
has never been run on Hurd before, and therefore something else
breaks. In this case I fixed `ifupdown` to generate valid names for
the pid file and leases file and all of the sudden `dhclient` starts
dying.

Funny thing about that is, if one drops the `-v` flag from the
`dhclient` invocation as I did it above, the crash isn't triggered and
once the lease file has been successfully written, it is safe to add
the `-v` flag again. Not yet sure what goes on there, then again,
looking at the `source of isc-dhcp-client
<http://sources.debian.net/src/isc-dhcp/4.2.4-7/client/dhclient.c>`_
it is not so surprising that it crashes :/

When I first looked at `ifupdown` it was written in `noweb
<http://en.wikipedia.org/wiki/Noweb>`_, a literate programming
tool. It is an interesting idea, even more so since (classic) c can be
very verbose and cryptic. But it decouples the control flow from the
structure of the program, which makes patching it quite a challenge
since it is not as obvious where the changes have to go in. This is
how `ifupdown` looked some weeks ago::

  % wc --lines ifupdown.nw
  6123 ifupdown.nw
  % pdftk ifupdown.pdf dump_data | grep NumberOfPages
  NumberOfPages: 113

The `ifupdown.nw` is the noweb source, from which seven .c, four .h,
two .pl and one Makefile are generated. It also contains a redicioulus
amount of documentation, to the point that the authors at several
points did not now what to write and just drop some nonsensical lines
into the file. The source also compiles to a 113 page pdf file, that
contains all of the documentation and all of the code, not at all in
the order that one would expect a program to be written, but in the
order the authors chose to structure the documentation. Fortunately
for me the maintainer decided to drop the noweb source and to add the
generated files to the source control system. This made my job much
easier :)

So here are the patches I published this week:

* Fixes for `ifupdown`:
  http://lists.gnu.org/archive/html/bug-hurd/2013-08/msg00063.html

* Fixes for `fakeroot-hurd` and `remap`:
  http://lists.gnu.org/archive/html/bug-hurd/2013-08/msg00064.html

I must admit that I do not know exactly what I will do next
week. Obviously fixing the `dhclient` crash would be nice, I'll look
into that. But I'm surely find some useful thing to do.



More information about the Soc-coordination mailing list