[Spread-users] spread 4 bug on all platforms?

John Schultz jschultz at spreadconcepts.com
Fri May 5 12:18:35 EDT 2006


Ed,

Thank you very much for the detailed core dump.  I traced down the code 
and there does seem to be a bug in G_compare_proc_ids_by_conf or 
G_compare_daemon_vs_set.  G_compare_daemon_vs_set calls 
G_compare_proc_ids_by_conf like this:

G_compare_proc_ids_by_conf(&da->proc_id, &db->proc_id);

da->proc_id and db->proc_id are int32, so the call is passing two int32* 
to G_compare_proc_ids_by_conf.  But then in that function the pointers 
are cast to int32** and then dereferenced twice.  This is of course 
incorrect and could cause all of the daemons to crash or at least misbehave.

I need to figure out which function is doing the wrong thing and then I 
will commit the fix to SVN/CVS.  I will also post my fix to the mailing 
list so you can just manually update your code if you like.

Thanks!
John


Ed Holyat wrote:

>
> Has anyone run across a bug in this area of the membership code?  It 
> brings down all daemons when encountered and it is not readily 
> reproducible at this point.
>
>         spread.exe!G_compare_proc_ids_by_conf(const void * 
> a=0x00f5d0d8, const void * b=0x007b8b38)  Line 198 + 0x9     C
>
>         spread.exe!G_compare_daemon_vs_set(const void * a=0x01266c8c, 
> const void * b=0x00f9ecfc)  Line 213 + 0x1b       C
>
>         spread.exe!stdskl_low_key_cmp(const stdskl * l=0x00127810, 
> const void * k1=0x01266c8c, const void * k2=0x00f9ecfc)  Line 59 + 
> 0x35      C
>
>         spread.exe!stdskl_low_insert(stdskl * l=0x00127810, stdit * 
> it=0x00000000, const stdit * b=0x001277e4, const stdit * e=0x00000000, 
> unsigned int num_ins=2, int hint=1, int overwrite=1, int advance=1)  
> Line 346 + 0x4c C
>
>         spread.exe!stdskl_put_seq_n(stdskl * l=0x00127810, stdit * 
> it=0x00000000, const stdit * b=0x001277e4, unsigned int num_put=4, int 
> hint=0)  Line 946 + 0x1f      C
>
>         spread.exe!G_build_memb_vs_buf(dummy_group * grp=0x003e1448, 
> dummy_big_scatter * msg=0x0129e2a8, char * buf=0x00491238, int 
> caused=2048, dummy_member * joiner=0x00000000)  Line 1743 + 0x3d    C
>
>>       spread.exe!G_send_heavyweight_join(dummy_group * 
> grp=0x003e1448, dummy_member * joiner=0x00000000, int new_mbox=-1)  
> Line 1242 + 0x1b   C
>
>         spread.exe!G_send_heavyweight_memb(dummy_group * 
> grp=0x003e1448)  Line 1223 + 0xd       C
>
>         spread.exe!G_handle_reg_memb(dummy_configuration 
> reg_memb={...}, dummy_membership_id reg_memb_id={...})  Line 378 + 0x9 C
>
>         spread.exe!Sess_deliver_reg_memb(dummy_configuration 
> reg_memb={...}, dummy_membership_id reg_memb_id={...})  Line 1914 + 
> 0x29   C
>
>         spread.exe!Discard_packets()  Line 1184 + 0x25  C
>
>         spread.exe!Prot_handle_token()  Line 647        C
>
>         spread.exe!E_handle_events()  Line 683 + 0x5d   C
>
>         spread.exe!_run_main(int argc=1, char * * argv=0x003e1620)  
> Line 211    C
>
>         spread.exe!main(int argc=1, char * * argv=0x003e1620)  Line 
> 139 + 0xd   C
>
>         spread.exe!mainCRTStartup()  Line 259 + 0x12    C
>
>         kernel32.dll!7c816d4f()        
>
>         kernel32.dll!7c8399f3()        
>
>
>
> Ed Holyat
>
> Open Link Financial, Inc.
>
> (516) 394-1231
>
> (516) 227-6600 x 231
>
> _www.olf.com_
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Spread-users mailing list
>Spread-users at lists.spread.org
>http://lists.spread.org/mailman/listinfo/spread-users
>  
>
 
---
John Schultz
Spread Concepts LLC
Phn:  301 498 3233
Cell: 443 838 2200





More information about the Spread-users mailing list