bugGNU Screen - Bugs: bug #27061, immediately-exiting programs lose...

 
 

bug #27061: immediately-exiting programs lose output?

Submitted by:  Micah Cowan <micahcowan>
Submitted on:  Mon 20 Jul 2009 09:03:43 PM UTC  
 
Category: Program LogicSeverity: 3 - Normal
Priority: 7 - HighStatus: Ready For Test
Privacy: PublicAssigned to: Geraint Edwards <gedge>
Open/Closed: ClosedRelease: Cur Dev Sources
Fixed Release: 4.1.0Planned Release: None
Work Required: 0 - Hours

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Tue 29 Jan 2013 07:56:13 AM UTC, comment #6:

If the problem is that a child may perform I/O to its window followed by exiting, but that screen may handle the SIGCHLD before the I/O, would it make sense to:

  • set a flag on SIGCHLD
  • use a 0 timeout rather than a ten second timeout, and if select() ever times out when the SIGCHLD flag has been set, to terminate?

I'd think that that would avoid truncated output, as well as avoid the issue of lingering for ten seconds.

Mark Schreiber <mark7b>
Tue 29 Jan 2013 07:36:58 AM UTC, comment #5:

The change for this bug is problematic for people who run background programs from their shell. I tend to fire up programs in the background (e.g. "leafpad &") and then want to be able to close the terminal used to launch leafpad without waiting around for ten seconds. Screen was able to do that before this patch.

Mark Schreiber <mark7b>
Fri 19 Aug 2011 10:37:48 PM UTC, comment #4:

fixed with commit 450e8f38d479dfb8f5b3151d1c0bdcc2e9c6c6cc

Geraint Edwards <gedge>
Project MemberIn charge of this item.
Sat 11 Dec 2010 01:02:56 PM UTC, comment #3:

When zombie resurrects quickly, remove possible legacy "destroy event".

Problem example:

1. Enable zombie mode.
2. Terminate the program running in a window (i.e. make the window a zombie) [1]
3. Within 10 seconds, resurrect the window
4. Observe: once the 10s is up, the window (and any new processes in it!) are killed. [2]

Solution: See enclosed patch, resurrection now removes the destroy event.

[1] if the zombie does not say 'Command detached...', then try again until it does ('Command terminated normally...' may not trigger the bug)

[2] resurrecting the destroyed window will probably cause it to be killed again, after a delay

(file #22179)

Geraint Edwards <gedge>
Project MemberIn charge of this item.
Thu 17 Dec 2009 10:49:46 PM UTC, comment #2:

Juergen's assumptions seem correct. I have checked in 33b7c9c [1], which waits 10 seconds after wait() before killing the window. However, if screen gets EOF for that window before that time, then it gets killed immediately. I was able to reproduce the initial problem, and can confirm that this change fixes the issue for me.

Comments/Suggestions/Criticisms about the change are very welcome.

Please reopen if the bug persists after the change.

[1] http://git.savannah.gnu.org/gitweb/?p=screen.git;a=commitdiff;h=33b7c9ca3968e42fdfb9c4e031434e4d87864146

Sadrul Habib Chowdhury <sadrul>
Project Administrator
Fri 24 Jul 2009 01:53:04 PM UTC, comment #1:

It is a race condition.

screen has two ways to shut down a window.
a) when the window filedescriptor signals eof in select().
b) when wait() returns the pid of the window process.

Whatever comes first kills the window or sends it into zombie mode.

I believe b) just should not shut down the window.
My assumption is that a) will happen shortly after b) in any case.

Juergen Weigert <jnweiger>
Project Administrator
Mon 20 Jul 2009 09:03:43 PM UTC, original submission:

with zombie-mode on, output seems to get truncated.

C-a : screen sh -c 'echo foo; echo bar; echo baz'

produces nothing, while

C-a : screen cat FILE

produces truncated output.

Also, exiting a shell with ^D produces a final prompt line of:

micah$ xit

where it should say "exit".

Micah Cowan <micahcowan>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #22179:  0001-bug-27061-remove-possible-destroy-event-when-zombie-.patch added by gedge (423B - application/octet-stream - remove possible destroy event when zombie resurrects)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by mark7b (Posted a comment)
  • -unavailable- added by gedge (Updated the item)
  • -unavailable- added by sadrul (Posted a comment)
  • -unavailable- added by jnweiger (Posted a comment)
  • -unavailable- added by micahcowan (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 9 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Fri 19 Aug 2011 10:37:48 PM UTCgedgeAssigned toNone=>gedge
      Open/ClosedOpen=>Closed
    Sat 11 Dec 2010 01:02:56 PM UTCgedgeAttached File-=>Added 0001-bug-27061-remove-possible-destroy-event-when-zombie-.patch, #22179
      Priority5 - Normal=>7 - High
      StatusFixed=>Ready For Test
      Open/ClosedClosed=>Open
    Thu 17 Dec 2009 10:49:46 PM UTCsadrulStatusConfirmed=>Fixed
      Open/ClosedOpen=>Closed
      Fixed ReleaseNone=>4.1.0

    Back to the top


    Powered by Savane 3.1-cleanup1