[Openais] Re: FW: Evt Deadlock

Steven Dake sdake at mvista.com
Tue Jan 24 13:35:48 PST 2006


Mark
after looking at make event, I found this problem probably separate:

  error = saHandleCreate(&event_handle_db, sizeof(*edi),
        event_handle);
    if (error != SA_AIS_OK) {
        if (error == SA_AIS_ERR_NO_MEMORY) {
            error = SA_AIS_ERR_LIBRARY;
        }
            goto make_evt_done;
    }

    error = saHandleInstanceGet(&event_handle_db, *event_handle,
                (void*)&edi);
    if (error != SA_AIS_OK) {
            goto make_evt_done;
    }

the instance get fails, causing the following code to run:

make_evt_done:
	return error

the problem is, the handle was created, so it should be destroyed if
handleinstanceget fails. so the event handle leaks.

Regards
-steve

On Tue, 2006-01-24 at 13:17 -0800, Mark Haverkamp wrote:
> On Tue, 2006-01-24 at 12:27 -0700, Steven Dake wrote:
> [ ... ]
> 
> > 
> > Mark, I'd take a second look at your saHandleDestroy calls as they may
> > have some kind of problem.
> 
> OK, I found a bad bug.  I don't know if it is related to anyones
> trouble, but it is bad.  In make_event (creates an event structure in
> the library code) the new event is destroyed if there are any errors.  I
> was using the wrong handle database to destroy the event handle.  Here
> is the patch.  This will need to be checked into the picacho branch too.
> I'll create a bugzilla entry too.
> 
> Mark.
> 
> 




More information about the Openais mailing list