Thanks!

On Wed, May 9, 2012 at 9:52 AM, Ralph Castain <r...@open-mpi.org> wrote:
> Sure! See attached the original note to the libevent folks
>
>
> Hi folks
>
> I'm working with priorities in events using libevent 2.0.13. Since I'm not 
> using the most current release, I thought I'd ask about a behavior we are 
> seeing that might be a potential bug.
>
> I have attached a simple reproducer of the problem. In short, suppose I have 
> setup 8 priorities for my event base. I then execute an event at priority 4. 
> In that callback, I setup and activate two new events - first one at priority 
> 4, and then another at priority 0. We then cycle back through the event loop.
>
> Given the prioritized event base, I would expect the event at priority 0 to 
> be called back first. However, this isn't what happens. Instead, the first 
> event to be defined (in this case, the one at priority 4) is called back 
> first.
>
> Is this the expected behavior? Can someone point me to the error in this 
> reproducer that might be causing the problem?
>
> FWIW: I found that if I adjust the initial event's priority to something 
> different than 4 (i.e., the level of the next event to be defined), then I 
> get the expected behavior. So it appears that the problem is that when we 
> return to the loop, we trigger any pending event of the same priority as the 
> one we were in, instead of looping around to check the highest priority first.
>
> Thanks
> Ralph
>
>
>
>
>
>
> On May 9, 2012, at 7:45 AM, Josh Hursey wrote:
>
>> Ralph,
>>
>
>> Can you point me to the small reproducer for the libevent bug that was
>> fixed? I'm just curious.
>>
>> Thanks,
>> Josh
>>
>> On Fri, May 4, 2012 at 4:09 PM, Ralph Castain <r...@open-mpi.org> wrote:
>>> FYI: 2.0.19-stable was released yesterday. I have a Mercurial repo all set 
>>> to go:
>>>
>>> https://bitbucket.org/rhc/ompi-libevent2019
>>>
>>> Please check it out - timeout is now set for May 11th.
>>>
>>> Thanks
>>> Ralph
>>>
>>> On May 1, 2012, at 8:38 AM, Ralph Castain wrote:
>>>
>>>> WHAT:  Update libevent to 2.0.19 release
>>>>
>>>> WHEN:  As soon as it is released, expected around May 11
>>>>
>>>> WHY:     The 2.0.19 release contains a critical fix to a bug I recently 
>>>> discovered in the libevent 2.0.x series
>>>>
>>>>
>>>> Details:
>>>> I discovered a bug in libevent over the last few days that causes it to 
>>>> unexpectedly "invert" event priorities. It is a slightly subtle bug, but 
>>>> we were able to provide a simple reproducer and so the libevent folks were 
>>>> able to quickly implement a fix.
>>>>
>>>> Stated simply, if you were in an event of a given priority and activated 
>>>> an event of higher priority, that new event would not get serviced if any 
>>>> event of the current priority were to become active prior to leaving the 
>>>> current event. In other words, libevent would service all active events of 
>>>> the current priority before even looking to see if a higher priority event 
>>>> was active.
>>>>
>>>> The patch adds the following logic to event_active:
>>>>
>>>>>   IF <I am in an event> AND
>>>>>       IF <ev->base> EQ <current-base> AND
>>>>>       IF <pri> LT <current-pri>  THEN
>>>>>           <rescan queues on next loop>
>>>>
>>>>
>>>> Thus, a rescan only occurs if a higher priority event becomes active 
>>>> during an event of lower priority. Unfortunately, ORTE relies on this 
>>>> behavior to handle errors - without the change, an error reported in a 
>>>> message from a daemon (for example) cannot be serviced until ALL messages 
>>>> that arrive during the processing of the message have been handled. In the 
>>>> case of a large cluster that is receiving a long list of messages, this 
>>>> prevents the error from being handled for quite some time.
>>>>
>>>>
>>>
>>>
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>
>>
>>
>> --
>> Joshua Hursey
>> Postdoctoral Research Associate
>> Oak Ridge National Laboratory
>> http://users.nccs.gov/~jjhursey
>>
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>
>
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel



-- 
Joshua Hursey
Postdoctoral Research Associate
Oak Ridge National Laboratory
http://users.nccs.gov/~jjhursey

Reply via email to