<div dir="ltr">I'm pretty sure that is it.  I added some logging code to primitiveTestEndOfFileFlag() and the session ids do not compare.  I see (in a not very recent) VMMaker image that #ioMSecs is used to create the global session id.  Maybe there is some overflow/underflow with the primitive type used for this field?<div><br></div><div>-- Bob</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 19, 2021 at 2:17 PM Bob Westergaard <<a href="mailto:bwestergaard@gmail.com">bwestergaard@gmail.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"><div dir="ltr">I wonder if the file/pipe sessionID comparison with the getThisSessionID() that is failing in a primitive somewhere.    I guess I'll look at how that is created.<div><br></div><div>-- Bob</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 19, 2021 at 2:06 PM Bob Westergaard <<a href="mailto:bwestergaard@gmail.com" target="_blank">bwestergaard@gmail.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"><div dir="ltr"><div><br></div>Hi Dave,<div><br></div><div>I'm changing the system time before starting the image.</div><div><br></div><div>-- Bob </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 19, 2021 at 2:02 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"> <br>
Wos, that's a new one on me. What exactly are you changing on your<br>
computer, are you changing the system time, or changing time zone?<br>
<br>
Dave<br>
<br>
On Wed, May 19, 2021 at 12:17:58PM -0700, Bob Westergaard wrote:<br>
>  <br>
> Hi,<br>
> <br>
> I have a rather bizarre intermittent failure that I'd see if anyone else<br>
> can reproduce.<br>
> <br>
> I've taken the following:<br>
> <br>
> <a href="http://files.squeak.org/5.3/Squeak5.3-19435-64bit/Squeak5.3-19435-64bit-202003021730-Linux.zip" rel="noreferrer" target="_blank">http://files.squeak.org/5.3/Squeak5.3-19435-64bit/Squeak5.3-19435-64bit-202003021730-Linux.zip</a><br>
> <br>
> Started it up and loaded the latest system updates and the OSProcess<br>
> package (access OS functions).<br>
> <br>
> I then did:<br>
> <br>
>     CommandShell command: 'date'<br>
> <br>
> This works as I'd expect it too.<br>
> <br>
> However, what is interesting is that if I change the time on the machine to<br>
> any time between 7:36AM and 10:36AM (PDT, I'm in San Jose, CA) for today<br>
> (May 19th) this call fails with the stack below.  I'm quitting the image<br>
> between time changes.<br>
> <br>
> There was no failure for the same time period yesterday.  Nor does it<br>
> appear to fail for any other time period today.<br>
> <br>
> -- Bob<br>
> <br>
> Stack follows:<br>
> <br>
> 19 May 2021 10:30:20.503624 am<br>
> <br>
> VM: unix - Smalltalk<br>
> Image: Squeak5.3 [latest update: #19458]<br>
> <br>
> SecurityManager state:<br>
> Restricted: false<br>
> FileAccess: true<br>
> SocketAccess: true<br>
> Working Dir<br>
> /scratch/bwesterg/squeak/Squeak5.3-19435-64bit-202003021730-Linux/shared<br>
> Trusted Dir<br>
> /scratch/bwesterg/squeak/Squeak5.3-19435-64bit-202003021730-Linux/shared/secure<br>
> Untrusted Dir<br>
> /scratch/bwesterg/squeak/Squeak5.3-19435-64bit-202003021730-Linux/shared/My<br>
> Squeak<br>
> <br>
> AioEventHandler(Object)>>notify:<br>
> Receiver: an AioEventHandler<br>
> Arguments and temporary variables:<br>
> aString: 'aio event forwarding not supported'<br>
> Receiver's instance variables:<br>
> dependents: nil<br>
> semaphore: nil<br>
> semaIndex: nil<br>
> handlerProc: nil<br>
> descriptor: nil<br>
> <br>
> [] in AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> Receiver: an AioEventHandler<br>
> Arguments and temporary variables:<br>
> <<error during printing><br>
> Receiver's instance variables:<br>
> dependents: nil<br>
> semaphore: nil<br>
> semaIndex: nil<br>
> handlerProc: nil<br>
> descriptor: nil<br>
> <br>
> BlockClosure>>cull:<br>
> Receiver: [closure] in<br>
> AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> Arguments and temporary variables:<br>
> firstArg: Warning: aio event forwarding not supported<br>
> Receiver's instance variables:<br>
> outerContext:<br>
> AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> startpc: 154<br>
> numArgs: 1<br>
> <br>
> [] in Context>>handleSignal:<br>
> Receiver: BlockClosure>>on:do:<br>
> Arguments and temporary variables:<br>
> <<error during printing><br>
> Receiver's instance variables:<br>
> sender: AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> pc: 32<br>
> stackp: 3<br>
> method: (BlockClosure>>#on:do: "a CompiledMethod(1660548)")<br>
> closureOrNil: nil<br>
> receiver: [closure] in<br>
> AioEventHandler>>initializeForExceptions:readEvents:writeEvents:...etc...<br>
> <br>
> BlockClosure>>ensure:<br>
> Receiver: [closure] in Context>>handleSignal:<br>
> Arguments and temporary variables:<br>
> aBlock: [closure] in Context>>handleSignal:<br>
> complete: nil<br>
> returnValue: nil<br>
> Receiver's instance variables:<br>
> outerContext: Context>>handleSignal:<br>
> startpc: 174<br>
> numArgs: 0<br>
> <br>
> Context>>handleSignal:<br>
> Receiver: BlockClosure>>on:do:<br>
> Arguments and temporary variables:<br>
> exception: Warning: aio event forwarding not supported<br>
> handlerActive: true<br>
> val: nil<br>
> Receiver's instance variables:<br>
> sender: AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> pc: 32<br>
> stackp: 3<br>
> method: (BlockClosure>>#on:do: "a CompiledMethod(1660548)")<br>
> closureOrNil: nil<br>
> receiver: [closure] in<br>
> AioEventHandler>>initializeForExceptions:readEvents:writeEvents:...etc...<br>
> <br>
> Warning(Exception)>>signal<br>
> Receiver: Warning: aio event forwarding not supported<br>
> Arguments and temporary variables:<br>
> <br>
> Receiver's instance variables:<br>
> messageText: 'aio event forwarding not supported'<br>
> tag: nil<br>
> signalContext: Warning(Exception)>>signal<br>
> handlerContext: BlockClosure>>on:do:<br>
> outerContext: nil<br>
> <br>
> Warning(Exception)>>signal:<br>
> Receiver: Warning: aio event forwarding not supported<br>
> Arguments and temporary variables:<br>
> signalerText: 'aio event forwarding not supported'<br>
> Receiver's instance variables:<br>
> messageText: 'aio event forwarding not supported'<br>
> tag: nil<br>
> signalContext: Warning(Exception)>>signal<br>
> handlerContext: BlockClosure>>on:do:<br>
> outerContext: nil<br>
> <br>
> Warning class>>signal:<br>
> Receiver: Warning<br>
> Arguments and temporary variables:<br>
> signalerText: 'aio event forwarding not supported'<br>
> Receiver's instance variables:<br>
> superclass: Notification<br>
> methodDict: a MethodDictionary(#defaultAction->(Warning>>#defaultAction "a<br>
> CompiledMethod...etc...<br>
> format: 65541<br>
> instanceVariables: nil<br>
> organization: ('priv handling' defaultAction)<br>
> <br>
> subclasses: {Deprecation . ServiceCancelled . SAXWarning .<br>
> UndeclaredVariableWarning...etc...<br>
> name: #Warning<br>
> classPool: nil<br>
> sharedPools: nil<br>
> environment: nil<br>
> category: #'Kernel-Exceptions'<br>
> suppressed: false<br>
> resetOnStartUp: false<br>
> <br>
> AioEventHandler(Object)>>notify:<br>
> Receiver: an AioEventHandler<br>
> Arguments and temporary variables:<br>
> aString: 'aio event forwarding not supported'<br>
> Receiver's instance variables:<br>
> dependents: nil<br>
> semaphore: nil<br>
> semaIndex: nil<br>
> handlerProc: nil<br>
> descriptor: nil<br>
> <br>
> AioEventHandler>>aioEnable:forSemaphore:externalObject:<br>
> Receiver: an AioEventHandler<br>
> Arguments and temporary variables:<br>
> ioDescriptor: nil<br>
> semaphoreIndex: 17<br>
> trueOrFalse: true<br>
> Receiver's instance variables:<br>
> dependents: nil<br>
> semaphore: nil<br>
> semaIndex: nil<br>
> handlerProc: nil<br>
> descriptor: nil<br>
> <br>
> [] in AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> Receiver: an AioEventHandler<br>
> Arguments and temporary variables:<br>
> <<error during printing><br>
> Receiver's instance variables:<br>
> dependents: nil<br>
> semaphore: nil<br>
> semaIndex: nil<br>
> handlerProc: nil<br>
> descriptor: nil<br>
> <br>
> BlockClosure>>on:do:<br>
> Receiver: [closure] in<br>
> AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> Arguments and temporary variables:<br>
> exceptionOrExceptionSet: Warning<br>
> handlerAction: [closure] in<br>
> AioEventHandler>>initializeForExceptions:readEvents:writeEvents:...etc...<br>
> handlerActive: false<br>
> Receiver's instance variables:<br>
> outerContext:<br>
> AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> startpc: 140<br>
> numArgs: 0<br>
> <br>
> AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> Receiver: an AioEventHandler<br>
> Arguments and temporary variables:<br>
> exceptionEventFlag: true<br>
> readEventFlag: true<br>
> writeEventFlag: false<br>
> Receiver's instance variables:<br>
> dependents: nil<br>
> semaphore: nil<br>
> semaIndex: nil<br>
> handlerProc: nil<br>
> descriptor: nil<br>
> <br>
> AioEventHandler>>forFileStream:exceptions:readEvents:writeEvents:<br>
> Receiver: an AioEventHandler<br>
> Arguments and temporary variables:<br>
> aFileStream: BufferedAsyncFileReadStream: 'pipeReader'<br>
> exceptionEventFlag: true<br>
> readEventFlag: true<br>
> writeEventFlag: false<br>
> Receiver's instance variables:<br>
> dependents: nil<br>
> semaphore: nil<br>
> semaIndex: nil<br>
> handlerProc: nil<br>
> descriptor: nil<br>
> <br>
> AioEventHandler class>>forFileStream:exceptions:readEvents:writeEvents:<br>
> Receiver: AioEventHandler<br>
> Arguments and temporary variables:<br>
> aFileStream: BufferedAsyncFileReadStream: 'pipeReader'<br>
> exceptionEventFlag: true<br>
> readEventFlag: true<br>
> writeEventFlag: false<br>
> Receiver's instance variables:<br>
> superclass: Model<br>
> methodDict: a MethodDictionary(#aioDisable:->(AioEventHandler>>#aioDisable:<br>
> "a CompiledMethod...etc...<br>
> format: 65541<br>
> instanceVariables: #('semaphore' 'semaIndex' 'handlerProc' 'descriptor')<br>
> organization: ('aio event forwarding' aioDisable:<br>
> aioEnable:forSemaphore:externalObject:...etc...<br>
> subclasses: nil<br>
> name: #AioEventHandler<br>
> classPool: a Dictionary(#AioPluginPresent->true )<br>
> sharedPools: nil<br>
> environment: Smalltalk<br>
> category: #'OSProcess-AIO'<br>
> <br>
> BufferedAsyncFileReadStream(AsyncFileReadStream)>>enableEventHandling<br>
> Receiver: BufferedAsyncFileReadStream: 'pipeReader'<br>
> Arguments and temporary variables:<br>
> <br>
> Receiver's instance variables:<br>
> <br>
> <br>
> BufferedAsyncFileReadStream(AsyncFileReadStream)>>initialize<br>
> Receiver: BufferedAsyncFileReadStream: 'pipeReader'<br>
> Arguments and temporary variables:<br>
> <br>
> Receiver's instance variables:<br>
> <br>
> <br>
> BufferedAsyncFileReadStream class(AttachableFileStream<br>
> class)>>name:attachTo:writable:<br>
> Receiver: BufferedAsyncFileReadStream<br>
> Arguments and temporary variables:<br>
> aSymbolOrString: 'pipeReader'<br>
> anIOHandle: #[93 179 159 128 0 0 0 0 48 162 123 2 0 0 0 0 0 0 0 0 0 0 0 0]<br>
> readWriteFlag: false<br>
> Receiver's instance variables:<br>
> superclass: AsyncFileReadStream<br>
> methodDict: a<br>
> MethodDictionary(#actAsExecutor->(BufferedAsyncFileReadStream>>#a...etc...<br>
> format: 65552<br>
> instanceVariables: #('nonBlockingMode' 'readBuffer' 'readSyncSemaphore'<br>
> 'dataAv...etc...<br>
> organization: ('finalization' actAsExecutor)<br>
> ('read ahead buffer' appendAllToBuffer:...etc...<br>
> subclasses: nil<br>
> name: #BufferedAsyncFileReadStream<br>
> classPool: nil<br>
> sharedPools: nil<br>
> environment: Smalltalk<br>
> category: #'OSProcess-Base'<br>
> <br>
> <br>
> --- The full stack ---<br>
> AioEventHandler(Object)>>notify:<br>
> [] in AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> BlockClosure>>cull:<br>
> [] in Context>>handleSignal:<br>
> BlockClosure>>ensure:<br>
> Context>>handleSignal:<br>
> Warning(Exception)>>signal<br>
> Warning(Exception)>>signal:<br>
> Warning class>>signal:<br>
> AioEventHandler(Object)>>notify:<br>
> AioEventHandler>>aioEnable:forSemaphore:externalObject:<br>
> [] in AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> BlockClosure>>on:do:<br>
> AioEventHandler>>initializeForExceptions:readEvents:writeEvents:<br>
> AioEventHandler>>forFileStream:exceptions:readEvents:writeEvents:<br>
> AioEventHandler class>>forFileStream:exceptions:readEvents:writeEvents:<br>
> BufferedAsyncFileReadStream(AsyncFileReadStream)>>enableEventHandling<br>
> BufferedAsyncFileReadStream(AsyncFileReadStream)>>initialize<br>
> BufferedAsyncFileReadStream class(AttachableFileStream<br>
> class)>>name:attachTo:writable:<br>
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>
> AttachableFileStream>>asBufferedAsyncFileReadStream<br>
> ExternalPipe>>setBufferedReader<br>
> PipeableOSProcess(PipeJunction)>>enableOutputStreamTriggers<br>
> PipeableOSProcess>>enableEventTriggers<br>
> PipeableOSProcess(PipeJunction)>>prepareOutputForInternalReader<br>
> PipeableOSProcess>>prepareOutputForInternalReader<br>
> PipeableOSProcess(PipeJunction)>>prepareOutputFor:<br>
> ProxyPipeline>>fromString:shell:<br>
> ProxyPipeline class>>fromString:shell:<br>
> CommandShell>>pipelineCollectionFrom:<br>
> CommandShell>>evaluateOrMakePipelinesFrom:<br>
> CommandShell>>command:echo:<br>
> [] in CommandShell>>processCommand:echo:<br>
> [] in BlockClosure>>newProcess<br>
<br>
</blockquote></div>
</blockquote></div>
</blockquote></div>