[Pvfs2-developers] patches: bug fixes

Phil Carns pcarns at wastedcycles.org
Wed Jun 7 11:54:02 EDT 2006


All of the patches listed in this email are limited scope- they just fix 
specific bugs and don't make any protocol or storage format changes:

pvfs2-kernel-permissions.patch:
-----------
The pvfs2_permission() function is significantly different (due to 
#ifdefs) based on whether or not the kernel provides a 
generic_permission() function which was introduced around 2.6.10.  The 
code path that gets triggered for kernel versions < 2.6.10 has to 
duplicate a good bit of permission checking functionality, but it got a 
few details wrong.  This patch corrects that, based on examples from the 
old vfs_permission() function and how NFS implemented ACL support before 
generic_permission() was available.  There are a set of about 5 or so 
LTP file system tests that will not pass on 2.6.9 with PVFS2 unless this 
patch is applied.

sys-remove-crdirent.patch:
-----------
There is a corner case in sys-remove in which if an operation fails, 
sys-remove has to replace a directory entry.  The msgpair setup for this 
operation was using the wrong handle to determine which server to send 
the request to, however, so the request is sent to the server holding 
the removed object rather than the server holding the parent directory. 
  The doesn't trigger a problem unless a) you use multiple meta servers 
and b) you have the misfortune of triggering this sys-remove error case.

balance-io-servers.patch:
-----------
The PINT_cached_config_next_io() function uses a round robin algorithm 
to pick the next set of I/O servers to use when creating files.  The 
logic had a subtle flaw though.  If you use all I/O servers (as most 
people do), then the I/O server slection is balanced.  However, if you 
configure the file system to use only one datafile, it would result in 
every other server being skipped.  If the number of total number of 
servers is even, then the wrap-around lines up every time to make it so 
that half of the servers pretty much stay overloaded in terms of I/O 
traffic.  This patch corrects the round robin algorithm to make sure 
that every I/O server is used fairly, so that we are balanced regardless 
of how many datafiles are used.  I can give a more detailed explanation 
of what went wrong here if needed (I think I am the one that introduced 
the problem).

env-shmem-cleanup.patch:
-----------
This patch makes 3 improvements to the berkeley db cache usage:
- use the port number of the server's host id as a component of the 
shmem key to use (if shmem style caching is in effect).  This insures 
that if 2 servers are started on the same server, they will not use the 
same shmem region.
- on startup, always forcibly remove any old environment remnants before 
opening the environment.  This makes sure that if the previous server 
instance died unexpectedly, the leftover __db.* files won't interfere 
with anything.  These old files don't serve any purpose for the next 
pvfs2-server run, especially without transactions.
- look for a particular error code on env open that could be an 
indicator that the cache size was too big for the RAM size of the 
machine, and print a warning message.

test-chown-sudo.patch
-----------
This fixes a minor bug in how sudo is handled in test programs related 
to the chown() operation.

test-sgid-error-msg.patch
-----------
This patch adds a clearer error message if test-setgid fails because of 
bad arguments.

-Phil
-------------- next part --------------
A non-text attachment was scrubbed...
Name: balance-io-servers.patch
Type: text/x-patch
Size: 1675 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060607/f81ac8ac/balance-io-servers-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: env-shmem-cleanup.patch
Type: text/x-patch
Size: 6227 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060607/f81ac8ac/env-shmem-cleanup-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pvfs2-kernel-permissions.patch
Type: text/x-patch
Size: 4550 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060607/f81ac8ac/pvfs2-kernel-permissions-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sys-remove-crdirent.patch
Type: text/x-patch
Size: 737 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060607/f81ac8ac/sys-remove-crdirent-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-chown-sudo.patch
Type: text/x-patch
Size: 488 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060607/f81ac8ac/test-chown-sudo-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-sgid-error-msg.patch
Type: text/x-patch
Size: 401 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060607/f81ac8ac/test-sgid-error-msg-0001.bin


More information about the Pvfs2-developers mailing list