<div>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).</div><div>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.</div>
<div>Same image and code seemed to run fine under Linux though.</div><div>Cheers</div><div><br></div><div>r</div><div><br></div><div><br></div><div><br></div><br><br><div class="gmail_quote">2009/11/22 Bart Gauquie <span dir="ltr"><<a href="mailto:bart.gauquie@gmail.com">bart.gauquie@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div>This is related to: <a href="http://lists.gforge.inria.fr/pipermail/pharo-project/2009-November/016021.html" target="_blank">http://lists.gforge.inria.fr/pipermail/pharo-project/2009-November/016021.html</a><br clear="all">
</div><div>
<br></div><div>I was trying out magma on Pharo. I'm using magma r43final on Pharo1.0rc1 Latest update: #10493 on Windows Vista 64 bit.<br></div><div><br></div><div>In order for the magma client wanting to connect to the server i had to adapt </div>
<div>NetNameResolver>>useOldNetwork</div><div> ^true</div><div><br></div><div>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'.</div>
<div><br></div><div>in the primary server log: </div><div><br>MaLocalRequestServer(MaRequestServer)>>processRequest:<br> Receiver: a MaLocalRequestServer <br> Arguments and temporary variables: <br>          aMaClientServerRequest:         a MaCommitRequest <br>
         answer:         Error: a primitive has failed<br> Receiver's instance variables: <br>          console:         a MaRequestServerConsole <br>          processor:         a MagmaRepositoryController </div><div><br></div><div><br></div><div>Inspired by some issues mentioned @ google code, I tried to evaluate </div>
<div>NetNameResolver localHostAddress</div><div>on the primary server image. That worked, however trying to print that resulted in 'a primitive has failed'.</div><div>Even after the NetNameResolver initializeNetwork suggestions I found.</div>
<div><br></div><div>error:</div><div><br></div><div>NetNameResolver class(Object)>>error:<br>        Receiver: NetNameResolver<br>        Arguments and temporary variables: <br>                aString:         'a primitive has failed'<br>        Receiver's instance variables: <br>
                superclass:         Object<br>                methodDict:         a MethodDictionary()<br>                format:         2<br>                instanceVariables:         nil<br>                organization:         ('as yet unclassified')<br><br>                subclasses:         nil<br>                name:         #NetNameResolver<br>                classPool:         a Dictionary(#DefaultHostName->'' #HaveNetwork->true #ResolverBusy->...etc...<br>
                sharedPools:         nil<br>                environment:         Smalltalk<br>                category:         #'Network-Kernel'<br>                traitComposition:         nil<br>                localSelectors:         nil<br><br>NetNameResolver class(Object)>>primitiveFailed<br>        Receiver: NetNameResolver<br>
        Arguments and temporary variables: <br><br>        Receiver's instance variables: <br>                superclass:         Object<br>                methodDict:         a MethodDictionary()<br>                format:         2<br>                instanceVariables:         nil<br>                organization:         ('as yet unclassified')<br>
<br>                subclasses:         nil<br>                name:         #NetNameResolver<br>                classPool:         a Dictionary(#DefaultHostName->'' #HaveNetwork->true #ResolverBusy->...etc...<br>                sharedPools:         nil<br>                environment:         Smalltalk<br>                category:         #'Network-Kernel'<br>
                traitComposition:         nil<br>                localSelectors:         nil<br><br>NetNameResolver class>>primGetNameInfo:flags:<br>        Receiver: NetNameResolver<br>        Arguments and temporary variables: <br><<error during printing><br>
        Receiver's instance variables: <br>
                superclass:         Object<br>                methodDict:         a MethodDictionary()<br>                format:         2<br>                instanceVariables:         nil<br>                organization:         ('as yet unclassified')<br><br>                subclasses:         nil<br>                name:         #NetNameResolver<br>                classPool:         a Dictionary(#DefaultHostName->'' #HaveNetwork->true #ResolverBusy->...etc...<br>
                sharedPools:         nil<br>                environment:         Smalltalk<br>                category:         #'Network-Kernel'<br>                traitComposition:         nil<br>                localSelectors:         nil<br><br>SocketAddress>>hostNumber<br>        Receiver: <<error during printing>><br>
        Arguments and temporary variables: <br>                size:         nil<br>                name:         nil<br>        Receiver's instance variables: <br><<error during printing>><br><br>SocketAddress>>printOn:<br>        Receiver: <<error during printing>><br>
        Arguments and temporary variables: <br>                aStream:         a LimitedWriteStream ''<br>        Receiver's instance variables: <br><<error during printing>><br><br>[] in SocketAddress(Object)>>printStringLimitedTo:<br>
        Receiver: <<error during printing>><br>        Arguments and temporary variables: <br>                s:         a LimitedWriteStream ''<br>        Receiver's instance variables: <br><<error during printing>><br></div>
<div>
<br></div><div><br></div><div>I then tried to revert the changes to NetNameResolver back to:<br></div><div>useOldNetwork<br> ^UseOldNetwork ~~ false<br></div><div><br></div><div><br></div><div>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: </div>
<div>MagmaSession>>signalExceptionLike</div><div><br></div><div>MagmaEnvironmentError: magma@PC_XX:51003 could not be made a warm backup because it is not reachable from magma@PC_XX:51001.</div><div><br></div><div>
Which is again the same ipv6 error. So the problem i'm facing is that either of them work</div>
<div>I can connect with my magma client to the server if i enable ipv4 only, but then high availability dont work and vice verse.</div><div><br></div><div>Anyone any id how i can debug the primitive has failed on:</div><div>
NetNameResolver class>>primGetNameInfo: socketAddress flags: flags<br> <primitive: 'primitiveResolverGetNameInfo' module: 'SocketPlugin'><br> flags == 0 ifTrue: [^self primGetNameInfo: socketAddress<br>
                                         flags: SocketAddressInformation numericFlag].<br> self primitiveFailed<br></div><div><br></div><div>further more, why cant the primitiveFailed mention which primitive has failed?</div><div><br></div><div>Thanks,</div>
<div><br></div><div>Kind Regards,</div><div><br></div><div>Bart</div><br><font color="#888888">-- <br>imagination is more important than knowledge - Albert Einstein<br>Logic will get you from A to B. Imagination will take you everywhere - Albert Einstein<br>
Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning. - Albert Einstein<br>The true sign of intelligence is not knowledge but imagination. - Albert Einstein<br>Gravitation is not responsible for people falling in love. - Albert Einstein<br>
</font><br>_______________________________________________<br>
Pharo-project mailing list<br>
<a href="mailto:Pharo-project@lists.gforge.inria.fr">Pharo-project@lists.gforge.inria.fr</a><br>
<a href="http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project" target="_blank">http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project</a><br></blockquote></div><br>