Whenever I run an InstallShield 6 installer, and it fails early on for any reason (e.g. a file was missing, or the "object reference not set" bug), the error messagebox "Error installing iKernel.exe: (0x1400)" appears. The user clicks 'OK', and the program terminates (after a few seconds). So far so good.
But on stderr I see fixme:ole:_xread Read only 0 of 4 bytes from 0x58. fixme:ole:_StubReaderThread Failed with hres 80004005 and I note the presence of one or two stray wine processes and a wineserver: $ ps augxw | grep wine dank 947 14.9 0.3 3172 1236 ? S 11:58 0:10 wineserver dank 949 0.5 7.5 64400 29028 pts/0 S 11:58 0:00 /usr/local/bin/wine C:\PROG~FBU\COMM~CP1\INST~JM1\engine\6\INTE~MEX\I dank 957 0.0 7.5 64400 29028 pts/0 S 11:59 0:00 /usr/local/bin/wine C:\PROG~FBU\COMM~CP1\INST~JM1\engine\6\INTE~MEX\I
Subsequent runs of the installer produce the error "error installing iKernel.exe: (0x1400)" probably because iKernel.exe is locked, and can't be overwritten. Killing all wine processes, e.g. killall wine lets the next run get past the 0x1400 error.
I'm not stuck or even terribly bothered by this, but I thought I'd document it here in case anyone's interested. - Dan