I've managed to re-create the problem here. By using my $output = `dir \largedir\*`, to force perl to capture a large volume of data from the backticks, I can get program to hang. If I redirect the output to a file or nul, it doesn't happen. If the volume of output from the command is small, it doesn't happen.
So it appears to be related to the capture of output by the backticks. Somewhere, a deadlock is occuring.
So, how important to your application is it to capture the output? I substituted system 'dir \largedir\*'; and it ran perfectly again. Maybe if you can live without capturing the output, you could do the same until someone manages to track down the cause of the backticks problem?
I don't think that I will be able to take this much further as everytime I try to build a debug version of perl it goes belly up. I'll set it running under an external debugger and see if I can interupt it when the deadlock occurs, but I don't hold out much hope. Even if I succeeded, it would only be a little extra info for the p5p guys to work with--it would still be upto them to work out what is causing the deadlock and how to fix it.
Remember that they are volunteers. Don't expect anything by Friday. Indeed, it would probably be wise not to mention that.
In reply to Re^15: "Thread already joined at..." and "A thread exited while x threads were running" errors
by BrowserUk
in thread "Thread already joined at..." and "A thread exited while x threads were running" errors
by nickos
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |