http://www.perlmonks.org?node_id=635055

esr has asked for the wisdom of the Perl Monks concerning the following question:

I have a Perl program running in Windows XP which interfaces with Excel using the WIN32::OLE stuff. The program has been running for a long time and I have made no changes to it recently. When I tried to run it today the program terminated with a SIGALRM for no apparent reason. I am not using any function (that I am aware of) that would precipitate this signal. What is more confusing is that this is only happening on one of our two machines. The program continues to run fine on the second one. The only change to our systems in the last few days was changing our DSL ISP. The configuring of the DSL modem (and router) was done on the machine which is getting the SIGALRM now. The configuration was done using the Yahoo Install Manager which is not installed on the other machine. This may be a total red herring but that is the only change I can think of that was done on one machine and not the other. Has anyone encountered this spontaneous SIGALRM condition and can help me identify what is causing it?

Replies are listed 'Best First'.
Re: Program getting SIGALRM
by esr (Scribe) on Aug 25, 2007 at 17:36 UTC
    After posting the above I uninstalled the "AT&T Self Support Tool" which I installed as part of the DSL changeover and which is supposed to help diagnose any problems with the AT&T DSL service. Removing that POC seems to have resolved the SIGALRM problem and the program runs again. Others may want to be warned.
Re: Program getting SIGALRM
by spectre9 (Beadle) on Aug 26, 2007 at 00:41 UTC
    While I have not encountered SIGALRM before, I have had Perl code behave funny after windows patches were installed.

    Have you investigated OS patches? Either 'windows update' or a perhaps the recent .NET patch. The yahoo install may have put a patch on or installed patches as it was putting hooks into the OS. Or it may have turned on automatic update.

    Take a look at add/remove programs and see if there is a some OS patches on the 'broken' machine that are not present on your other box. Check the 'show updates' button to see these OS patches.

    You can also look for KB*.log in your windows install directory. If the machine was patched, there is almost always some artifacts left behind just in case the change needs to be backed out.