What exactly has changed in the networking code in Pharo compared to Squeak 3.9/3.10?
Adrian On Nov 23, 2009, at 01:13 , Ramiro Diaz Trepat wrote: > I am having the same issues trying to connet a Magma Client and a > Magma > Server in "localhost" using the latest Pharo on Snow Leopard (Mac). > It is this issue with NetNameResolver, I couldn't find a work around > yet. > Forcing '127.0.0.1' for localhost used to work before, but not > anymore. > Same image and code seemed to run fine under Linux though. > Cheers > > r > > > > > > 2009/11/22 Bart Gauquie <[email protected]> > >> This is related to: >> http://lists.gforge.inria.fr/pipermail/pharo-project/2009-November/016021.html >> >> I was trying out magma on Pharo. I'm using magma r43final on >> Pharo1.0rc1 >> Latest update: #10493 on Windows Vista 64 bit. >> >> In order for the magma client wanting to connect to the server i >> had to >> adapt >> NetNameResolver>>useOldNetwork >> ^true >> >> It worked till i tried the new high availability of magma. If i >> tried with >> a node to connect to a primary server i always got following error >> on the >> secondary node: MagmaSession>>signalExceptionLike with as message: 'a >> primitive has failed'. After some debugging i figured out that the >> it in >> fact was the primary server which sent to the secondary an Error >> object with >> message text: 'a primitive has failed'. >> >> in the primary server log: >> >> MaLocalRequestServer(MaRequestServer)>>processRequest: >> Receiver: a MaLocalRequestServer >> Arguments and temporary variables: >> aMaClientServerRequest: a MaCommitRequest >> answer: Error: a primitive has failed >> Receiver's instance variables: >> console: a MaRequestServerConsole >> processor: a MagmaRepositoryController >> >> >> Inspired by some issues mentioned @ google code, I tried to evaluate >> NetNameResolver localHostAddress >> on the primary server image. That worked, however trying to print >> that >> resulted in 'a primitive has failed'. >> Even after the NetNameResolver initializeNetwork suggestions I found. >> >> error: >> >> NetNameResolver class(Object)>>error: >> Receiver: NetNameResolver >> Arguments and temporary variables: >> aString: 'a primitive has failed' >> Receiver's instance variables: >> superclass: Object >> methodDict: a MethodDictionary() >> format: 2 >> instanceVariables: nil >> organization: ('as yet unclassified') >> >> subclasses: nil >> name: #NetNameResolver >> classPool: a Dictionary(#DefaultHostName->'' #HaveNetwork->true >> #ResolverBusy->...etc... >> sharedPools: nil >> environment: Smalltalk >> category: #'Network-Kernel' >> traitComposition: nil >> localSelectors: nil >> >> NetNameResolver class(Object)>>primitiveFailed >> Receiver: NetNameResolver >> Arguments and temporary variables: >> >> Receiver's instance variables: >> superclass: Object >> methodDict: a MethodDictionary() >> format: 2 >> instanceVariables: nil >> organization: ('as yet unclassified') >> >> subclasses: nil >> name: #NetNameResolver >> classPool: a Dictionary(#DefaultHostName->'' #HaveNetwork->true >> #ResolverBusy->...etc... >> sharedPools: nil >> environment: Smalltalk >> category: #'Network-Kernel' >> traitComposition: nil >> localSelectors: nil >> >> NetNameResolver class>>primGetNameInfo:flags: >> Receiver: NetNameResolver >> Arguments and temporary variables: >> <<error during printing> >> Receiver's instance variables: >> superclass: Object >> methodDict: a MethodDictionary() >> format: 2 >> instanceVariables: nil >> organization: ('as yet unclassified') >> >> subclasses: nil >> name: #NetNameResolver >> classPool: a Dictionary(#DefaultHostName->'' #HaveNetwork->true >> #ResolverBusy->...etc... >> sharedPools: nil >> environment: Smalltalk >> category: #'Network-Kernel' >> traitComposition: nil >> localSelectors: nil >> >> SocketAddress>>hostNumber >> Receiver: <<error during printing>> >> Arguments and temporary variables: >> size: nil >> name: nil >> Receiver's instance variables: >> <<error during printing>> >> >> SocketAddress>>printOn: >> Receiver: <<error during printing>> >> Arguments and temporary variables: >> aStream: a LimitedWriteStream '' >> Receiver's instance variables: >> <<error during printing>> >> >> [] in SocketAddress(Object)>>printStringLimitedTo: >> Receiver: <<error during printing>> >> Arguments and temporary variables: >> s: a LimitedWriteStream '' >> Receiver's instance variables: >> <<error during printing>> >> >> >> I then tried to revert the changes to NetNameResolver back to: >> useOldNetwork >> ^UseOldNetwork ~~ false >> >> >> printing NetNameResolver localHostAddress now nicely printed a ipv6 >> address. However if i then try to connect to the primary server >> from the >> secondary server i get: >> MagmaSession>>signalExceptionLike >> >> MagmaEnvironmentError: ma...@pc_xx:51003 could not be made a warm >> backup >> because it is not reachable from ma...@pc_xx:51001. >> >> Which is again the same ipv6 error. So the problem i'm facing is that >> either of them work >> I can connect with my magma client to the server if i enable ipv4 >> only, but >> then high availability dont work and vice verse. >> >> Anyone any id how i can debug the primitive has failed on: >> NetNameResolver class>>primGetNameInfo: socketAddress flags: flags >> <primitive: 'primitiveResolverGetNameInfo' module: 'SocketPlugin'> >> flags == 0 ifTrue: [^self primGetNameInfo: socketAddress >> flags: SocketAddressInformation numericFlag]. >> self primitiveFailed >> >> further more, why cant the primitiveFailed mention which primitive >> has >> failed? >> >> Thanks, >> >> Kind Regards, >> >> Bart >> >> -- >> imagination is more important than knowledge - Albert Einstein >> Logic will get you from A to B. Imagination will take you >> everywhere - >> Albert Einstein >> Learn from yesterday, live for today, hope for tomorrow. The >> important >> thing is not to stop questioning. - Albert Einstein >> The true sign of intelligence is not knowledge but imagination. - >> Albert >> Einstein >> Gravitation is not responsible for people falling in love. - Albert >> Einstein >> >> _______________________________________________ >> 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 _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
