[Bugs] [Bug 1630804] libgfapi-python: test_listdir_with_stat and test_scandir failure on release 5 branch

bugzilla at redhat.com bugzilla at redhat.com
Thu Oct 11 21:29:18 UTC 2018


Shyamsundar <srangana at redhat.com> changed:

           What    |Removed                     |Added
                 CC|                            |kdhananj at redhat.com
              Flags|                            |needinfo?(kdhananj at redhat.c
                   |                            |om)

--- Comment #5 from Shyamsundar <srangana at redhat.com> ---
Using the C based reproducer in comment #4 bisected the code to determine that
the failure is from the following patch:

commit c9bde3021202f1d5c5a2d19ac05a510fc1f788ac

The commit message for the above patch does call out a race of the nature
observed as follows,

<commit message>
Some fops don't have valid iatts in their responses. For eg., write
  response whose data is still cached in write-behind will have zeroed
  out stat. In this case keep only ia_type and ia_gfid and reset rest
  of the iatt members to zero.
  - fuse-bridge in this case just sends "entry" information back to
    kernel and attr is not sent.
  - gfapi sets entry->inode to NULL and zeroes out the entire stat
* There is one tiny race between the entry creation and a readdirp on
  its parent dir, which could cause the inode-ctx setting and inode
  ctx reading to happen on two different inode objects. To prevent
  this, when entry->inode doesn't eqaul to linked_inode,
  - fuse-bridge is made to send only "entry" information without
  - gfapi sets entry->inode to NULL and zeroes out the entire stat.

The bug in this case seems to stem from one of the above (or maybe a pattern
that is new) but looks simple enough that it needs to work as intended.

Requesting @krutika or @du to take a look and see how best to address the

You are receiving this mail because:
You are the QA Contact for the bug.
You are on the CC list for the bug.
You are the assignee for the bug.

More information about the Bugs mailing list