I got an "interrupted system call" upon reading an existing file. A
subsequent read worked fine. Seems like the metohd FileConnection class openFileNamed:mode:creationRule: should be protected with a handler for OsNeedRetryError as is SocketAccessor primReadInto:startingAt:for: {private} 2) Also, these methods are sending the backward compatibility protocol, ex restart instead of ex retry SocketAccessor primReadInto:startingAt:for: {private} SocketAccessor primWriteFrom:startingAt:for: {private} Supporting info for the "interrrupted system call"... The stack dump below shows opening a readStream on an existing file when the system error occured. The error was an OSNeedRetryError error. A subsequent try to read the file worked fine. Window Title: Dialog Box HandleRegistry))evaluateWithFullProtection: HandleRegistry))registerValueOf: UnixDiskFileAccessor class(OSHandle class)))handleValue: IOAccessor class))openFileNamed:direction:creation: FileConnection))open FileConnection))setName:mode:creationRule: optimized [] in [] in FileConnection class))openFileNamed:mode:creationRule: BlockClosure))on:do: optimized [] in FileConnection class))openFileNamed:mode:creationRule: BlockClosure))on:do: FileConnection class))openFileNamed:mode:creationRule: FileEncodedStreamConstructor))readStream UnixFilename(Filename)))readStream MasterEDIFReader))privateStandardEDIFFor:fromFileNamed:constructorClass: MasterEDIFReader))standardLibraryEDIFFor:fromFileNamed: optimized [] in ADSLibraryBrowser class))circuitFromEDIF:for: optimized [] in QuitButtonBox class))criticalSection: BlockClosure))on:do: QuitButtonBox class))criticalSection: ADSLibraryBrowser class(ADSMDSApplicationModel class)))criticalSection: ADSLibraryBrowser class))circuitFromEDIF:for: optimized [] in ADSLibraryBrowser class))installLibraryCircuitsFromBOMEDIFDescriptions:comparingWith:directoryName:pattern:oldLibrary:newLibrary: OrderedCollection))do: ADSLibraryBrowser class))installLibraryCircuitsFromBOMEDIFDescriptions:comparingWith:directoryName:pattern:oldLibrary:newLibrary: ADSLibraryBrowser))installLibraryFromDescription:isStandardLibrary: optimized [] in ADSLibraryLocationDescription class))installStandardLibrary:forLibraryReferences: Array(SequenceableCollection)))do: ADSLibraryLocationDescription class))installStandardLibrary:forLibraryReferences: optimized [] in ADSLibraryBrowser))updateInstalledStandardProcess BlockClosure))on:do: optimized [] in [] in QuitButtonBox))errorHandledManagedBlock BlockClosure))on:do: optimized [] in QuitButtonBox))errorHandledManagedBlock optimized [] in [] in QuitButtonBox))abortHandledManagedBlock BlockClosure))ensure: optimized [] in QuitButtonBox))abortHandledManagedBlock BlockClosure))on:do: optimized [] in Process class))forBlock:priority: ---------------------------------------------------------------------- HandleRegistry))evaluateWithFullProtection: Receiver: a HandleRegistry Instance Variables: tally = 2 valueArray = WeakArray[163] (nil nil nil an active UnixDiskFileAccessor nil nil nil an active UnixDiskFileAccessor nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil \(cont) nil nil nil nil nil nil nil nil nil nil ...etc...) executors = Array[163] (nil nil nil an active UnixDiskFileAccessor nil nil nil an active UnixDiskFileAccessor nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil \(cont) nil nil nil nil nil nil nil nil nil nil ...etc...) accessLock = a RecursionLock Arguments: t1 = BlockClosure [] in HandleRegistry))registerValueOf: Temporaries: t2 = an OsNeedRetryError t3 = nil t4 = an OsNeedRetryError Context PC = 39 ---------------------------------------------------------------------- HandleRegistry))registerValueOf: Receiver: a HandleRegistry Instance Variables: tally = 2 valueArray = WeakArray[163] (nil nil nil an active UnixDiskFileAccessor nil nil nil an active UnixDiskFileAccessor nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil \(cont) nil nil nil nil nil nil nil nil nil nil ...etc...) executors = Array[163] (nil nil nil an active UnixDiskFileAccessor nil nil nil an active UnixDiskFileAccessor nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil \(cont) nil nil nil nil nil nil nil nil nil nil ...etc...) accessLock = a RecursionLock Arguments: t1 = BlockClosure [] in OSHandle class))handleValue: Context PC = 9 ---------------------------------------------------------------------- UnixDiskFileAccessor class(OSHandle class)))handleValue: Receiver: an UnixDiskFileAccessor class Instance Variables: superclass = UnixIOAccessor methodDict = MethodDictionary[6] (CompiledMethod UnixDiskFileAccessor))isSeekable CompiledMethod UnixDiskFileAccessor))lock:for: CompiledMethod UnixDiskFileAccessor))commit CompiledMethod UnixDiskFileAccessor))unixFileDescriptor CompiledMethod UnixDiskFileAccessor))connectionClass \(cont) CompiledMethod UnixDiskFileAccessor))readWriteStream ) format = 16386 subclasses = nil instanceVariables = nil organization = ('locking' #lock:for:) ('accessing' #commit #unixFileDescriptor) ('defaults' #connectionClass) ('stream creation' #readWriteStream) ('testing' #isSeekable) name = #'UnixDiskFileAccessor' classPool = nil environment = NameSpace[82] (BlockableIOAccessor ExternalReadStream NameSpace[7] (Core.Character cr 3 Core.Character lf 5 2 1 4 ) SocketAddress MacDiskFileAccessor WinSocketAccessor ExternalDictionary[0] () IOAccessor MacOSFilename ExternalDictionary[20] (struct STARTUPINFO LPSIZE DWORD LPBYTE \(cont) struct OVERLAPPED LPCTSTR LPTSTR struct PROCESS_INFORMATION HDC WORD struct SECURITY_ATTRIBUTES BOOL HANDLE BYTE LPCTSR LPHANDLE LPVOID LPSTR LPCSTR SIZE ) ...etc...) Arguments: t1 = BlockClosure [] in IOAccessor class))openFileNamed:direction:creation: Context PC = 10 ---------------------------------------------------------------------- IOAccessor class))openFileNamed:direction:creation: Receiver: an IOAccessor class Instance Variables: superclass = OSHandle methodDict = MethodDictionary[43] (CompiledMethod IOAccessor))printOn: CompiledMethod IOAccessor))close CompiledMethod IOAccessor))truncateTo: CompiledMethod IOAccessor))primWriteFrom:startingAt:for: CompiledMethod IOAccessor))readInto: CompiledMethod IOAccessor))writeWait CompiledMethod \(cont) IOAccessor))readInto:startingAt:for: CompiledMethod IOAccessor))lineEndConvention ...etc...) format = 16386 subclasses = Array[3] (BlockableIOAccessor MacIOAccessor PCIOAccessor ) instanceVariables = nil organization = ('initialize-release' #close) ('accessing' #bufferSize #commit #descriptor #fileSize #truncateTo:) ('testing' #isActive #isSeekable) ('positioning' #seekTo:) ('data transfer' #readInto: #readInto:startingAt:for: #readInto:startingAt:for:untilFalse: #readInto:untilFalse: #writeAll: #writeFrom: #writeFrom:startingAt:for: #writeFrom:startingAt:for:untilFalse: #writeFrom:startingAt:forSure:) ('constants' #lineEndConvention #readPauseInterval #writePauseInterval) ('connections' #asExternalConnection) ('stream creation' #readAppendStream #readStream #writeStream) ('printing' #printOn:) ('defaults' #connectionClass #defaultClass) ('synchronization' #ioWait #ioWaitWithTimeoutMs: #readWait #readWaitWithTimeoutMs: #setSem:forWrite: #writeWait #writeWaitWithTimeoutMs:) ('finalization' #finalize) ('private-primitives' #primBufferSize #primClose #primGetDescriptor #primGetSize #primReadInto:startingAt:for: #primSeekTo: #primWriteFrom:startingAt:for:) name = #'IOAccessor' classPool = NameSpaceOfClass[2] (HandleRegistry[0] () UnixIOAccessor ) environment = NameSpace[82] (BlockableIOAccessor ExternalReadStream NameSpace[7] (Core.Character cr 3 Core.Character lf 5 2 1 4 ) SocketAddress MacDiskFileAccessor WinSocketAccessor ExternalDictionary[0] () IOAccessor MacOSFilename ExternalDictionary[20] (struct STARTUPINFO LPSIZE DWORD LPBYTE \(cont) struct OVERLAPPED LPCTSTR LPTSTR struct PROCESS_INFORMATION HDC WORD struct SECURITY_ATTRIBUTES BOOL HANDLE BYTE LPCTSR LPHANDLE LPVOID LPSTR LPCSTR SIZE ) ...etc...) Arguments: t1 = '/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif' t2 = 0 t3 = 0 Context PC = 11 ---------------------------------------------------------------------- FileConnection))open Receiver: a FileConnection Instance Variables: inputDescriptor = nil outputDescriptor = nil fileName = a LogicalFilename('/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif') rwmode = #'readOnly' creationRule = #'noCreate' rememberedPosition = nil Context PC = 20 ---------------------------------------------------------------------- FileConnection))setName:mode:creationRule: Receiver: a FileConnection Instance Variables: inputDescriptor = nil outputDescriptor = nil fileName = a LogicalFilename('/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif') rwmode = #'readOnly' creationRule = #'noCreate' rememberedPosition = nil Arguments: t1 = an UnixFilename('/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif') t2 = #'readOnly' t3 = #'noCreate' Context PC = 11 ---------------------------------------------------------------------- optimized [] in [] in FileConnection class))openFileNamed:mode:creationRule: Receiver: an UndefinedObject Temporaries: .self = FileConnection .t1 = an UnixFilename('/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif') .t2 = #'readOnly' .t3 = #'noCreate' Context PC = 11 ---------------------------------------------------------------------- BlockClosure))on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in [] in FileConnection class))openFileNamed:mode:creationRule: outerContext = nil copiedValues = Array[4] (FileConnection an UnixFilename('/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif') #'readOnly' #'noCreate' ) Arguments: t1 = OsNoResourcesError t2 = BlockClosure [] in [] in FileConnection class))openFileNamed:mode:creationRule: Context PC = 18 ---------------------------------------------------------------------- optimized [] in FileConnection class))openFileNamed:mode:creationRule: Receiver: an UndefinedObject Temporaries: .self = FileConnection .t1 = an UnixFilename('/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif') .t2 = #'readOnly' .t3 = #'noCreate' Context PC = 20 ---------------------------------------------------------------------- BlockClosure))on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in FileConnection class))openFileNamed:mode:creationRule: outerContext = nil copiedValues = Array[4] (FileConnection an UnixFilename('/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif') #'readOnly' #'noCreate' ) Arguments: t1 = OsError t2 = BlockClosure [] in FileConnection class))openFileNamed:mode:creationRule: Context PC = 18 ---------------------------------------------------------------------- FileConnection class))openFileNamed:mode:creationRule: Receiver: a FileConnection class Instance Variables: superclass = ExternalConnection methodDict = MethodDictionary[14] (CompiledMethod FileConnection))name CompiledMethod FileConnection))open CompiledMethod FileConnection))defaultIoBuffer CompiledMethod FileConnection))dataSize CompiledMethod FileConnection))fileName CompiledMethod FileConnection))isActive CompiledMethod \(cont) FileConnection))rememberPosition: CompiledMethod FileConnection))logicalName ...etc...) format = 16390 subclasses = nil instanceVariables = Array[4] ('fileName' 'rwmode' 'creationRule' 'rememberedPosition' ) organization = ('accessing' #dataSize #fileName #logicalName #name) ('io buffer creation' #defaultIoBuffer #defaultIoBufferInMode:) ('testing' #canPersist) ('status' #isActive #open) ('persistence' #rememberedPosition #rememberPosition: #revive) ('private' #setName:mode:creationRule:) ('accessing-unix' #unixFileDescriptor) name = #'FileConnection' classPool = nil environment = NameSpace[82] (BlockableIOAccessor ExternalReadStream NameSpace[7] (Core.Character cr 3 Core.Character lf 5 2 1 4 ) SocketAddress MacDiskFileAccessor WinSocketAccessor ExternalDictionary[0] () IOAccessor MacOSFilename ExternalDictionary[20] (struct STARTUPINFO LPSIZE DWORD LPBYTE \(cont) struct OVERLAPPED LPCTSTR LPTSTR struct PROCESS_INFORMATION HDC WORD struct SECURITY_ATTRIBUTES BOOL HANDLE BYTE LPCTSR LPHANDLE LPVOID LPSTR LPCSTR SIZE ) ...etc...) Arguments: t1 = an UnixFilename('/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif') t2 = #'readOnly' t3 = #'noCreate' Context PC = 16 ---------------------------------------------------------------------- FileEncodedStreamConstructor))readStream Receiver: a FileEncodedStreamConstructor Instance Variables: dataRepository = an UnixFilename('/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif') encoding = #'default' Context PC = 9 ---------------------------------------------------------------------- UnixFilename(Filename)))readStream Receiver: an UnixFilename Instance Variables: osName = ByteArray[72] (47 116 111 111 108 115 47 97 100 115 47 108 105 98 47 73 66 77 95 115 105 103 101 55 104 112 47 104 98 116 95 68 105 103 67 101 108 108 115 47 49 97 49 53 47 104 98 116 95 68 105 103 67 101 108 108 115 95 115 103 55 95 108 109 50 100 48 46 101 100 105 102 ) publicName = '/tools/ads/lib/IBM_sige7hp/hbt_DigCells/1a15/hbt_DigCells_sg7_lm2d0.edif' logicalName = nil Context PC = 7 <unintersing stuff leading to readStream removed...> Version Id: #[57 29 58 144 73 1 0 0 57 29 58 144] Patches: (none) Parcels: AT Profiling Core Version '7.3' of 11/22/04 3:09:51 pm AT System Analysis Version '7.2' of 10/20/03 12:39:45 pm Base64Encoding Version '1.3 014' of 11/4/04 8:03:22 pm BOSS Version '7.3.1' of 4/10/05 5:51:21 pm Browser-BaseUI Version '7.3.1' of 4/10/05 5:51:59 pm Browser-BrowserUI Version '7.3.1' of 4/10/05 5:52:10 pm Browser-ChangeObjects Version '7.3.1' of 4/10/05 5:51:45 pm Browser-Environments Version '7.3.1' of 4/10/05 5:51:42 pm Browser-Namespace Version '7.3.1' of 4/10/05 5:51:31 pm Browser-Parser Version '7.3.1' of 4/10/05 5:51:32 pm Browser-Refactorings Version '7.3.1' of 4/10/05 5:51:50 pm Browser-RefactoringUI Version '7.3.1' of 4/10/05 5:52:09 pm Browser-Smalllint Version '7.3.1' of 4/10/05 5:52:23 pm Browser-SmalllintUI Version '7.3.1' of 4/10/05 5:52:26 pm Database Version '7.3.1' of 4/10/05 5:51:16 pm Database-Namespace Version '7.3.1' of 4/10/05 5:51:30 pm Debugger-Browser Extensions Version '7.3.1' of 4/10/05 5:54:24 pm Debugger-Compiler-Modifications Version '7.3.1' of 4/10/05 5:54:07 pm Debugger-Exception-Modifications Version '7.3.1' of 4/10/05 5:54:18 pm Debugger-Load All Version '7.3.1' of 4/10/05 5:54:24 pm Debugger-Probes Version '7.3.1' of 4/10/05 5:54:08 pm Debugger-Process Monitor Version '7.3.1' of 4/10/05 5:54:23 pm Debugger-StackInspector Version '7.3.1' of 4/10/05 5:54:19 pm Debugger-Support Version '7.3.1' of 4/10/05 5:54:15 pm Debugger-Tools-Modifications Version '7.3.1' of 4/10/05 5:54:19 pm Debugger-UI Version '7.3.1' of 4/10/05 5:54:20 pm DLLCC Version '7.3.1' of 4/10/05 6:39:24 pm HashesBase Version '7.3.1' of 4/10/05 6:42:06 pm Headless Version '7.3.1' of 4/10/05 6:40:39 pm LDM-Framework Version '7.3.1' of 4/10/05 5:51:24 pm Lens-Namespace Version '7.3.1' of 4/10/05 5:51:31 pm Lens-Runtime Version '7.3.1' of 4/10/05 7:11:06 pm LoggingTool Version '7.3.1' of 4/10/05 5:51:30 pm MD5 Version '7.3.1' of 4/10/05 6:42:09 pm Method-History Version '7.2' of 10/20/03 12:55:43 pm NetNamespace Version '7.3.1' of 4/20/05 11:33:02 am OldBrowsers Version '7.3.1' of 4/10/05 5:52:59 pm PackageCategories Version '7.3.1' of 4/20/05 11:33:03 am PostgreSQLDriver Version '1.3 014' of 11/4/04 8:03:14 pm PostgreSQLEXDI Version '1.3 014' of 11/4/04 8:03:26 pm PostgreSQLLogging Version '1.3 014' of 11/4/04 8:03:19 pm PostgreSQLVWCompatibility Version '1.3 014' of 11/4/04 8:03:10 pm Refactory-Namespace Version '7.3.1' of 4/10/05 5:51:31 pm SecurityBase Version '7.3.1' of 4/10/05 6:42:03 pm StoreBase Version '7.3.1' of 4/10/05 5:50:25 pm StoreForPostgreSQL Version '1.3 014' of 11/4/04 8:03:29 pm SUnit Version 'Camp Smalltalk 3.1 RC2' of 3/22/03 8:13:37 am SUnitPreload Version 'Camp Smalltalk 3.1 RC1' of 3/19/03 3:52:39 am SUnitUI Version 'Camp Smalltalk 3.1 RC1' of 3/20/03 3:21:56 am T-Gen Version '5.0a' of 11/7/00 6:34:00 pm T-Gen Core Version '5.0a' of 11/7/00 6:36:07 pm T-Gen Development Version '5.0a' of 3/12/02 9:17:22 am T-Gen Testing Version '5.0a' of 11/7/00 6:35:12 pm Tools-Changes Version '7.3.1' of 4/10/05 5:52:28 pm Tools-File Browser Version '7.3.1' of 4/10/05 5:52:52 pm Tools-Parcel Manager Version '7.3.1' of 4/10/05 5:52:49 pm Tools-Settings Version '7.3.1' of 4/10/05 5:52:44 pm Tools-Settings-VW Version '7.3.1' of 4/10/05 5:52:57 pm Tools-Trippy Version '7.3.1' of 4/10/05 5:52:36 pm Tools-Workspace Version '7.3.1' of 4/10/05 5:52:32 pm UIPainter Version '7.3.1' of 4/10/05 6:39:45 pm URISupport Version '7.3.1' of 4/20/05 11:33:00 am WinProcess Version '7.1' of 3/11/03 9:05:47 am XML Version '7.3.1' of 4/20/05 11:32:51 am XML-source Version '7.3.1' of 4/20/05 11:32:58 am CompanyID : 80265 CompanyName : Tektronix ContactName : Mark B. Ballard Email : [hidden email] PhoneNumber : xxxxxx Fax : Severity : 03 CountryCode : USA -- [hidden email] (503) 627-5890 Desk (503) 627-1388 Fax |
Free forum by Nabble | Edit this page |