Subject: [critical] ERROR: ... close-pipe: pipe not in table
From: David Pirotte <[email-masked]>
To: <[email-masked]>
Date: Tue, 22 Oct 2013 14:24:43 -0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello guilers,

	GNU Guile 2.0.9.20-10454

[cfr irc chat of October the 17th, 2013]

I am facing a bug that only occurs on extremely powerful servers:

	in ice-9/popen.scm:
	 106: 1 [close-pipe #<input: #{read pipe}# 69>]
	In unknown file:
	 ?: 0 [scm-error misc-error #f "~A" ("close-pipe: pipe not in table") #f]

I can not reproduce the bug on my personal computer [i5, 4 cores], neither on the
lab most powerful server we have [i7 12 cores], but on this customer's server [2
Xeons E5-2687W, 32 cores total], the bug is not random anymore, it _always_ raises, 
which is critical to us.

Thank you for debugging this asap,
Cheers,
David

in case it might help, here is an extract of the code that raises the error.  in this code,
rg-ergbd1 is an octave [heavy] script [that will be called between 1000 to 62000 depending on
other factors...]

...

(define (ergbd path im-name im-type seeds-dir im-ones x y threshold connectivity mutex log-port)
  (with-mutex mutex ;; (write-log-filename (format #f "(~A, ~A) " x y) log-port)
	      (write-log "." log-port))
  (let* ((cmd (format #f "rg-ergbd1 ~A ~A ~A ~A ~A ~A ~A ~A ~A" path im-name im-type seeds-dir im-ones x y threshold connectivity))
	 (s (open-input-pipe cmd))
	 (results (read-line s)))
    (unless (zero? (status:exit-val (close-pipe s)))
      (error "subprocess returned non-zero result code" cmd))
    results))
...
...
	...
	(par-map (lambda (coord)
	       (ergbd target-dir im-cpol-norm-name im-type seeds-dir im-ones (car coord) (cdr coord) threshold connectivity mutex log-port))
	  coords)
	...