summaryrefslogtreecommitdiff
path: root/open_issues/runit.mdwn
blob: 6b336ef7a32feab56f0943ef2a5976211609514b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled
[[GNU Free Documentation License|/fdl]]."]]"""]]

[[!tag open_issue_porting]]

The `runit` package doesn't work, even its test suite doesn't finish.

[[Thomas_Schwinge|tschwinge]] once was having a look at that, but this very
report is just from his memory, and his memory is dim...  The problem *might*
either be a time stamping issue (which might be fixed by now) or it *might* be
the `select` call failing issue we're seeing from time to time.  Or something
else.

[[Harish Badrinath|harishbadrinath]]
Originally answered by Samuel Thibault:
>  120->proc_dostop_request ( 138) = 0
>
> </snip>

Usual issue with rpctrace: it does not support fork().

I've checked a backtrace in gdb, got this:

 0x0105af6c in mach_msg_trap ()
   at /build/eglibc-jWVnRE/eglibc-2.13/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2

1  0x0105b769 in __mach_msg (msg=0x1024af8, option=258, send_size=0, rcv_size=40, rcv_name=140,
   timeout=1000020, notify=0) at msg.c:110

2  0x01062251 in _hurd_select (nfds=2, pollfds=0x1024dc0, readfds=0x0, writefds=0x0, exceptfds=0x0,
   timeout=0x1024bbc, sigmask=0x0) at hurdselect.c:324

3  0x0114427b in __poll (fds=0x1024dc0, nfds=2, timeout=1000020) at ../sysdeps/mach/hurd/poll.c:48

4  0x0804b770 in iopause (x=0x1024dc0, len=2, deadline=0x1024dd8, stamp=0x1024de8) at iopause.c:29

5  0x08048efc in main (argc=2, argv=0x1024e94) at runsv.c:543


and main() shows up as:

   sig_unblock(sig_term);

   sig_unblock(sig_child);

 ->  iopause(x, 2 +haslog, &deadline, &now);

   sig_block(sig_term);

   sig_block(sig_child);


So it simply looks like the known "signals don't interrupt select" bug.