[Pvfs2-developers] patches: misc. bug fixes

Phil Carns pcarns at wastedcycles.org
Thu Aug 10 16:55:01 EDT 2006


bmi-socket-close.patch:
-----------------------
This fixes a bug in the new BMI_set_info(... BMI_TCP_CLOSE_SOCKET ...) 
mechanism, which is used to reconnect the socket to the initial 
configuration server if new socket buffer sizes are specified in the 
config file.  I didn't follow the code path find the exact problem, but 
at a high level it wasn't being thorough enough in cleaning out the old 
socket.  This showed up when using epoll and specifying socket buffer 
sizes in the server configuration- in this case the client will often 
fail to mount with a cryptic "not a directory" error and leave some 
epoll() errors in the pvfs2-client.log file.  I think a stale (or 
possibly reused) file descriptor was being left in the epoll fd set.  At 
any rate, the fix is to use a different set of functions for tearing 
down the entire address etc. so that it is reconnected on the next BMI 
addr lookup.  This path is already used by the server to discard old BMI 
addresses after critical errors on addresses that cannot be reconnected. 
  It is triggered from bmi.c without entering the bmi_tcp module, so 
this patch also adds a check to make sure we don't bother for non-tcp 
methods.

bmi-test-overflow.patch:
------------------------
One of the bmi bandwidth test programs was using types that might 
overflow if testing large enough transfers.  The fix is to convert to 
doubles and drop in several type casts to be cautious when performing 
the computation that was causing trouble.

cancel-bugs.patch:
-------------------------
The biggest fix here is a change to the job timer code.  It was 
performing some pointer operations in the wrong order, which could lead 
to job timers failing to trigger in some cases. This would prevent some 
operations from ever timing out.  A secondary fix is a minor cleanup in 
BMI to catch potential race conditions in cancellation where a lock 
wasn't being held while checking to see if the target operation is complete.

flow-post-error.patch:
-------------------------
This patch adds checks in the client side I/O state machine to test for 
failure at post time for flow operations.  This type of error is 
uncommon unless the flow parameters are faulty, but it should have 
checked anyway to be safe.

ndfile-config-check.patch:
--------------------------
This is a safety test.  The problem here is that there was no bounds 
checking for the DefaultNumDFiles option in the config file.  This made 
it possible to select -1 (which in PVFS1 meant "use the default 
number").  In PVFS2 this number gets passed verbatim to the client and 
would cause malloc failures and various other odd results when used. 
The patch just checks at parse time to make sure the value isn't negative.

-Phil
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bmi-socket-close.patch
Type: text/x-patch
Size: 2411 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060810/3f28a37e/bmi-socket-close-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bmi-test-overflow.patch
Type: text/x-patch
Size: 1193 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060810/3f28a37e/bmi-test-overflow-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cancel-bugs.patch
Type: text/x-patch
Size: 3146 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060810/3f28a37e/cancel-bugs-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: flow-post-error.patch
Type: text/x-patch
Size: 3980 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060810/3f28a37e/flow-post-error-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ndfile-config-check.patch
Type: text/x-patch
Size: 514 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060810/3f28a37e/ndfile-config-check-0001.bin


More information about the Pvfs2-developers mailing list