On 23.09.2010 01:59, Tim Uckun wrote: >> What do you mean by that? Goes the timeout undetected? Can't you >> kill the process? Are there any unexpected error messages / >> exceptions? > > Obviously the timeout is not detected. I don't find that obvious at all from your initial description. > I am not sure about the > exceptions as it happens when I am not looking but I will ramp up the > logging and see if I can trap anything. You could start by doing Thread.abort_on_exception = true at the beginning of your script. >> A frequent problem with #popen methods is to not read file descriptors >> which can make the client hang (i.e. if it writes more than fits into >> a pipe). That could be something to check since you are not reading >> any of the streams. > > If you have any pointers to documentation about this I would really > appreciate it. I know so little about unix processes and pipes and > such. I don't have anything handy but I guess Google will help. A pipe is basically what it looks like: it's a piece of pipe with you write to on one end and read from at the other end. At the read end there is a valve. If nobody reads the valve stays closed and you can't fill in more at the write end. If you use blocking IO your process blocks on the system call and won't be active before you read from the other end. (This is a bit simplistic because it leaves threads and interpreter implementation out of the way but this is basically what happens). http://en.wikipedia.org/wiki/Pipe_%28Unix%29 Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/