Posted by jmcwb (jmcwb), 2 August 2005Running on windows 2000 with sp3 or sp4 I have a number of customers that have spawn fail with "the application failed to initialize properly (0x80000003)". The test is:
%spawn ftp xxxxxx
It turns out that trying to spawn any program fails. We had them try "spawn depends c:/winnt/system32/ftp.exe" and the spawn of depends fails. Other machines at the same site using the same versions of tcl/expect work just file.
We're running with expect 5.2.1 and tcl80 since these are the only "free" versions available for windows. Activestate, I know have some later versions that cost money.
The weird thing is that prior to June 13th, one of the users was able to run the tclsh/spawn ftp sequence without failure. Then starting on June 13th, this fails. I setup a virtual machine with windows 2000 sp4 and applied all the patches on one of the failing machines can cannot duplicate the problem.
Posted by admin (Graham Ellis), 2 August 2005The whole concept of Expect doesn't fit well with the windows architecture, and you'll find a whole host of threads similar to yours on this board if you look back, I'm afraid. I think that ActiveState have seen that there's a real need for expect under windows and real problems with the older versions ... which is why they've gone the commercial route, perhaps.
a) Buy licenses
b) Upgrade to Linux
c) Keep asking / looking - you may find a work around or solution
d) Do your FTP transfers directly from your Tcl rather than through expect - there's code in tcllib
Personally, I would explore the last option first.
Posted by jmcwb (jmcwb), 2 August 2005Thanks for your reply. I don't see any other posts on this forum with a similar problem. Oh well. This issue is complicated by the fact that the use of tcl/expect is embedded in a large commercial product, and although it was originally developed for unix systems, it was ported to windows. It looks like we may have to investigate the later versions available from ActiveState.
Posted by admin (Graham Ellis), 2 August 2005I owe you an apology ... I have a "rule" that says don't refer people back to ancient posts (or to books they haven't got access to) ... and I appear to have just broken it. Sorry.
If there's a large amount of embedded Expect code there then, yes, your best bet is probably to explore the ActiveState route; if it was just a small amount of code (or an application that was structured to hall all its Expect in one specific area), then I would suggest tcllib. And, yes, I know neither is ideal ....
Posted by jmcwb (jmcwb), 2 August 2005Problem solved. It turns out that our customer started running an updated version of BlackICE that apparently blocks processes from spawning stuff more than one level deep. So even the ActiveState version of tcl/expect would have had the same problem.
thanks for your help.
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: email@example.com • WEB: http://www.wellho.net • SKYPE: wellho