<div dir="ltr"><div dir="auto">Hi Dave,<div dir="auto"><br></div><div dir="auto">Thanks! The particular error here is a failure to initialize a png plugin. We are definitely in the command line<span class="gmail_default" style="font-size:small">. </span><span class="gmail_default" style="font-size:small"> I would imagine a delay to allow the virus checker to finish would fix this problem but it would be better to know if we can proceed if that is even possible.  Notice the </span>LdrResolveDelayLoadsFromDll<span class="gmail_default" style="font-size:small"> maybe error handling at this point would work if it fails the problem may be scanning?</span></div><div dir="auto"><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Exception code: C0000005</div>Exception addr: 6117E9C0<span class="gmail-im" style="color:rgb(80,0,80)"><br>Access violation (read access) at 7E31C014<br>EAX:7E31C014    EBX:00000000    ECX:00000014    EDX:0000000E<br>ESI:0002C014    EDI:0094D47C    EBP:0094D40C    ESP:0094D3C0<br></span>EIP:6117E9C0    EFL:00010206<span class="gmail-im" style="color:rgb(80,0,80)"><br>FP Control: 0000027F<br>FP Status:  00004022<br>FP Tag:     0000FFFF<br><br>Crashed in the VM thread<br></span><br></div><div dir="auto"><div class="gmail_default" style="font-size:small"><span style="color:rgb(80,0,80)">Stack backtrace:</span></div>        [6117E9C0] ??? + 0 in (null)<br>        [6117F0F4] ??? + 0 in (null)<br>        [6117F8D2] ??? + 0 in (null)<br>        [6118024D] ??? + 0 in (null)<br>        [61181DA4] ??? + 0 in (null)<br>        [77779FCF] LdrUnregisterDllNotification + 2127 in ntdll.dll<br>        [77769E4E] LdrParentRtlResetNtUserPfn + 2062 in ntdll.dll<br>        [77781D7A] LdrResolveDelayLoadsFromDll + 1418 in ntdll.dll<br>        [777635EB] RtlDosSearchPath_U + 683 in ntdll.dll<br>        [7776D25F] LdrShutdownProcess + 1167 in ntdll.dll<br>        [77777279] RtlGetAce + 3641 in ntdll.dll<br>        [7777AEEB] RtlConsoleMultiByteToUnicodeN + 2763 in ntdll.dll<br>        [7777B1B3] LdrParentRtlRetrieveNtUserPfn + 147 in ntdll.dll<br>        [6117E6E2] ??? + 0 in (null)<br>        [6118907C] ??? + 0 in (null)<span class="gmail-im" style="color:rgb(80,0,80)"><br>        [00A71000] ??? + 0 in (null)<br></span>        [75E5AB86] LoadLibraryW + 38 in kernelbase.dll<br>        [75E5A9C2] LoadLibraryExW + 50 in kernelbase.dll<span class="gmail-im" style="color:rgb(80,0,80)"><br>        [0043BCC1] ??? + 244929 in Terf.exe<br>        [0043BD0A] ??? + 245002 in Terf.exe<br>        [004470D5] ??? + 291029 in Terf.exe<br>        [00447212] ??? + 291346 in Terf.exe<br>        [00447429] ??? + 291881 in Terf.exe<br>        [0040D8F1] ??? + 55537 in Terf.exe<br>        [0041E94D] ??? + 125261 in Terf.exe<br>        [0042373C] ??? + 145212 in Terf.exe<br>        [00423C14] ??? + 146452 in Terf.exe<br>        [0043E2F5] ??? + 254709 in Terf.exe<br>        [0043E603] ??? + 255491 in Terf.exe<br>        [00521C0D] ??? + 1186829 in Terf.exe<br>        [004010BB] ??? + 4283 in Terf.exe<br>        [004012C8] ??? + 4808 in Terf.exe<br></span>        [77620419] AcquireSRWLockExclusive + 25 in kernel32.dll<br>        [7779662D] RtlGetCompressionWorkSpaceSize + 237 in ntdll.dll<br><div class="gmail_default" style="font-size:small">        [777965FD] RtlGetCompressionWorkSpaceSize + 189 in ntdll.dll</div><br></div><div dir="auto"><div class="gmail_default" style="font-size:small"><span style="color:rgb(80,0,80)">Primitive trace:</span></div><div><div class="gmail-adm" style="margin:5px 0px"><div id="gmail-q_787" class="gmail-ajR gmail-h4" style="background-color:rgb(232,234,237);border:none;clear:both;line-height:6px;outline:none;width:24px;color:rgb(80,0,80);font-size:11px;border-radius:5.5px"><div class="gmail-ajT" style="background:url("https://www.gstatic.com/images/icons/material/system/1x/more_horiz_black_20dp.png") 50% 50%/20px no-repeat;height:11px;opacity:0.54;width:24px"></div></div></div><div class="gmail-im" style="color:rgb(80,0,80)">findFirstInString:inSet:startingAt:<br>primOpen:writable:<br>shallowCopy<br>primitiveWait<br>basicNew<br>new:<br>at:put:<br>at:put:<br>signal<br>basicNew:<br>species<br>basicNew:<br>basicNew<br>ensure:<br>valueNoContextSwitch<br>basicNew:<br>size<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>size<br>primRead:into:startingAt:count:<br>at:<br>shallowCopy<br>basicNew<br>new:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>shallowCopy<br>new:<br>replaceFrom:to:with:startingAt:<br>at:put:<br>value:<br>on:do:<br>value<br>basicNew<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>-<br>+<br>basicNew:<br>value:<br>on:do:<br>value<br>basicNew<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>basicNew:<br>value:<br>on:do:<br>value<br>basicNew<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>basicNew:<br>basicNew:<br>size<br>basicNew:<br>size<br>replaceFrom:to:with:startingAt:<br>at:<br>primGetPosition:<br>basicNew:<br>at:put:<br>at:put:<br>at:put:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>replaceFrom:to:with:startingAt:<br>basicNew<br>findNextHandlerContextStarting<br>tempAt:<br>tempAt:<br>tempAt:put:<br>ensure:<br>valueNoContextSwitch<br>tempAt:<br>valueWithArguments:<br>findNextUnwindContextUpTo:<br>tempAt:<br>tempAt:put:<br>tempAt:<br>terminateTo:<br>value<br>tempAt:put:<br>findNextUnwindContextUpTo:<br>terminateTo:<br>value:<br>on:do:<br>value<br>basicNew<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>basicNew:<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>primJPEGPluginIsPresent<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>value:<br>on:do:<br>basicNew<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>basicNew:<br>primJPEGPluginIsPresent<br>value:<br>basicNew<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>basicNew:<br>primSize:<br>species<br>basicNew:<br>size<br>replaceFrom:to:with:startingAt:<br>=<br>species<br>basicNew:<br>-<br>+<br>replaceFrom:to:with:startingAt:<br>+<br>=<br>bitShift:<br>at:<br>bitOr:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>bitShiftMagnitude:<br>bitOr:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>bitShiftMagnitude:<br>bitOr:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>bitShiftMagnitude:<br>bitOr:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>bitShiftMagnitude:<br>bitOr:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>species<br>basicNew:<br>replaceFrom:to:with:startingAt:<br>bitShiftMagnitude:<br>bitOr:<br>basicNew<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>basicNew:<br>=<br>basicNew<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>basicNew:<br>basicNew<br>basicNew:<br>decompress:fromByteArray:at:<br>beCursorWithMask:<br>ensure:<br>size<br>basicNew:<br>size<br>replaceFrom:to:with:startingAt:<br>-<br>+<br>at:<br>at:put:<br>at:put:<br>at:put:<br>at:put:<br>basicNew:<br>at:put:<br>basicNew<br>basicSize<br>basicNew<br>@<br>@<br>basicNew<br>basicNew<br>basicSize<br>copyBits<br>basicNew<br>basicNew<br>new:<br>basicNew<br>new:<br>primSizeNoError:<br>primSizeNoError:<br>primGetPosition:<br>basicNew:<br>+<br><<br></div></div><div class="gmail_default" style="font-size:small"><span style="color:rgb(80,0,80)">pngPluginVersion</span></div><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_default" style="font-size:small">Smalltalk stack dump:</div>  0x950168 I PNGReadWriter>nextImage 295516516: a(n) PNGReadWriter<span class="gmail-im" style="color:rgb(80,0,80)"><br>  0x950188 M [] in ImageReadWriter class>formFromStream: 273588992: a(n) ImageReadWriter class<br></span>  0x9501a8 M BlockClosure>ensure: 295516628: a(n) BlockClosure<span class="gmail-im" style="color:rgb(80,0,80)"><br>  0x9501d0 I CursorWithMask(Cursor)>showWhile: 273290060: a(n) CursorWithMask<br>  0x950200 I ImageReadWriter class>formFromStream: 273588992: a(n) ImageReadWriter class<br>  0x950228 I Form class>fromBinaryStream: 273599436: a(n) Form class<br></span>  0x950250 M [] in QForms>import:from: 295487508: a(n) QForms<br>  0x950270 M BlockClosure>ensure: 295506324: a(n) BlockClosure<br>  0x9502a4 I [] in QForms>import:from: 295487508: a(n) QForms<br>  0x9502c0 M BlockClosure>on:do: 295501124: a(n) BlockClosure<br>  0x9502f8 I QForms>import:from: 295487508: a(n) QForms<br><div class="gmail_default" style="font-size:small">  0x950324 I QForms>initialize 295487508: a(n) QForms</div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 11, 2019, 11:09 PM David T. Lewis <<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, Apr 11, 2019 at 04:20:10PM -0400, Ron Teitelbaum wrote:<br>
>  <br>
> Hi All,<br>
> <br>
> When processing the command line I ran into an interesting problem.  When<br>
> running normally everything processes fine but if I'm also running Immunet<br>
> which is scanning the VM for viruses as it starts up a quick command line<br>
> can run into something that is not properly loaded and crash.  If I shut<br>
> down the virus protection it runs fine, if I start the application first<br>
> and then process the command line it runs fine.<br>
> <br>
> Is there something I can check in the image to know that the image is fully<br>
> loaded before processing the command line arguments?<br>
> <br>
<br>
Hi Ron,<br>
<br>
I am more familiar with the Unix VMs, but I think that what I will say here<br>
applies to any of the compiled VMs.<br>
<br>
When the VM and image are first started, the following things happen:<br>
<br>
- VM executable is loaded and begins execution. it is not yet in the<br>
  interpreter, but is loaded and running.<br>
