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-2020...
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
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-2020...
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
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@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-2020...
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
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@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@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-2020...
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
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@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@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@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-2020...
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
Maybe not related at all, but in a different context we were getting random failures when redirecting output from os commands to the stdio depending on the value of #ioMSecs caused by an inconsistency in how globalSessionID was computed (https://github.com/pharo-project/opensmalltalk-vm/issues/233)
On Wed, May 19, 2021 at 11:28 PM Bob Westergaard bwestergaard@gmail.com wrote:
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@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@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@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-2020...
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
HI Andrei,
Yep, this is the same issue. Glad to hear that someone else has seen it.
Thanks! -- Bob
On Thu, May 20, 2021 at 1:53 AM Andrei Chis chisvasileandrei@gmail.com wrote:
Maybe not related at all, but in a different context we were getting random failures when redirecting output from os commands to the stdio depending on the value of #ioMSecs caused by an inconsistency in how globalSessionID was computed (https://github.com/pharo-project/opensmalltalk-vm/issues/233)
On Wed, May 19, 2021 at 11:28 PM Bob Westergaard bwestergaard@gmail.com wrote:
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@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@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@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-2020...
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
I agree with the assessment of Alistair Grant in https://github.com/pharo-project/opensmalltalk-vm/issues/233
"Option 3. Modify globalSessionID so that it never uses more than 31 bits"
Yes this seems safest and best to me.
Dave
On Thu, May 20, 2021 at 10:53:35AM +0200, Andrei Chis wrote:
Maybe not related at all, but in a different context we were getting random failures when redirecting output from os commands to the stdio depending on the value of #ioMSecs caused by an inconsistency in how globalSessionID was computed (https://github.com/pharo-project/opensmalltalk-vm/issues/233)
On Wed, May 19, 2021 at 11:28 PM Bob Westergaard bwestergaard@gmail.com wrote:
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@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@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@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-2020...
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
vm-dev@lists.squeakfoundation.org