summaryrefslogtreecommitdiff
path: root/open_issues/screen_dead_session.mdwn
blob: cdd3f322677de922a55d5c12b3f3f4fa34277b7e (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
[[!meta copyright="Copyright © 2010 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]]

Comparing to GNU/Linux, on GNU/Hurd it happens much more often and easily for
*screen* sessions to become *dead*.  This is annoying, as it defeats one of
*screen*'s main purposes.

One reproducible scenario goes like this:

  * `ssh [somewhere]`,

  * start a *screen* session, and some long-running process *P* in there,

  * at some point the link is forcefully terminated (also known as disconnect
    after 24 hours with consumer DSL),

  * *P* will continue to execute,

  * at some point, *P* will terminate / hang (after having received some kind
    of signal?), and the *screen* session will be reported as *dead*.

Another one, not as often reproduced:

  * `ssh [somewhere]`,

  * start a *screen* session, and some long-running process *P* in there,

  * at some point the link is forcefully terminated (also known as disconnect
    after 24 hours with consumer DSL),

  * `ssh [somewhere]`,

  * `screen -x`, and notice that *P* will *immediatelly* terminate / hang
    (after having received some kind of signal?), and the *screen* session will
    *immediatelly* be reported as *dead*.  (Perhaps the other way round: upon
    re-attaching, the *screen* session goes bonkers and takes *P* with it?)