<br>
- Memory is allocated to contain the object memory.<br>
<br>
- Contents of the image file are read into the allocated memory.<br>
<br>
- The object memory is scanned, updating object pointers to match the<br>
  position of the allocated memory<br>
<br>
- The interpreter loop is entered.<br>
<br>
- Smalltalk stuff happens, such as processing a command line.<br>
<br>
The object memory scan for fixing pointers seems key with respect to<br>
the problem you are seeing, because it means that both the VM executable<br>
and the object memory are fully load prior to Smalltalk execution, and<br>
also that (in most cases) memory locations will have been written<br>
throughout the object memory space.<br>
<br>
I am not entirely certain if the pointer fixups happen (or happen<br>
always) on Windows, because the fixups are needed only if the memory<br>
is loaded to a different virtual memory address than were in effect<br>
when the image was last saved. Someone with better Windows experience<br>
may be able to confirm or deny it.<br>
<br>
In any case, it seems likely that both the VM executable and the<br>
complete object memory will have been fully loaded prior to executing<br>
anything on a command line.<br>
<br>
The only other ideas I can think of are that 1) it might be somehow<br>
related to jitted code, since the jit code generation kicks in after<br>
Smalltalk is running, or 2) it might be somehow related to external<br>
file or socket handles from the previous session, which are invalid<br>
but possibly might confuse a virus scanner. <br>
<br>
I really can't guess what is going on here, but possibly the above<br>
will prompt some better ideas from someone else.<br>
<br>
Dave<br>
<br>
<br>
</blockquote></div>