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