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

Bob Westergaard bwestergaard at gmail.com
Wed May 19 19:17:58 UTC 2021


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/b443712a/attachment-0001.html>


More information about the Vm-dev mailing list