Skip to content

Instantly share code, notes, and snippets.

@jacobsa
Last active August 29, 2015 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jacobsa/c5ed28684ddd56abf047 to your computer and use it in GitHub Desktop.
Save jacobsa/c5ed28684ddd56abf047 to your computer and use it in GitHub Desktop.
Forensics for jacobsa/fuse#8
[jacobsa@centos-7 fuse]$ uname -a
Linux centos-7 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[jacobsa@centos-7 fuse]$ go test -v ./samples/flushfs --ogletest.run Mmap
=== RUN TestFlushFS
[----------] Running tests from NoErrorsTest
[ RUN ] NoErrorsTest.Mmap_NoMsync_MunmapBeforeClose
2015/04/01 23:22:05 Resource busy error while unmounting; trying again
2015/04/01 23:22:05 Resource busy error while unmounting; trying again
2015/04/01 23:22:05 Resource busy error while unmounting; trying again
2015/04/01 23:22:05 Resource busy error while unmounting; trying again
2015/04/01 23:22:05 Resource busy error while unmounting; trying again
2015/04/01 23:22:05 Resource busy error while unmounting; trying again
2015/04/01 23:22:05 Resource busy error while unmounting; trying again
2015/04/01 23:22:05 Resource busy error while unmounting; trying again
2015/04/01 23:22:05 Resource busy error while unmounting; trying again
2015/04/01 23:22:06 Resource busy error while unmounting; trying again
2015/04/01 23:22:06 Resource busy error while unmounting; trying again
2015/04/01 23:22:06 Resource busy error while unmounting; trying again
2015/04/01 23:22:06 Resource busy error while unmounting; trying again
2015/04/01 23:22:06 Resource busy error while unmounting; trying again
2015/04/01 23:22:07 Resource busy error while unmounting; trying again
2015/04/01 23:22:07 Resource busy error while unmounting; trying again
flush_fs_test.go:609:
Expected: elements are: [paco]
Actual: [taco], whose element 0 doesn't match
[ FAILED ] NoErrorsTest.Mmap_NoMsync_MunmapBeforeClose (4.566782793s)
[ RUN ] NoErrorsTest.Mmap_NoMsync_CloseBeforeMunmap
2015/04/01 23:22:09 Resource busy error while unmounting; trying again
2015/04/01 23:22:09 Resource busy error while unmounting; trying again
2015/04/01 23:22:09 Resource busy error while unmounting; trying again
2015/04/01 23:22:09 Resource busy error while unmounting; trying again
2015/04/01 23:22:09 Resource busy error while unmounting; trying again
2015/04/01 23:22:10 Resource busy error while unmounting; trying again
2015/04/01 23:22:10 Resource busy error while unmounting; trying again
2015/04/01 23:22:10 Resource busy error while unmounting; trying again
2015/04/01 23:22:10 Resource busy error while unmounting; trying again
2015/04/01 23:22:10 Resource busy error while unmounting; trying again
2015/04/01 23:22:10 Resource busy error while unmounting; trying again
2015/04/01 23:22:10 Resource busy error while unmounting; trying again
2015/04/01 23:22:10 Resource busy error while unmounting; trying again
2015/04/01 23:22:10 Resource busy error while unmounting; trying again
2015/04/01 23:22:11 Resource busy error while unmounting; trying again
2015/04/01 23:22:11 Resource busy error while unmounting; trying again
[ OK ] NoErrorsTest.Mmap_NoMsync_CloseBeforeMunmap (4.224101648s)
[ RUN ] NoErrorsTest.Mmap_WithMsync_MunmapBeforeClose
[ OK ] NoErrorsTest.Mmap_WithMsync_MunmapBeforeClose (4.013548064s)
[ RUN ] NoErrorsTest.Mmap_WithMsync_CloseBeforeMunmap
[ OK ] NoErrorsTest.Mmap_WithMsync_CloseBeforeMunmap (4.01288941s)
[----------] Finished with tests from NoErrorsTest
[----------] Running tests from FlushErrorTest
[----------] Finished with tests from FlushErrorTest
[----------] Running tests from FsyncErrorTest
[----------] Finished with tests from FsyncErrorTest
--- FAIL: TestFlushFS (16.82s)
FAIL
exit status 1
FAIL github.com/jacobsa/fuse/samples/flushfs 16.821s
jacobsa@debian-7-backports:~/go/src/github.com/jacobsa/fuse$ uname -a
Linux debian-7-backports 3.16.0-0.bpo.4-amd64 #1 SMP Debian 3.16.7-ckt4-3~bpo70+1 (2015-02-12) x86_64 GNU/Linux
jacobsa@debian-7-backports:~/go/src/github.com/jacobsa/fuse$ go test -v ./samples/flushfs --ogletest.run Mmap
=== RUN TestFlushFS
[----------] Running tests from NoErrorsTest
[ RUN ] NoErrorsTest.Mmap_NoMsync_MunmapBeforeClose
[ OK ] NoErrorsTest.Mmap_NoMsync_MunmapBeforeClose (4.378181949s)
[ RUN ] NoErrorsTest.Mmap_NoMsync_CloseBeforeMunmap
2015/04/01 23:23:04 Resource busy error while unmounting; trying again
2015/04/01 23:23:04 Resource busy error while unmounting; trying again
2015/04/01 23:23:04 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:05 Resource busy error while unmounting; trying again
2015/04/01 23:23:06 Resource busy error while unmounting; trying again
2015/04/01 23:23:06 Resource busy error while unmounting; trying again
[ OK ] NoErrorsTest.Mmap_NoMsync_CloseBeforeMunmap (4.256056795s)
[ RUN ] NoErrorsTest.Mmap_WithMsync_MunmapBeforeClose
[ OK ] NoErrorsTest.Mmap_WithMsync_MunmapBeforeClose (4.048115755s)
[ RUN ] NoErrorsTest.Mmap_WithMsync_CloseBeforeMunmap
[ OK ] NoErrorsTest.Mmap_WithMsync_CloseBeforeMunmap (4.047961308s)
[----------] Finished with tests from NoErrorsTest
[----------] Running tests from FlushErrorTest
[----------] Finished with tests from FlushErrorTest
[----------] Running tests from FsyncErrorTest
[----------] Finished with tests from FsyncErrorTest
--- PASS: TestFlushFS (16.73s)
PASS
ok github.com/jacobsa/fuse/samples/flushfs 16.734s
jacobsa@fourier:~/go/src/github.com/jacobsa/fuse (reproduce-fuse-issue)% uname -a
Linux fourier.syd.corp.google.com 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
jacobsa@fourier:~/go/src/github.com/jacobsa/fuse (reproduce-fuse-issue)% go test -v ./samples/flushfs --ogletest.run Mmap
=== RUN TestFlushFS
[----------] Running tests from NoErrorsTest
[ RUN ] NoErrorsTest.Mmap_NoMsync_MunmapBeforeClose
2015/04/02 10:20:41 Resource busy error while unmounting; trying again
2015/04/02 10:20:41 Resource busy error while unmounting; trying again
2015/04/02 10:20:41 Resource busy error while unmounting; trying again
2015/04/02 10:20:41 Resource busy error while unmounting; trying again
2015/04/02 10:20:41 Resource busy error while unmounting; trying again
2015/04/02 10:20:41 Resource busy error while unmounting; trying again
2015/04/02 10:20:41 Resource busy error while unmounting; trying again
2015/04/02 10:20:41 Resource busy error while unmounting; trying again
2015/04/02 10:20:42 Resource busy error while unmounting; trying again
2015/04/02 10:20:42 Resource busy error while unmounting; trying again
2015/04/02 10:20:42 Resource busy error while unmounting; trying again
2015/04/02 10:20:42 Resource busy error while unmounting; trying again
2015/04/02 10:20:42 Resource busy error while unmounting; trying again
2015/04/02 10:20:42 Resource busy error while unmounting; trying again
2015/04/02 10:20:43 Resource busy error while unmounting; trying again
2015/04/02 10:20:43 Resource busy error while unmounting; trying again
flush_fs_test.go:609:
Expected: elements are: [paco]
Actual: [taco], whose element 0 doesn't match
[ FAILED ] NoErrorsTest.Mmap_NoMsync_MunmapBeforeClose (5.28382581s)
[ RUN ] NoErrorsTest.Mmap_NoMsync_CloseBeforeMunmap
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:46 Resource busy error while unmounting; trying again
2015/04/02 10:20:47 Resource busy error while unmounting; trying again
2015/04/02 10:20:47 Resource busy error while unmounting; trying again
2015/04/02 10:20:47 Resource busy error while unmounting; trying again
[ OK ] NoErrorsTest.Mmap_NoMsync_CloseBeforeMunmap (4.284004607s)
[ RUN ] NoErrorsTest.Mmap_WithMsync_MunmapBeforeClose
[ OK ] NoErrorsTest.Mmap_WithMsync_MunmapBeforeClose (4.065749572s)
[ RUN ] NoErrorsTest.Mmap_WithMsync_CloseBeforeMunmap
[ OK ] NoErrorsTest.Mmap_WithMsync_CloseBeforeMunmap (4.054543204s)
[----------] Finished with tests from NoErrorsTest
[----------] Running tests from FlushErrorTest
[----------] Finished with tests from FlushErrorTest
[----------] Running tests from FsyncErrorTest
[----------] Finished with tests from FsyncErrorTest
--- FAIL: TestFlushFS (17.69s)
FAIL
exit status 1
FAIL github.com/jacobsa/fuse/samples/flushfs 17.711s
diff --git a/samples/flushfs/flush_fs.go b/samples/flushfs/flush_fs.go
index e497e31..7a97640 100644
--- a/samples/flushfs/flush_fs.go
+++ b/samples/flushfs/flush_fs.go
@@ -18,6 +18,7 @@ import (
"fmt"
"os"
"sync"
+ "time"
"github.com/jacobsa/fuse"
"github.com/jacobsa/fuse/fuseops"
@@ -200,7 +201,7 @@ func (fs *flushFS) ReadFile(
return
}
-func (fs *flushFS) WriteFile(
+func (fs *flushFS) writeFile(
op *fuseops.WriteFileOp) {
var err error
defer fuseutil.RespondToOp(op, &err)
@@ -226,6 +227,14 @@ func (fs *flushFS) WriteFile(
return
}
+func (fs *flushFS) WriteFile(
+ op *fuseops.WriteFileOp) {
+ go func() {
+ time.Sleep(2 * time.Second)
+ fs.writeFile(op)
+ }()
+}
+
func (fs *flushFS) SyncFile(
op *fuseops.SyncFileOp) {
var err error
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment