From cd1c1599d65551ebf90f43c70d1a1811fcbf02fa Mon Sep 17 00:00:00 2001 From: Lucas Manning Date: Wed, 18 Oct 2023 11:33:27 -0700 Subject: [PATCH] Add locking to fuse loopback file system handler to appease race detector. PiperOrigin-RevId: 574540305 --- test/runner/fuse/fuse.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/test/runner/fuse/fuse.go b/test/runner/fuse/fuse.go index 787447f88..af985b976 100644 --- a/test/runner/fuse/fuse.go +++ b/test/runner/fuse/fuse.go @@ -57,7 +57,16 @@ func main() { log.Warningf("could not create loopback root: %v", err) os.Exit(1) } - opts := &fuse.MountOptions{DirectMountStrict: true, Debug: *debug, AllowOther: true, Options: []string{"default_permissions"}} + opts := &fuse.MountOptions{ + DirectMountStrict: true, + Debug: *debug, + AllowOther: true, + // SingleThreaded adds locking the the fuse server handler. We need to + // enable this so that the go race detector doesn't detect a data race, even + // if there isn't a logical race. + SingleThreaded: true, + Options: []string{"default_permissions"}, + } rawFS := fs.NewNodeFS(loopbackRoot, &fs.Options{NullPermissions: true, Logger: golog.Default()}) server, err := fuse.NewServer(rawFS, *dir, opts) if err != nil {