This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: IDLE hangs due to subprocess
Type: Stage:
Components: IDLE Versions: Python 2.3
process
Status: closed Resolution: works for me
Dependencies: Superseder:
Assigned To: kbk Nosy List: kbk, kitanek
Priority: normal Keywords:

Created on 2004-12-28 15:31 by kitanek, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (4)
msg23828 - (view) Author: ZACK (kitanek) Date: 2004-12-28 15:31
IDLE GUI hangs after some time when launched in the
default mode (i.e. with the subprocess).
I have noticed that the subprocess generates fast
continuous stream of system calls even if the GUI is
not used and not visible (moved to another desktop).
Example output from strace (strace -f idle):

...
[pid  5359] <... select resumed> )      = 0 (Timeout)
[pid  5359] futex(0x81fb798, FUTEX_WAKE, 1) = 0
[pid  5359] futex(0x81fb798, FUTEX_WAKE, 1) = 0
[pid  5359] futex(0x81fb798, FUTEX_WAKE, 1) = 0
[pid  5359] select(4, [3], [], [], {0, 50000}
<unfinished ...>
[pid  5355] <... futex resumed> )       = -1 ETIMEDOUT
(Connection timed out)
[pid  5355] write(7, "\0", 1 <unfinished ...>
[pid  5356] <... select resumed> )      = 1 (in [6])
[pid  5355] <... write resumed> )       = 1
[pid  5356] futex(0x81c7250, FUTEX_WAIT, 2, NULL
<unfinished ...>
[pid  5355] futex(0x81c7250, FUTEX_WAKE, 1 <unfinished ...>
[pid  5356] <... futex resumed> )       = -1 EAGAIN
(Resource temporarily unavailable)
[pid  5355] <... futex resumed> )       = 0
[pid  5356] futex(0x81c7250, FUTEX_WAKE, 1 <unfinished ...>
[pid  5355] gettimeofday( <unfinished ...>
[pid  5356] <... futex resumed> )       = 0
[pid  5355] <... gettimeofday resumed> {1104246902,
467914}, {4294967236, 0}) = 0
[pid  5356] read(6,  <unfinished ...>
[pid  5355] gettimeofday( <unfinished ...>
[pid  5356] <... read resumed> "\0", 1) = 1
[pid  5355] <... gettimeofday resumed> {1104246902,
468040}, {4294967236, 0}) = 0
[pid  5356] select(7, [6], [], [], NULL <unfinished ...>
[pid  5355] select(6, [5], [], [], {0, 50000}
<unfinished ...>
[pid  5357] <... select resumed> )      = 0 (Timeout)
[pid  5357] futex(0x81fb798, FUTEX_WAKE, 1) = 0
[pid  5357] futex(0x81fb798, FUTEX_WAKE, 1) = 0
[pid  5357] select(0, NULL, NULL, NULL, {0, 50000}
<unfinished ...>
[pid  5359] <... select resumed> )      = 0 (Timeout)
[pid  5359] futex(0x81fb798, FUTEX_WAKE, 1) = 0
[pid  5359] futex(0x81fb798, FUTEX_WAKE, 1) = 0
[pid  5359] futex(0x81fb798, FUTEX_WAKE, 1) = 0
...

If IDLE is launched without the subprocess (idle -n)
than it seems to run just fine without the syscall storm:

futex(0x83d1fa0, FUTEX_WAIT, 200, NULL

msg23829 - (view) Author: ZACK (kitanek) Date: 2004-12-28 15:38
Logged In: YES 
user_id=1159448

Sorry, I forgot the system specs:

Debian Linux, unstable branche (SID)
Kernel 2.6.9-1-686
Python 2.3.4 (#2, Dec  3 2004, 13:53:17)
[GCC 3.3.5 (Debian 1:3.3.5-2)] on linux2
glib-config --version = 1.2.10
msg23830 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2005-01-01 17:17
Logged In: YES 
user_id=149084

The socket is polled by the GUI and the subprocess.  What you 
are seeing is the normal delays and polls.  Without the 
subprocess there is no socket and therefore no polling.

Further information is needed.  When IDLE "hangs", does the
GUI become inactive?  Can the subprocess be restarted?  Is
there any evidence (via ps etc.) that the system is running out
of some resource?  Does the problem occur if you send a 
continuous stream of characters to stdout?  Is the interval
to a "hang" always the same?
msg23831 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2005-01-30 04:25
Logged In: YES 
user_id=149084

No response from OP. Closing as 'worksforme'
History
Date User Action Args
2022-04-11 14:56:08adminsetgithub: 41371
2004-12-28 15:31:51kitanekcreate