1. ReferenceStream newFileNamed:do: does not exist in base.
2. newFileNamed: can return nil, if it can't open a file stream, even after GC.
3. This usually implies too many file handles are open.
4. The best thing that can be done in core, is probably to raise an error in 
DataStream newFileNamed: if the opening of the underlying stream fails, but 
that won't really solve your problems.

i.e., this is most probably an application error caused by not closing file 
streams so creating new ones fails.

Cheers,
Henry

On May 25, 2010, at 1:03 54PM, [email protected] wrote:

> here insert explanation of what you were doing, suspect changes you've
> made and so forth.
> 
> 25 May 2010 1:03:21 pm
> 
> VM: unix - x86_64 - linux - Squeak3.10.2 of '5 June 2008' [latest
> update: #7179]
> Image: Pharo-1.0 [Latest update: #10517]
> 
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /var/www/seaside/register
> Trusted Dir /var/www/seaside/register/secure
> Untrusted Dir /var/www/seaside/register/My Squeak
> 
> UndefinedObject(Object)>>doesNotUnderstand: #binary
>       Receiver: nil
>       Arguments and temporary variables: 
>               aMessage:       binary
>               exception:      MessageNotUnderstood: receiver of "binary" is 
> nil
>               resumeValue:    nil
>       Receiver's instance variables: 
> nil
> 
> ReferenceStream(DataStream)>>setStream:
>       Receiver: <<error during printing>>
>       Arguments and temporary variables: 
>               aStream:        nil
>       Receiver's instance variables: 
>               byteStream:     nil
>               topCall:        nil
>               basePos:        nil
>               references:     nil
>               objects:        nil
>               currentReference:       nil
>               fwdRefEnds:     nil
>               blockers:       nil
>               skipping:       nil
>               insideASegment:         nil
> 
> ReferenceStream>>setStream:
>       Receiver: <<error during printing>>
>       Arguments and temporary variables: 
>               aStream:        nil
>       Receiver's instance variables: 
>               byteStream:     nil
>               topCall:        nil
>               basePos:        nil
>               references:     nil
>               objects:        nil
>               currentReference:       nil
>               fwdRefEnds:     nil
>               blockers:       nil
>               skipping:       nil
>               insideASegment:         nil
> 
> ReferenceStream class(DataStream class)>>on:
>       Receiver: ReferenceStream
>       Arguments and temporary variables: 
>               aStream:        nil
>       Receiver's instance variables: 
>               superclass:     DataStream
>               methodDict:     a MethodDictionary(#beginInstance:size:->a
> CompiledMethod(117: Refe...etc...
>               format:         150
>               instanceVariables:      #('references' 'objects' 
> 'currentReference'
> 'fwdRefEnds' 'bl...etc...
>               organization:   ('reading' beginReference: getCurrentReference
> maybeBeginReferenc...etc...
>               subclasses:     {SmartRefStream}
>               name:   #ReferenceStream
>               classPool:      a Dictionary(#RefTypes->an OrderedCollection(0 
> 0 0 0 1 1 1
> 1 1 0 1 0...etc...
>               sharedPools:    nil
>               environment:    Smalltalk
>               category:       #'System-Object Storage'
>               traitComposition:       nil
>               localSelectors:         nil
> 
> ReferenceStream class>>on:
>       Receiver: ReferenceStream
>       Arguments and temporary variables: 
>               aStream:        nil
>       Receiver's instance variables: 
>               superclass:     DataStream
>               methodDict:     a MethodDictionary(#beginInstance:size:->a
> CompiledMethod(117: Refe...etc...
>               format:         150
>               instanceVariables:      #('references' 'objects' 
> 'currentReference'
> 'fwdRefEnds' 'bl...etc...
>               organization:   ('reading' beginReference: getCurrentReference
> maybeBeginReferenc...etc...
>               subclasses:     {SmartRefStream}
>               name:   #ReferenceStream
>               classPool:      a Dictionary(#RefTypes->an OrderedCollection(0 
> 0 0 0 1 1 1
> 1 1 0 1 0...etc...
>               sharedPools:    nil
>               environment:    Smalltalk
>               category:       #'System-Object Storage'
>               traitComposition:       nil
>               localSelectors:         nil
> 
> ReferenceStream class(DataStream class)>>newFileNamed:
>       Receiver: ReferenceStream
>       Arguments and temporary variables: 
>               aString: 
> '/var/www/seaside/register/PatagoniaBackup/register/esug2010.1'
>               strm:   nil
>       Receiver's instance variables: 
>               superclass:     DataStream
>               methodDict:     a MethodDictionary(#beginInstance:size:->a
> CompiledMethod(117: Refe...etc...
>               format:         150
>               instanceVariables:      #('references' 'objects' 
> 'currentReference'
> 'fwdRefEnds' 'bl...etc...
>               organization:   ('reading' beginReference: getCurrentReference
> maybeBeginReferenc...etc...
>               subclasses:     {SmartRefStream}
>               name:   #ReferenceStream
>               classPool:      a Dictionary(#RefTypes->an OrderedCollection(0 
> 0 0 0 1 1 1
> 1 1 0 1 0...etc...
>               sharedPools:    nil
>               environment:    Smalltalk
>               category:       #'System-Object Storage'
>               traitComposition:       nil
>               localSelectors:         nil
> 
> ReferenceStream class>>newFileNamed:do:
>       Receiver: ReferenceStream
>       Arguments and temporary variables: 
>               aName: 
> '/var/www/seaside/register/PatagoniaBackup/register/esug2010.1'
>               aBlock:         [closure] in [] in 
> PatPatagoniaFileDatabase>>saveRepository
>               file:   nil
>       Receiver's instance variables: 
>               superclass:     DataStream
>               methodDict:     a MethodDictionary(#beginInstance:size:->a
> CompiledMethod(117: Refe...etc...
>               format:         150
>               instanceVariables:      #('references' 'objects' 
> 'currentReference'
> 'fwdRefEnds' 'bl...etc...
>               organization:   ('reading' beginReference: getCurrentReference
> maybeBeginReferenc...etc...
>               subclasses:     {SmartRefStream}
>               name:   #ReferenceStream
>               classPool:      a Dictionary(#RefTypes->an OrderedCollection(0 
> 0 0 0 1 1 1
> 1 1 0 1 0...etc...
>               sharedPools:    nil
>               environment:    Smalltalk
>               category:       #'System-Object Storage'
>               traitComposition:       nil
>               localSelectors:         nil
> 
> [] in PatPatagoniaFileDatabase>>saveRepository
>       Receiver: a PatPatagoniaFileDatabase
>       Arguments and temporary variables: 
>               fileName: 
> '/var/www/seaside/register/PatagoniaBackup/register/esug2010.1'
>       Receiver's instance variables: 
>               conference:     a PatConference
>               entryPoint:     'register/esug2010'
>               lock:   a Semaphore(a Process in [] in Semaphore>>critical: a 
> Process
> in [] in Se...etc...
> 
> [] in Semaphore>>critical:
>       Receiver: a Semaphore(a Process in [] in Semaphore>>critical: a Process
> in [] in Semaphore>>critical...etc...
>       Arguments and temporary variables: 
> <<error during printing>
>       Receiver's instance variables: 
>               firstLink:      a Process in [] in Semaphore>>critical:
>               lastLink:       a Process in [] in Semaphore>>critical:
>               excessSignals:  0
> 
> BlockClosure>>ensure:
>       Receiver: [closure] in Semaphore>>critical:
>       Arguments and temporary variables: 
>               aBlock:         [closure] in Semaphore>>critical:
>               returnValue:    nil
>               b:      nil
>       Receiver's instance variables: 
>               outerContext:   Semaphore>>critical:
>               startpc:        38
>               numArgs:        0
> 
> Semaphore>>critical:
>       Receiver: a Semaphore(a Process in [] in Semaphore>>critical: a Process
> in [] in Semaphore>>critical...etc...
>       Arguments and temporary variables: 
> <<error during printing>
>       Receiver's instance variables: 
>               firstLink:      a Process in [] in Semaphore>>critical:
>               lastLink:       a Process in [] in Semaphore>>critical:
>               excessSignals:  0
> 
> PatPatagoniaFileDatabase>>saveRepository
>       Receiver: a PatPatagoniaFileDatabase
>       Arguments and temporary variables: 
> 
>       Receiver's instance variables: 
>               conference:     a PatConference
>               entryPoint:     'register/esug2010'
>               lock:   a Semaphore(a Process in [] in Semaphore>>critical: a 
> Process
> in [] in Se...etc...
> 
> [] in PatPatagoniaFileDatabase>>takeSnapshot
>       Receiver: a PatPatagoniaFileDatabase
>       Arguments and temporary variables: 
> 
>       Receiver's instance variables: 
>               conference:     a PatConference
>               entryPoint:     'register/esug2010'
>               lock:   a Semaphore(a Process in [] in Semaphore>>critical: a 
> Process
> in [] in Se...etc...
> 
> [] in BlockClosure>>newProcess
>       Receiver: [closure] in PatPatagoniaFileDatabase>>takeSnapshot
>       Arguments and temporary variables: 
> 
>       Receiver's instance variables: 
>               outerContext:   PatPatagoniaFileDatabase>>takeSnapshot
>               startpc:        45
>               numArgs:        0
> 
> 
> --- The full stack ---
> UndefinedObject(Object)>>doesNotUnderstand: #binary
> ReferenceStream(DataStream)>>setStream:
> ReferenceStream>>setStream:
> ReferenceStream class(DataStream class)>>on:
> ReferenceStream class>>on:
> ReferenceStream class(DataStream class)>>newFileNamed:
> ReferenceStream class>>newFileNamed:do:
> [] in PatPatagoniaFileDatabase>>saveRepository
> [] in Semaphore>>critical:
> BlockClosure>>ensure:
> Semaphore>>critical:
> PatPatagoniaFileDatabase>>saveRepository
> [] in PatPatagoniaFileDatabase>>takeSnapshot
> [] in BlockClosure>>newProcess
> 
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> 


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to