Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: Re: Re: When starting a process, at what point does "open()" return?

by graff (Chancellor)
on Aug 21, 2003 at 01:01 UTC ( #285333=note: print w/replies, xml ) Need Help??

in reply to Re: Re: When starting a process, at what point does "open()" return?
in thread When starting a process, at what point does "open()" return?

Ah. This makes it very clear. Thanks (and ++!!)

So, while I don't understand what could cause the behavior that you observe (let's hope someone else looks more closely at this thread and can explain it), there might be some way to write another perl script that automates the recovery procedure you've been doing manually -- but I'm only guessing, because my exposure to process-control details on windows is nil.

But consider... if you make the outputs to the log file "atomic" (add the extra overhead to open/write/close each time you append a message to the log, so some other process has a chance to read it while this test script is running), you might be able to run a separate script that loops on "check the log file; sleep". Make sure the problem script (which is trying to launch the flakey executable) logs when it's about to start a process (including the iteration number or some other distinct id), as well as when the open call returns.

Now, the separate monitor script could figure out when the problem script is hanging; it knows the pids of the jobs that have been opened successfully (they're in the log file), and now it just needs to find a pid in the windows process table that is associated with the flakey executable, but isn't in the log file. The monitor script kills that "outlier" pid (could even append to the log file to report that), and the problem/test script would move on.

As I said, I'm only guessing that something like this would work -- I don't know how you would actually implement it. And of course it doesn't really answer you initial question or solve the real problem. But if it works as intended, you could at least move on towards whatever your "true" objective may be.

  • Comment on Re: Re: Re: When starting a process, at what point does "open()" return?

Replies are listed 'Best First'.
Re: Re: Re: Re: When starting a process, at what point does "open()" return?
by tid (Beadle) on Aug 22, 2003 at 02:18 UTC

    I'd started down that path, and only gotten to the point of timing out the log files created by the test EXEs when they start correctly. But I hadn't thought to search through the task list and match to two up. Worth a shot!

    Many Thanks!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://285333]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (8)
As of 2021-06-14 20:32 GMT
Find Nodes?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)

    Results (64 votes). Check out past polls.