Red Hat Bugzilla – Bug 842825
gluster stripe+rep crashes on posix compliance test
Last modified: 2013-10-04 21:41:27 EDT
Description of problem:
Running the posix compliance test suite against a stripex2 + repx2 volume causes a glusterfs crash.
Version-Release number of selected component (if applicable): 3.3.0
How reproducible: 100%
Steps to Reproduce:
1. Create stripe+rep volume.
2. Run pjd-fstest-20080816 tests.
Actual results: Segfault.
Expected results: All tests pass.
This occurs when the test attempts to link a named pipe. cluster/stripe locates named pipes on the first node of the stripe set, but other operations (lookup, link) are sent to the entire set. The link is sent down to the stripe nodes, each of which is a 2 node replica set. The replica set with the pipe succeeds and the replica without it returns a failure. The replica callback path ignores the inode pointer in the failure case, passing back NULL through the rest of the callback chain. This leads to a crash in stripe where it attempts to check the type of the inode to determine whether to handle stripe context information.
A small modification in afr to pass through the provided inode pointer regardless of return code allows this test (and all other tests) in the posix compliance test suite to pass against the stripe+replicate volume.
NOTE: The above tests are running against a build that includes the fix for bug 842652, which addresses a couple other issues in the posix test suite.
CHANGE: http://review.gluster.com/3727 (cluster: fix crash on link of named pipe in stripe/replicate vol) merged in master by Anand Avati (firstname.lastname@example.org)