[Openais] Re: openais/evs question

Steven Dake sdake at mvista.com
Mon Oct 4 13:17:23 PDT 2004


Janne
comments inline with patch to fix your problem...

On Mon, 2004-10-04 at 02:01, Janne Karhunen wrote:
> Hi,
> 
> First of all, sorry about the broken thread - accidentally deleted
> your reply (missing morning coffee) so i have to copy/paste from the
> archive.
> 
> Steven wrote:
> 
> > There is no configuration required other then the proper groups and
> > key being setup.  
> 
> Keys are ok. CLM works. No other evs group configuration exists
> other than the fact that they have been joined in. Is this enough?
> 
> 
> > Could you do the following: 
> > Use the "script" command to capture the output of the aisexec on each
> > node.  This will tell us if a few things happened that should happen 
> > or if any errors occured.
> 
> No errors are being generated. Nothing gets printed on evs_mcast_
> joined. Clip from the output of node B joining:
> 
> ..
> EVS STATE group arut 0 gmi arut 2 highest 2 barrier 3 starting group 
> arut 0
> EVS STATE group arut 3 gmi arut 3 highest 2 barrier 3 starting group 
> arut 3
> L(4): EVS recovery of messages complete, transitioning to operational.
> CONFCHG ENTRIES 1
> calling recovery
> L(4): CLM CONFIGURATION CHANGE
> L(4): New Configuration:
> L(4):   131.160.19.30
> L(4): Members Left:
> L(4): Members Joined:
> New queue for ip 131.160.19.28
> L(4): CLM CONFIGURATION CHANGE
> L(4): New Configuration:
> L(4):   131.160.19.28
> L(4):   131.160.19.30
> L(4): Members Left:
> L(4): Members Joined:
> L(4):   131.160.19.28
> L(4): got nodejoin message 131.160.19.30
> L(4): got nodejoin message 131.160.19.28
> L(4): All services unplugged, unplugging processor
> L(4): All processors unplugged, allowing messages to be transmitted.
> ..
> 
> On exit ( it has sent data during this session ):
> 

Data is always sent because the token is rotating around the
processors.  So this would be expected.  In your case though your not
sending multicast data.  One good improvement for us would be to track
multicast data vs token rotation data i/o seperately.

> L(4): Bytes recv 59911730
> L(4): Bytes sent 59913054
> L(4): Messages delivered 0
> L(4): Re-Mcasts 0
>  
> 
> > If that doesn't help, a sample program of what you are trying may be
> > in order.
> 
> Simple test case based on your samples attached. 
> 
> Hmm, while testing this i noticed that if aisexec is not running,
> calling evs_initialize crashes:
> 

thanks I'll file a defect on this.

> Program received signal SIGSEGV, Segmentation fault.
> 0x00000000 in ?? ()
> (gdb) bt
> #0  0x00000000 in ?? ()
> #1  0x400194e0 in saHandleInstancePut () 
> #2  0x400195e6 in saHandleDestroy () 
> #3  0x4001a99b in evs_initialize () 
> #4  0x080488ce in main (i=1, p=0xbffff084) at test.c:69
> 

Your test program is in error (patch to fix it is attached). 
evs_mcast_joined 5th parameter takes the number of entries in the iovec,
not the size of the data in the iovec.  I'll add some text to the man
pages about this.  Thanks for pointing this out.

-steve

-------------- next part --------------
--- /home/sdake/test.c	2004-10-04 12:08:08.000000000 -0700
+++ /s/openais/evs2/test/test.c	2004-10-04 12:12:56.000000000 -0700
@@ -82,9 +82,9 @@
   while ( 1 ) {
     memcpy ( iov.iov_base, (void*)data, strlen ( data ) );
     iov.iov_len = strlen ( data );
-    result = evs_mcast_joined ( &evshandle, EVS_TYPE_AGREED, EVS_PRIO_LOW, &iov, iov.iov_len );
+    result = evs_mcast_joined ( &evshandle, EVS_TYPE_AGREED, EVS_PRIO_LOW, &iov, 1 );
     if ( result != EVS_OK ) {
-      printf ( "EVS SEND FAILED \n" );
+      printf ( "EVS SEND FAILED %d\n", result );
       return -1;
     }
     result= evs_dispatch ( &evshandle, EVS_DISPATCH_ALL );  


More information about the Openais mailing list