[BUG]UndefinedObject(Object)>>doesNotUnderstand: #binary

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[BUG]UndefinedObject(Object)>>doesNotUnderstand: #binary

damien.pollet
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
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: [BUG]UndefinedObject(Object)>>doesNotUnderstand: #binary

Henrik Sperre Johansen
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, [hidden email] 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
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: [BUG]UndefinedObject(Object)>>doesNotUnderstand: #binary

Henrik Sperre Johansen
In reply to this post by damien.pollet
PS: the title of this thread would be much better if you went a step down, ie:
"stream can be nil in DataStream setStream:".

"UndefinedObject doesNotUnderstand: #binary" really tells nothing about what/where  the error  actually occurs.

Cheers,
Herny

>
> 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
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: [BUG]UndefinedObject(Object)>>doesNotUnderstand: #binary

Damien Pollet
On Tue, May 25, 2010 at 13:37, Henrik Johansen
<[hidden email]> wrote:
> PS: the title of this thread would be much better if you went a step down, ie:
> "stream can be nil in DataStream setStream:".
>
> "UndefinedObject doesNotUnderstand: #binary" really tells nothing about what/where  the error  actually occurs.

Sorry about that, I think I sent the stack trace from the image and it
wasn't clear what would happen precisely from the UI.
Now I don't remember exactly but that image had been confused about
files in other places. Since then we rebuilt one from scratch and now
it works.

Thanks

--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet

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