[Pvfs2-developers] bmi_thread_function question

Sam Lang slang at mcs.anl.gov
Wed Jul 26 17:26:36 EDT 2006


On Jul 26, 2006, at 4:32 PM, Phil Carns wrote:

> Sam Lang wrote:
>> Hi All,
>> I noticed that in thread-mgr.c:bmi_thread_function, there is a  
>> call  to BMI_test_unexpected if the bmi_unexp_count > 0, which  
>> only happens  on the server.  The value of bmi_unexp_count on the  
>> server can be as  high as 50 from the job_bmi_unexp posts in  
>> server.c.  It looks like  the bmi_unexp_array (which gets filled  
>> in with the unexpected  messages received) is only allocated to  
>> hold 5 results though  (THREAD_MGR_TEST_COUNT).  At first glance  
>> this looks like a bug,  since BMI_test_unexpected would be filling  
>> in the results past the  5th element.  It seems like something  
>> like this would have caused  some server crashes due to writing  
>> past the end of the array, and  that we would have discovered  
>> something like that by now.  How is  this handled?  Does bmi  
>> internally only handle at most 5 unexpected  messages at a time?
>
> This logic in thread-mgr.c is what prevents it from overrunning the  
> array (the incount variable is passed into BMI_test_unexpected to  
> indicate how many results it is allowed to retrieve):
>
>             incount = bmi_unexp_count;
>             if(incount > THREAD_MGR_TEST_COUNT)
>                 incount = THREAD_MGR_TEST_COUNT;
>
> I don't think the BMI function cares how big the array is (there  
> probably is no explicit internal limit).
>
Ah right.  Not sure how I missed that...thanks Phil!

-sam

> -Phil
>



More information about the Pvfs2-developers mailing list