From 9094adfc2792945b344e393de977b3e8627ace72 Mon Sep 17 00:00:00 2001 From: Craig Chi Date: Tue, 4 Aug 2020 14:31:15 -0700 Subject: Fix FUSE integration test failed with ECONNREFUSED The newer version of FUSE_INIT checks the response from the FUSE server if its major number is equal to 7. If it's not, then FUSE_INIT fails and further filesystem operations will get ECONNREFUSED. To mitigate this issue, we can send back a response with major version equals to 7 when consuming the first FUSE_INIT request. Fixes #3500 --- test/fuse/linux/fuse_base.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'test/fuse/linux') diff --git a/test/fuse/linux/fuse_base.cc b/test/fuse/linux/fuse_base.cc index 6c8432fd0..32221e7b6 100644 --- a/test/fuse/linux/fuse_base.cc +++ b/test/fuse/linux/fuse_base.cc @@ -25,9 +25,9 @@ #include +#include "absl/strings/str_format.h" #include "gmock/gmock.h" #include "gtest/gtest.h" -#include "absl/strings/str_format.h" #include "test/util/posix_error.h" #include "test/util/test_util.h" @@ -100,8 +100,11 @@ PosixError FuseTest::ConsumeFuseInit() { .error = 0, .unique = 2, }; - // Returns an empty init out payload since this is just a test. - struct fuse_init_out out_payload; + // Returns a fake fuse_init_out with 7.0 version to avoid ECONNREFUSED + // error in the initialization of FUSE connection. + struct fuse_init_out out_payload = { + .major = 7, + }; iov_out[0].iov_len = sizeof(out_header); iov_out[0].iov_base = &out_header; iov_out[1].iov_len = sizeof(out_payload); -- cgit v1.2.3