[Vm-dev] Intermittent AttachableFileStream error during 7:36 and 10:36 today

Bob Westergaard bwestergaard at gmail.com
Wed May 19 21:28:22 UTC 2021


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?

-- Bob

On Wed, May 19, 2021 at 2:17 PM Bob Westergaard <bwestergaard at gmail.com>
wrote:

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


More information about the Vm-dev mailing list