Menu

#1038 "exec" of more than 2 pipes crashes in 4000 to 14000 cycles

obsolete: 8.1
closed-fixed
nobody
2
2001-04-17
2000-10-26
Anonymous
No

OriginalBugID: 3082 Bug
Version: 8.1
SubmitDate: '1999-10-11'
LastModified: '1999-11-02'
Severity: CRIT
Status: Released
Submitter: techsupp
ChangedBy: hobbs
OS: Other
OSVersion: UNIX System V Release 4 of NCR version 3.02
Machine: NA
FixedDate: '1999-11-02'
FixedInVersion: 8.2.2
ClosedDate: '2000-10-25'

Name:
Roy Glasser

Comments:
1. Using UNIX System V Release 4 of NCR v3.02
2. They have complied and made available Tcl/Tk 8.1ba2
3. Script given here dies as described.
4. PLEASE:
a. Is this reproducible by you?
b. Is there a reasonable workaround (without intermediate files)?

ReproducibleScript:
#! /usr/gnu/bin/wish8.1
wm geometry . +500+0
frame .meter -bg red
pack .meter
set Cnt 0
proc MT {} {
global Val Cnt
incr Cnt 1
puts "Cnt=$Cnt"
set Val [exec who | wc -l | wc -l | wc -l ]
}
proc Loop {} {
set i 1 ; while $i<2 {
MT
for {set u 1} {$u<20} {incr u 1} {
after 1
update
}
}
}
# ----------
Loop
# NOTE: Dies in 4000 to 14,000 iterations when
# more than two pipe symbols.
# MESG: Error in startup script: couldn't execute
# "who": not enough memory while executing
# "exec who | wc -l | wc -l | wc -l "

ObservedBehavior:
Crashes on "exec" line with "out of memory".

DesiredBehavior:
Should see output of exec command.

A exec mem leak was fixed recently that might solve this
problem. It is in the current 8.3 CVS sources.
-- 10/15/1999 hobbs
There are no know mem leaks with 8.2.2 at the Tcl level
(according to purify), including in exec.test.
-- 11/02/1999 hobbs

Discussion

  • Brent B. Welch

    Brent B. Welch - 2000-10-26
    • priority: 5 --> 2
    • status: open --> closed-fixed
     
  • Don Porter

    Don Porter - 2001-04-17
    • labels: 104246 --> 27. Channel Types
    • summary: "exec" of more than 2 pipes crashes in 4000 to 14000 cycles --> "exec" of more than 2 pipes crashes in 4000 to 14000 cycles