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
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers