aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Somers <asomers@FreeBSD.org>2025-10-14 02:18:48 +0000
committerAlan Somers <asomers@FreeBSD.org>2025-10-14 14:46:54 +0000
commitd1bd541b385d49d2ae3a8bad9df72779b606e208 (patch)
tree268fd12b41cd91984671f9b05195233c963b5231
parent7117c86fcb7ebee4483097cefa9b143de8d78ee0 (diff)
fusefs: fix intermittency in the BadServer.ShortWrite test
This test implicitly depended on the order in which two threads completed. If the test thread finished first, the test would pass. But if the mock file system thread did, it would attempt to read from an unmounted file system, and fail. As a result, the test would randomly fail once out of every several thousand executions. Fix it by telling the mock file system's event loop to exit without attempting to read any more events. Reported by: Siva Mahadevan <me@svmhdvn.name> MFC after: 1 week Reviewed by: Siva Mahadevan <me@svmhdvn.name> Differential Revision: https://reviews.freebsd.org/D53080
-rw-r--r--tests/sys/fs/fusefs/bad_server.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/sys/fs/fusefs/bad_server.cc b/tests/sys/fs/fusefs/bad_server.cc
index af2ca146e431..c3d195735446 100644
--- a/tests/sys/fs/fusefs/bad_server.cc
+++ b/tests/sys/fs/fusefs/bad_server.cc
@@ -65,6 +65,11 @@ TEST_F(BadServer, ShortWrite)
out.header.unique = 0; // Asynchronous notification
out.expected_errno = EINVAL;
m_mock->write_response(out);
+ /*
+ * Tell the event loop to quit. The kernel has already disconnected us
+ * because of the short write.
+ */
+ m_mock->m_quit = true;
}
/*