summaryrefslogtreecommitdiff
path: root/open_issues/runit.mdwn
blob: 659b81ea531a4407899c6c0fa10d6f5ab0d61132 (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
[[!meta copyright="Copyright © 2008, 2009, 2011 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.