GNU bug report logs -
#15683
[critical] ERROR: ... close-pipe: pipe not in table
Previous Next
Reported by: David Pirotte <david <at> altosw.be>
Date: Tue, 22 Oct 2013 16:26:02 UTC
Severity: important
Done: Mark H Weaver <mhw <at> netris.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
To gain some confidence in these patches, I wrote a little test program:
--8<---------------cut here---------------start------------->8---
(use-modules (ice-9 popen))
(define threads
(map (lambda (_)
(call-with-new-thread
(lambda ()
(let loop ()
(let ((pipe (open-pipe* OPEN_READ "echo" "foo")))
(read pipe)
(close-pipe pipe))
(loop)))))
(iota 4)))
--8<---------------cut here---------------end--------------->8---
Replace the '4' with the number of cores in your machine. The code
above will create the requested number of threads, which run in the
background forever, rapidly creating and closing pipes.
The above program is able to reproduce the bug within a few seconds on
both of the multicore machines I have access to (a dual-core x86_64 box
and a 4-core MIPS-compatible Loongson 3A box).
With my patches applied, the above program runs indefinitely without a
problem (I let it run for several minutes).
Please try the code above on the largest machines you have access to.
Thanks,
Mark
This bug report was last modified 11 years and 180 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.