Project

General

Profile

Actions

Bug #21660

closed

tests.test_inodes.InodeTests.test_inode_cleared fails intermittently

Added by Brett Smith 3 months ago. Updated about 2 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
FUSE
Story points:
-

Description

======================================================================
FAIL: test_inode_cleared (tests.test_inodes.InodeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/workspace/developer-run-tests-doc-pysdk-api-fuse/services/fuse/tests/test_inodes.py", line 87, in test_inode_cleared
    self.assertEqual(600, cache.total())
AssertionError: 600 != 1100

----------------------------------------------------------------------

The attached log failed on a development branch, but later passed on the exact same commit.


Files


Subtasks 1 (0 open1 closed)

Task #21836: Review 21660-inode-test-raceResolvedPeter Amstutz05/30/2024Actions
Actions #1

Updated by Peter Amstutz 3 months ago

  • Target version set to Future
Actions #2

Updated by Peter Amstutz about 2 months ago

  • Target version changed from Future to Development 2024-06-05 sprint
  • Assigned To set to Tom Clegg
Actions #3

Updated by Tom Clegg about 2 months ago

  • Status changed from New to In Progress

21660-inode-test-race @ f254e6a4e1593a4ade5176e8f283162fbd9af8f2 -- developer-run-tests: #4252

    The test case needs to wait for the _inode_remove_queue tasks to be
    completed, but _inode_remove method was calling task_done() too early
    in the case of tasks that are deferred until evict_candidates.
Actions #4

Updated by Tom Clegg about 2 months ago

I don't think this change affects real-life usage at all, so we could include it in the next point release, or not.

Actions #5

Updated by Peter Amstutz about 2 months ago

Tom Clegg wrote in #note-3:

21660-inode-test-race @ f254e6a4e1593a4ade5176e8f283162fbd9af8f2 -- developer-run-tests: #4252

[...]

This LGTM. You're right, it can't call task_done until the task is really actually done, but the deferred execution to play around the llfuse lock obscures that.

I agree this shouldn't have any usage implications outside of testing one way or the other, it only affects the behavior of shutdown, at which point you're discarding everything so cache management doesn't matter. Only within the very narrow bounds of the test do you need to make sure cache management operations have completed.

Actions #6

Updated by Tom Clegg about 2 months ago

  • Status changed from In Progress to Resolved
Actions

Also available in: Atom PDF