Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recursive watches do not work on OpenBSD #172

Open
AudriusButkevicius opened this issue Jan 15, 2019 · 7 comments
Open

Recursive watches do not work on OpenBSD #172

AudriusButkevicius opened this issue Jan 15, 2019 · 7 comments

Comments

@AudriusButkevicius
Copy link

AudriusButkevicius commented Jan 15, 2019

On OpenBSD:

syncthing$ notify &
syncthing$ mkdir -p a/b/c/d
syncthing$ 2019/01/15 20:49:50 received notify.Create: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a"

On Windows:

/cygdrive/c/Gohome/src/github.com/syncthing/syncthing/lib/fs/test $ notify &
/cygdrive/c/Gohome/src/github.com/syncthing/syncthing/lib/fs/test $ mkdir -p a/b/c
2019/01/15 20:40:51 received notify.Create: "C:\Gohome\src\github.com\syncthing\syncthing\lib\fs\test\a"
2019/01/15 20:40:51 received notify.Create: "C:\Gohome\src\github.com\syncthing\syncthing\lib\fs\test\a\b"
2019/01/15 20:40:51 received notify.Create: "C:\Gohome\src\github.com\syncthing\syncthing\lib\fs\test\a\b\c"

Yet removals work fine (even tho out of order and not sure perhaps the walk and unlink is done by rm?)

syncthing$ rm -rf a
2019/01/15 20:58:14 received notify.Remove: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a"
2019/01/15 20:58:14 received notify.Remove: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c"
2019/01/15 20:58:14 received notify.Remove: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b"

On Windows:

/cygdrive/c/Gohome/src/github.com/syncthing/syncthing/lib/fs/test (quic) $ rm -rf a
2019/01/15 20:41:33 received notify.Remove: "C:\Gohome\src\github.com\syncthing\syncthing\lib\fs\test\a\b\c"
2019/01/15 20:41:33 received notify.Remove: "C:\Gohome\src\github.com\syncthing\syncthing\lib\fs\test\a\b"
2019/01/15 20:41:33 received notify.Remove: "C:\Gohome\src\github.com\syncthing\syncthing\lib\fs\test\a"

ktrace does seem to report recursive events however:

ktrace output

 47075 ktrace   RET   ktrace 0
 47075 ktrace   CALL  execve(0x7f7fffff6430,0x7f7fffff6310,0x7f7fffff6320)
 47075 ktrace   NAMI  "/home/syncthing/go/bin/notify"
 47075 ktrace   ARGS
        [0] = "/home/syncthing/go/bin/notify"
 47075 notify   RET   execve 0
 47075 notify   CALL  __set_tcb(0x6769d0)
 47075 notify   RET   __set_tcb 0
 47075 notify   CALL  sysctl(6.3<hw.ncpu>,0x7f7fffff4914,0x7f7fffff4918,0,0)
 47075 notify   RET   sysctl 0
 47075 notify   CALL  sysctl(6.7<hw.pagesize>,0x7f7fffff4914,0x7f7fffff4918,0,0)
 47075 notify   RET   sysctl 0
 47075 notify   CALL  sysctl(1.3<kern.osrevision>,0x7f7fffff4914,0x7f7fffff4918,0,0)
 47075 notify   RET   sysctl 0
 47075 notify   CALL  mmap(0,0x40000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,-1,0)
 47075 notify   RET   mmap 12451319808/0x2e6281000
 47075 notify   CALL  mmap(0xc000000000,0x4000000,0<PROT_NONE>,0x1002<MAP_PRIVATE|MAP_ANON>,-1,0)
 47075 notify   RET   mmap 824633720832/0xc000000000
 47075 notify   CALL  mmap(0xc000000000,0x4000000,0x3<PROT_READ|PROT_WRITE>,0x1012<MAP_PRIVATE|MAP_FIXED|MAP_ANON>,-1,0)
 47075 notify   RET   mmap 824633720832/0xc000000000
 47075 notify   CALL  mmap(0,0x2000000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,-1,0)
 47075 notify   RET   mmap 11399319552/0x2a773d000
 47075 notify   CALL  mmap(0,0x210000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,-1,0)
 47075 notify   RET   mmap 12455804928/0x2e66c8000
 47075 notify   CALL  mmap(0,0x10000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,-1,0)
 47075 notify   RET   mmap 12598685696/0x2eef0b000
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0x7f7fffff44b0)
 47075 notify   STRU  struct timespec { 290052.605140482 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  mmap(0,0x10000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,-1,0)
 47075 notify   RET   mmap 11365122048/0x2a56a0000
 47075 notify   CALL  mmap(0xc000002000,0x8000,0x3<PROT_READ|PROT_WRITE>,0x5012<MAP_PRIVATE|MAP_FIXED|MAP_ANON|MAP_STACK>,-1,0)
 47075 notify   RET   mmap 824633729024/0xc000002000
 47075 notify   CALL  open(0x6604b0,0<O_RDONLY>)
 47075 notify   NAMI  "/dev/urandom"
 47075 notify   RET   open 3
 47075 notify   CALL  read(3,0x692460,0x20)
 47075 notify   GIO   fd 3 read 32 bytes
       "v@\M-k#\^XO\M-p\^D\M-!\M->\M-)\M-y\M-2\0\M-_\^V\M-$\M-76\M^_\M-:2a\M-f\M^[\^[\0\M-5X"9\M-Y"
 47075 notify   RET   read 32/0x20
 47075 notify   CALL  close(3)
 47075 notify   RET   close 0
 47075 notify   CALL  sigprocmask(SIG_SETMASK,0<>)
 47075 notify   RET   sigprocmask 0<>
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0x7f7fffff48f8)
 47075 notify   STRU  struct timespec { 290052.605414549 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0x7f7fffff4840)
 47075 notify   STRU  struct timespec { 290052.605419956 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  mmap(0xc00002c000,0x8000,0x3<PROT_READ|PROT_WRITE>,0x5012<MAP_PRIVATE|MAP_FIXED|MAP_ANON|MAP_STACK>,-1,0)
 47075 notify   RET   mmap 824633901056/0xc00002c000
 47075 notify   CALL  sigaltstack(0,0x7f7fffff48e0)
 47075 notify   RET   sigaltstack 0
 47075 notify   CALL  sigaltstack(0x7f7fffff48a8,0)
 47075 notify   RET   sigaltstack 0
 47075 notify   CALL  sigprocmask(SIG_SETMASK,0<>)
 47075 notify   RET   sigprocmask 0<>
 47075 notify   CALL  sigaction(SIGHUP,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGHUP,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGINT,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGINT,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGQUIT,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGQUIT,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGILL,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=~0x80010108<SIGILL|SIGKILL|SIGSTOP|SIGTHR>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGILL,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGTRAP,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0x12<SA_RESTART|SA_NODEFER> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGTRAP,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGABRT,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=~0x80010120<SIGABRT|SIGKILL|SIGSTOP|SIGTHR>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGABRT,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGEMT,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0x12<SA_RESTART|SA_NODEFER> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGEMT,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGFPE,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=~0x80010180<SIGFPE|SIGKILL|SIGSTOP|SIGTHR>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGFPE,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGBUS,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=~0x80010300<SIGKILL|SIGBUS|SIGSTOP|SIGTHR>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGBUS,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGSEGV,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=~0x80010500<SIGKILL|SIGSEGV|SIGSTOP|SIGTHR>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGSEGV,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGSYS,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0x2<SA_RESTART> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGSYS,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGPIPE,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0x2<SA_RESTART> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGPIPE,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGALRM,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGALRM,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGTERM,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGTERM,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGURG,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0x12<SA_RESTART|SA_NODEFER> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGURG,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGCHLD,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGCHLD,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGIO,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0x12<SA_RESTART|SA_NODEFER> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGIO,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGXCPU,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=~0x80810100<SIGKILL|SIGSTOP|SIGXCPU|SIGTHR>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGXCPU,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGXFSZ,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=~0x81010100<SIGKILL|SIGSTOP|SIGXFSZ|SIGTHR>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGXFSZ,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGVTALRM,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0x12<SA_RESTART|SA_NODEFER> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGVTALRM,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGPROF,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0x12<SA_RESTART|SA_NODEFER> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGPROF,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGWINCH,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGWINCH,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGINFO,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0x12<SA_RESTART|SA_NODEFER> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGINFO,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGUSR1,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=~0xa0010100<SIGKILL|SIGSTOP|SIGUSR1|SIGTHR>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGUSR1,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGUSR2,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=~0xc0010100<SIGKILL|SIGSTOP|SIGUSR2|SIGTHR>, flags=0<> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGUSR2,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGTHR,0,0x7f7fffff48b8)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=0<>, flags=0x12<SA_RESTART|SA_NODEFER> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigaction(SIGTHR,0x7f7fffff4898,0)
 47075 notify   STRU  struct sigaction { sigaction=0x455c30, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  mmap(0xc000036000,0x8000,0x3<PROT_READ|PROT_WRITE>,0x5012<MAP_PRIVATE|MAP_FIXED|MAP_ANON|MAP_STACK>,-1,0)
 47075 notify   RET   mmap 824633942016/0xc000036000
 47075 notify   CALL  mmap(0xc00003e000,0x8000,0x3<PROT_READ|PROT_WRITE>,0x5012<MAP_PRIVATE|MAP_FIXED|MAP_ANON|MAP_STACK>,-1,0)
 47075 notify   RET   mmap 824633974784/0xc00003e000
 47075 notify   CALL  sigprocmask(SIG_SETMASK,~0<>)
 47075 notify   RET   sigprocmask 0<>
 47075 notify   CALL  __tfork(0x7f7fffff4888,24)
 47075 notify   STRU  struct __tfork { tcb=0xc000034088, tid=0xc000034048, stack=0xc000043ff8 }
 47075 notify   RET   __tfork 121009/0x1d8b1
 47075 notify   CALL  sigprocmask(SIG_SETMASK,0<>)
 47075 notify   RET   sigprocmask ~0x10100<SIGKILL|SIGSTOP>
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000030750)
 47075 notify   STRU  struct timespec { 290052.605850148 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000030778)
 47075 notify   STRU  struct timespec { 290052.605859768 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000030778)
 47075 notify   STRU  struct timespec { 290052.605878013 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  mmap(0xc00004a000,0x8000,0x3<PROT_READ|PROT_WRITE>,0x5012<MAP_PRIVATE|MAP_FIXED|MAP_ANON|MAP_STACK>,-1,0)
 47075 notify   RET   mmap 824634023936/0xc00004a000
 47075 notify   CALL  sigprocmask(SIG_SETMASK,~0<>)
 47075 notify   RET   sigprocmask 0<>
 47075 notify   CALL  __tfork(0x7f7fffff47a0,24)
 47075 notify   STRU  struct __tfork { tcb=0xc000034408, tid=0xc0000343c8, stack=0xc000045ff8 }
 47075 notify   RET   __tfork 246140/0x3c17c
 47075 notify   CALL  sigprocmask(SIG_SETMASK,0<>)
 47075 notify   RET   sigprocmask ~0x10100<SIGKILL|SIGSTOP>
 47075 notify   CALL  __thrsleep(0x676c78,CLOCK_MONOTONIC,0,0,0x676c78)
 47075 notify   RET   __tfork 0
 47075 notify   CALL  __set_tcb(0xc000034090)
 47075 notify   RET   __set_tcb 0
 47075 notify   CALL  sigaltstack(0,0xc000043f58)
 47075 notify   RET   sigaltstack 0
 47075 notify   CALL  sigaltstack(0xc000043f20,0)
 47075 notify   RET   sigaltstack 0
 47075 notify   CALL  sigprocmask(SIG_SETMASK,0<>)
 47075 notify   RET   sigprocmask ~0x10100<SIGKILL|SIGSTOP>
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000043f00)
 47075 notify   STRU  struct timespec { 290052.605979277 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  nanosleep(0xc000043f00,0)
 47075 notify   STRU  struct timespec { 0.000020000 }
 47075 notify   RET   __tfork 0
 47075 notify   CALL  __set_tcb(0xc000034410)
 47075 notify   RET   __set_tcb 0
 47075 notify   CALL  sigaltstack(0,0xc000045f58)
 47075 notify   RET   sigaltstack 0
 47075 notify   CALL  sigaltstack(0xc000045f20,0)
 47075 notify   RET   sigaltstack 0
 47075 notify   CALL  sigprocmask(SIG_SETMASK,0<>)
 47075 notify   RET   sigprocmask ~0x10100<SIGKILL|SIGSTOP>
 47075 notify   CALL  __thrwakeup(0x676c78,1)
 47075 notify   RET   __thrwakeup 0
 47075 notify   CALL  __thrsleep(0xc0000346b8,CLOCK_MONOTONIC,0,0,0xc0000346b8)
 47075 notify   RET   __thrsleep 0
 47075 notify   CALL  stat(0xc000016048,0xc00005e038)
 47075 notify   NAMI  "."
 47075 notify   STRU  struct stat { dev=1024, ino=1690237, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745462, atime=1547585894<"Jan 15 20:58:14 2019">.924924365, mtime=1547585894<"Jan 15 20:58:14 2019">.924924365, ctime=1547585894<"Jan 15 20:58:14 2019">.924924365, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   stat 0
 47075 notify   CALL  mmap(0xc000060000,0x8000,0x3<PROT_READ|PROT_WRITE>,0x5012<MAP_PRIVATE|MAP_FIXED|MAP_ANON|MAP_STACK>,-1,0)
 47075 notify   RET   mmap 824634114048/0xc000060000
 47075 notify   CALL  stat(0xc0000140a0,0xc00005e0f8)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test"
 47075 notify   STRU  struct stat { dev=1024, ino=1690237, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745462, atime=1547585894<"Jan 15 20:58:14 2019">.924924365, mtime=1547585894<"Jan 15 20:58:14 2019">.924924365, ctime=1547585894<"Jan 15 20:58:14 2019">.924924365, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   stat 0
 47075 notify   CALL  fcntl(0,F_GETFL)
 47075 notify   RET   fcntl 2
 47075 notify   CALL  mmap(0,0x40000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,-1,0)
 47075 notify   RET   mmap 9880813568/0x24cf14000
 47075 notify   CALL  fcntl(1,F_GETFL)
 47075 notify   RET   fcntl 2
 47075 notify   CALL  fcntl(2,F_GETFL)
 47075 notify   RET   fcntl 2
 47075 notify   CALL  kqueue()
 47075 notify   RET   kqueue 3
 47075 notify   CALL  pipe2(0xc000064d00,0<>)
 47075 notify   STRU  int [2] { 4, 5 }
 47075 notify   RET   pipe2 0
 47075 notify   CALL  kevent(3,0xc000064dc0,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=4, filter=EVFILT_READ, flags=0x1<EV_ADD>, fflags=0<>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  stat(0xc0000160e0,0xc00005e1b8)
 47075 notify   NAMI  "."
 47075 notify   STRU  struct stat { dev=1024, ino=1690237, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745462, atime=1547585894<"Jan 15 20:58:14 2019">.924924365, mtime=1547585894<"Jan 15 20:58:14 2019">.924924365, ctime=1547585894<"Jan 15 20:58:14 2019">.924924365, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   stat 0
 47075 notify   CALL  stat(0xc0000142d0,0xc00005e278)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test"
 47075 notify   STRU  struct stat { dev=1024, ino=1690237, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745462, atime=1547585894<"Jan 15 20:58:14 2019">.924924365, mtime=1547585894<"Jan 15 20:58:14 2019">.924924365, ctime=1547585894<"Jan 15 20:58:14 2019">.924924365, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   stat 0
 47075 notify   CALL  lstat(0xc0000160e2,0xc00005e338)
 47075 notify   NAMI  "/home"
 47075 notify   STRU  struct stat { dev=1024, ino=1585024, mode=drwxr-xr-x , nlink=3, uid=0<"root">, gid=0<"wheel">, rdev=6325152, atime=1547515849<"Jan 15 01:30:49 2019">.102087046, mtime=1547141256<"Jan 10 17:27:36 2019">.589822843, ctime=1547141256<"Jan 10 17:27:36 2019">.589822843, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  lstat(0xc0000160f0,0xc00005e3f8)
 47075 notify   NAMI  "/home/syncthing"
 47075 notify   STRU  struct stat { dev=1024, ino=1585025, mode=drwxr-xr-x , nlink=6, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6325153, atime=1547584466<"Jan 15 20:34:26 2019">.655680246, mtime=1547240872<"Jan 11 21:07:52 2019">.845161470, ctime=1547241039<"Jan 11 21:10:39 2019">.875537577, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  lstat(0xc0000121a0,0xc00005e4b8)
 47075 notify   NAMI  "/home/syncthing/go"
 47075 notify   STRU  struct stat { dev=1024, ino=1613265, mode=drwxr-xr-x , nlink=5, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6456575, atime=1547584467<"Jan 15 20:34:27 2019">.925660360, mtime=1547298806<"Jan 12 13:13:26 2019">.760763355, ctime=1547298806<"Jan 12 13:13:26 2019">.760763355, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  lstat(0xc0000121c0,0xc00005e578)
 47075 notify   NAMI  "/home/syncthing/go/src"
 47075 notify   STRU  struct stat { dev=1024, ino=1613266, mode=drwxr-xr-x , nlink=3, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6458047, atime=1547584323<"Jan 15 20:32:03 2019">.737757231, mtime=1547155761<"Jan 10 21:29:21 2019">.443356564, ctime=1547155761<"Jan 10 21:29:21 2019">.443356564, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  lstat(0xc0000180c0,0xc00005e638)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com"
 47075 notify   STRU  struct stat { dev=1024, ino=1613267, mode=drwxr-xr-x , nlink=4, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6456597, atime=1547584366<"Jan 15 20:32:46 2019">.157161714, mtime=1547298387<"Jan 12 13:06:27 2019">.975057631, ctime=1547298387<"Jan 12 13:06:27 2019">.975057631, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  lstat(0xc0000180f0,0xc00005e6f8)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing"
 47075 notify   STRU  struct stat { dev=1024, ino=1613268, mode=drwxr-xr-x , nlink=4, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6456598, atime=1547584362<"Jan 15 20:32:42 2019">.037207922, mtime=1547298601<"Jan 12 13:10:01 2019">.102694482, ctime=1547298601<"Jan 12 13:10:01 2019">.102694482, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  lstat(0xc00001c0c0,0xc00005e7b8)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing"
 47075 notify   STRU  struct stat { dev=1024, ino=1613269, mode=drwxr-xr-x , nlink=15, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6456599, atime=1547584339<"Jan 15 20:32:19 2019">.837502973, mtime=1547155838<"Jan 10 21:30:38 2019">.603345396, ctime=1547155838<"Jan 10 21:30:38 2019">.603345396, size=1024, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  lstat(0xc00001c100,0xc00005e878)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib"
 47075 notify   STRU  struct stat { dev=1024, ino=1637402, mode=drwxr-xr-x , nlink=33, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6552652, atime=1547515849<"Jan 15 01:30:49 2019">.402032146, mtime=1547155798<"Jan 10 21:29:58 2019">.513274396, ctime=1547155798<"Jan 10 21:29:58 2019">.513274396, size=1024, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  lstat(0xc00001c140,0xc00005e938)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs"
 47075 notify   STRU  struct stat { dev=1024, ino=1637538, mode=drwxr-xr-x , nlink=4, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6553181, atime=1547586112<"Jan 15 21:01:52 2019">.321802239, mtime=1547586131<"Jan 15 21:02:11 2019">.571505594, ctime=1547586131<"Jan 15 21:02:11 2019">.571505594, size=1536, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  lstat(0xc000014370,0xc00005e9f8)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test"
 47075 notify   STRU  struct stat { dev=1024, ino=1690237, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745462, atime=1547585894<"Jan 15 20:58:14 2019">.924924365, mtime=1547585894<"Jan 15 20:58:14 2019">.924924365, ctime=1547585894<"Jan 15 20:58:14 2019">.924924365, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  stat(0xc0000143c0,0xc00005eab8)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test"
 47075 notify   STRU  struct stat { dev=1024, ino=1690237, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745462, atime=1547585894<"Jan 15 20:58:14 2019">.924924365, mtime=1547585894<"Jan 15 20:58:14 2019">.924924365, ctime=1547585894<"Jan 15 20:58:14 2019">.924924365, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   stat 0
 47075 notify   CALL  open(0xc000014410,0x4<O_RDONLY|O_NONBLOCK>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test"
 47075 notify   RET   open 6
 47075 notify   CALL  kevent(3,0xc0000648f0,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=6, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x23<NOTE_DELETE|NOTE_WRITE|NOTE_RENAME>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  open(0xc000014460,0x10000<O_RDONLY|O_CLOEXEC>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test"
 47075 notify   RET   open 7
 47075 notify   CALL  kqueue()
 47075 notify   RET   kqueue 8
 47075 notify   CALL  fcntl(8,F_SETFD,FD_CLOEXEC)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  kevent(8,0xc0000646c8,2,0,0,0)
 47075 notify   STRU  struct kevent [2] { ident=7, filter=EVFILT_READ, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 } { ident=7, filter=EVFILT_WRITE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  fcntl(7,F_GETFL)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  fcntl(7,F_SETFL,0x4<O_NONBLOCK>)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  getdents(7,0xc000080000,0x2000)
 47075 notify   RET   getdents 64/0x40
 47075 notify   CALL  getdents(7,0xc000080000,0x2000)
 47075 notify   RET   getdents 0
 47075 notify   CALL  close(7)
 47075 notify   RET   close 0
 47075 notify   CALL  open(0xc0000144b0,0x10000<O_RDONLY|O_CLOEXEC>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test"
 47075 notify   RET   open 7
 47075 notify   CALL  kevent(8,0xc000064810,2,0,0,0)
 47075 notify   STRU  struct kevent [2] { ident=7, filter=EVFILT_READ, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 } { ident=7, filter=EVFILT_WRITE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  fcntl(7,F_GETFL)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  fcntl(7,F_SETFL,0x4<O_NONBLOCK>)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  getdents(7,0xc000082000,0x2000)
 47075 notify   RET   getdents 64/0x40
 47075 notify   CALL  getdents(7,0xc000082000,0x2000)
 47075 notify   RET   getdents 0
 47075 notify   CALL  close(7)
 47075 notify   RET   close 0
 47075 notify   CALL  kevent(3,0,0,0xc000031f40,1,0)
 47075 notify   RET   nanosleep 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000043f00)
 47075 notify   STRU  struct timespec { 290052.618550196 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  kevent(8,0,0,0xc000043710,64,0xc0000436f8)
 47075 notify   STRU  struct timespec { 0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  nanosleep(0xc000043f00,0)
 47075 notify   STRU  struct timespec { 0.000020000 }
 47075 notify   RET   nanosleep 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000043f00)
 47075 notify   STRU  struct timespec { 290052.638566455 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  kevent(8,0,0,0xc000043710,64,0xc0000436f8)
 47075 notify   STRU  struct timespec { 0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  __thrwakeup(0xc0000346b8,1)
 47075 notify   RET   __thrwakeup 0
 47075 notify   CALL  nanosleep(0xc000043f00,0)
 47075 notify   STRU  struct timespec { 0.000020000 }
 47075 notify   RET   __thrsleep 0
 47075 notify   CALL  __thrsleep(0xc0000346b8,CLOCK_MONOTONIC,0,0,0xc0000346b8)
 47075 notify   RET   nanosleep 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000043e98)
 47075 notify   STRU  struct timespec { 290052.658610251 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000043e28)
 47075 notify   STRU  struct timespec { 290052.658622179 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  __thrsleep(0xc000034338,CLOCK_MONOTONIC,0xc000043e80,0,0xc000034338)
 47075 notify   STRU  struct timespec { 290112.658622179 }
 47075 notify   STRU  struct kevent { ident=6, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x12<NOTE_WRITE|NOTE_LINK>, data=0, udata=0x0 }
 47075 notify   RET   kevent 1
 47075 notify   CALL  __thrwakeup(0xc000034338,1)
 47075 notify   RET   __thrwakeup 0
 47075 notify   CALL  stat(0xc000014500,0xc00005eb78)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test"
 47075 notify   STRU  struct stat { dev=1024, ino=1690237, mode=drwxr-xr-x , nlink=3, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745462, atime=1547586131<"Jan 15 21:02:11 2019">.571505594, mtime=1547586132<"Jan 15 21:02:12 2019">.581493896, ctime=1547586132<"Jan 15 21:02:12 2019">.581493896, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   stat 0
 47075 notify   CALL  kevent(3,0xc000031e80,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=6, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x23<NOTE_DELETE|NOTE_WRITE|NOTE_RENAME>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  open(0xc000014550,0x10000<O_RDONLY|O_CLOEXEC>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test"
 47075 notify   RET   open 7
 47075 notify   CALL  kevent(8,0xc000065a50,2,0,0,0)
 47075 notify   STRU  struct kevent [2] { ident=7, filter=EVFILT_READ, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 } { ident=7, filter=EVFILT_WRITE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  fcntl(7,F_GETFL)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  fcntl(7,F_SETFL,0x4<O_NONBLOCK>)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  getdents(7,0xc000084000,0x2000)
 47075 notify   RET   getdents 96/0x60
 47075 notify   CALL  getdents(7,0xc000084000,0x2000)
 47075 notify   RET   getdents 0
 47075 notify   CALL  lstat(0xc0000145f0,0xc00005ec38)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a"
 47075 notify   STRU  struct stat { dev=1024, ino=1690233, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745463, atime=1547586132<"Jan 15 21:02:12 2019">.581493896, mtime=1547586132<"Jan 15 21:02:12 2019">.581493896, ctime=1547586132<"Jan 15 21:02:12 2019">.581493896, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  close(7)
 47075 notify   RET   close 0
 47075 notify   CALL  open(0xc000014690,0x4<O_RDONLY|O_NONBLOCK>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a"
 47075 notify   RET   open 7
 47075 notify   CALL  kevent(3,0xc000065ad0,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=7, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x23<NOTE_DELETE|NOTE_WRITE|NOTE_RENAME>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  kevent(3,0,0,0xc000065f40,1,0)
 47075 notify   RET   __thrsleep 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000043f00)
 47075 notify   STRU  struct timespec { 290053.612086123 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  kevent(8,0,0,0xc000043710,64,0xc0000436f8)
 47075 notify   STRU  struct timespec { 0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  nanosleep(0xc000043f00,0)
 47075 notify   STRU  struct timespec { 0.000020000 }
 47075 notify   STRU  struct kevent { ident=7, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x12<NOTE_WRITE|NOTE_LINK>, data=0, udata=0x0 }
 47075 notify   RET   kevent 1
 47075 notify   CALL  stat(0xc0000146e0,0xc00005ecf8)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a"
 47075 notify   STRU  struct stat { dev=1024, ino=1690233, mode=drwxr-xr-x , nlink=3, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745463, atime=1547586132<"Jan 15 21:02:12 2019">.581493896, mtime=1547586132<"Jan 15 21:02:12 2019">.581493896, ctime=1547586132<"Jan 15 21:02:12 2019">.581493896, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   stat 0
 47075 notify   CALL  kevent(3,0xc000065e80,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=7, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x23<NOTE_DELETE|NOTE_WRITE|NOTE_RENAME>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  open(0xc000014730,0x10000<O_RDONLY|O_CLOEXEC>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a"
 47075 notify   RET   open 9
 47075 notify   CALL  kevent(8,0xc000065a50,2,0,0,0)
 47075 notify   STRU  struct kevent [2] { ident=9, filter=EVFILT_READ, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 } { ident=9, filter=EVFILT_WRITE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  fcntl(9,F_GETFL)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  fcntl(9,F_SETFL,0x4<O_NONBLOCK>)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  getdents(9,0xc000086000,0x2000)
 47075 notify   RET   getdents 96/0x60
 47075 notify   CALL  getdents(9,0xc000086000,0x2000)
 47075 notify   RET   getdents 0
 47075 notify   CALL  lstat(0xc0000147d0,0xc00005edb8)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b"
 47075 notify   STRU  struct stat { dev=1024, ino=1690238, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745464, atime=1547586132<"Jan 15 21:02:12 2019">.581493896, mtime=1547586132<"Jan 15 21:02:12 2019">.581493896, ctime=1547586132<"Jan 15 21:02:12 2019">.581493896, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  close(9)
 47075 notify   RET   close 0
 47075 notify   CALL  open(0xc000014870,0x4<O_RDONLY|O_NONBLOCK>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b"
 47075 notify   RET   open 9
 47075 notify   CALL  kevent(3,0xc000065ad0,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=9, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  kevent(3,0,0,0xc000065f40,1,0)
 47075 notify   RET   nanosleep 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000043f00)
 47075 notify   STRU  struct timespec { 290053.628530812 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  kevent(8,0,0,0xc000043710,64,0xc0000436f8)
 47075 notify   STRU  struct timespec { 0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  nanosleep(0xc000043f00,0)
 47075 notify   STRU  struct timespec { 0.000020000 }
 47075 notify   RET   nanosleep 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000043f00)
 47075 notify   STRU  struct timespec { 290053.648548756 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  kevent(8,0,0,0xc000043710,64,0xc0000436f8)
 47075 notify   STRU  struct timespec { 0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  __thrwakeup(0xc0000346b8,1)
 47075 notify   RET   __thrwakeup 0
 47075 notify   CALL  nanosleep(0xc000043f00,0)
 47075 notify   STRU  struct timespec { 0.000020000 }
 47075 notify   RET   __thrsleep 0
 47075 notify   CALL  stat(0xc0000148c0,0xc00005ee78)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a"
 47075 notify   STRU  struct stat { dev=1024, ino=1690233, mode=drwxr-xr-x , nlink=3, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745463, atime=1547586132<"Jan 15 21:02:12 2019">.581493896, mtime=1547586132<"Jan 15 21:02:12 2019">.581493896, ctime=1547586132<"Jan 15 21:02:12 2019">.581493896, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   stat 0
 47075 notify   CALL  kevent(3,0xc000066b80,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=7, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x23<NOTE_DELETE|NOTE_WRITE|NOTE_RENAME>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  open(0xc000014910,0x10000<O_RDONLY|O_CLOEXEC>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a"
 47075 notify   RET   open 10/0xa
 47075 notify   CALL  kevent(8,0xc000066958,2,0,0,0)
 47075 notify   STRU  struct kevent [2] { ident=10, filter=EVFILT_READ, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 } { ident=10, filter=EVFILT_WRITE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  fcntl(10,F_GETFL)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  fcntl(10,F_SETFL,0x4<O_NONBLOCK>)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  getdents(10,0xc000088000,0x2000)
 47075 notify   RET   getdents 96/0x60
 47075 notify   CALL  getdents(10,0xc000088000,0x2000)
 47075 notify   RET   getdents 0
 47075 notify   CALL  lstat(0xc0000149b0,0xc00005ef38)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b"
 47075 notify   STRU  struct stat { dev=1024, ino=1690238, mode=drwxr-xr-x , nlink=3, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745464, atime=1547586132<"Jan 15 21:02:12 2019">.581493896, mtime=1547586132<"Jan 15 21:02:12 2019">.621493979, ctime=1547586132<"Jan 15 21:02:12 2019">.621493979, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  close(10)
 47075 notify   RET   close 0
 47075 notify   CALL  kevent(3,0xc000066a60,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=9, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x23<NOTE_DELETE|NOTE_WRITE|NOTE_RENAME>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  open(0xc000014a50,0x10000<O_RDONLY|O_CLOEXEC>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a"
 47075 notify   RET   open 10/0xa
 47075 notify   CALL  kevent(8,0xc000066aa0,2,0,0,0)
 47075 notify   STRU  struct kevent [2] { ident=10, filter=EVFILT_READ, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 } { ident=10, filter=EVFILT_WRITE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  fcntl(10,F_GETFL)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  fcntl(10,F_SETFL,0x4<O_NONBLOCK>)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  getdents(10,0xc00008a000,0x2000)
 47075 notify   RET   getdents 96/0x60
 47075 notify   CALL  getdents(10,0xc00008a000,0x2000)
 47075 notify   RET   getdents 0
 47075 notify   CALL  lstat(0xc000014af0,0xc00005eff8)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b"
 47075 notify   STRU  struct stat { dev=1024, ino=1690238, mode=drwxr-xr-x , nlink=3, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745464, atime=1547586132<"Jan 15 21:02:12 2019">.581493896, mtime=1547586132<"Jan 15 21:02:12 2019">.621493979, ctime=1547586132<"Jan 15 21:02:12 2019">.621493979, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  close(10)
 47075 notify   RET   close 0
 47075 notify   CALL  stat(0xc000014b90,0xc00005f0b8)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b"
 47075 notify   STRU  struct stat { dev=1024, ino=1690238, mode=drwxr-xr-x , nlink=3, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745464, atime=1547586132<"Jan 15 21:02:12 2019">.581493896, mtime=1547586132<"Jan 15 21:02:12 2019">.621493979, ctime=1547586132<"Jan 15 21:02:12 2019">.621493979, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   stat 0
 47075 notify   CALL  kevent(3,0xc000066b80,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=9, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x23<NOTE_DELETE|NOTE_WRITE|NOTE_RENAME>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  open(0xc000014be0,0x10000<O_RDONLY|O_CLOEXEC>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b"
 47075 notify   RET   open 10/0xa
 47075 notify   CALL  kevent(8,0xc000066958,2,0,0,0)
 47075 notify   STRU  struct kevent [2] { ident=10, filter=EVFILT_READ, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 } { ident=10, filter=EVFILT_WRITE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  fcntl(10,F_GETFL)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  fcntl(10,F_SETFL,0x4<O_NONBLOCK>)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  getdents(10,0xc00008c000,0x2000)
 47075 notify   RET   getdents 96/0x60
 47075 notify   CALL  getdents(10,0xc00008c000,0x2000)
 47075 notify   RET   getdents 0
 47075 notify   CALL  lstat(0xc000014c80,0xc00005f178)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c"
 47075 notify   STRU  struct stat { dev=1024, ino=1690239, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745465, atime=1547586132<"Jan 15 21:02:12 2019">.581493896, mtime=1547586132<"Jan 15 21:02:12 2019">.581493896, ctime=1547586132<"Jan 15 21:02:12 2019">.581493896, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  close(10)
 47075 notify   RET   close 0
 47075 notify   CALL  open(0xc000014d20,0x4<O_RDONLY|O_NONBLOCK>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c"
 47075 notify   RET   open 10/0xa
 47075 notify   CALL  kevent(3,0xc000066a60,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=10, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x23<NOTE_DELETE|NOTE_WRITE|NOTE_RENAME>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  open(0xc000014d70,0x10000<O_RDONLY|O_CLOEXEC>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b"
 47075 notify   RET   open 11/0xb
 47075 notify   CALL  kevent(8,0xc000066aa0,2,0,0,0)
 47075 notify   STRU  struct kevent [2] { ident=11, filter=EVFILT_READ, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 } { ident=11, filter=EVFILT_WRITE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  fcntl(11,F_GETFL)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  fcntl(11,F_SETFL,0x4<O_NONBLOCK>)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  getdents(11,0xc00008e000,0x2000)
 47075 notify   RET   getdents 96/0x60
 47075 notify   CALL  getdents(11,0xc00008e000,0x2000)
 47075 notify   RET   getdents 0
 47075 notify   CALL  lstat(0xc000014e10,0xc00005f238)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c"
 47075 notify   STRU  struct stat { dev=1024, ino=1690239, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745465, atime=1547586132<"Jan 15 21:02:12 2019">.581493896, mtime=1547586132<"Jan 15 21:02:12 2019">.581493896, ctime=1547586132<"Jan 15 21:02:12 2019">.581493896, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   lstat 0
 47075 notify   CALL  close(11)
 47075 notify   RET   close 0
 47075 notify   CALL  stat(0xc000014eb0,0xc00005f2f8)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c"
 47075 notify   STRU  struct stat { dev=1024, ino=1690239, mode=drwxr-xr-x , nlink=2, uid=1000<"syncthing">, gid=1000<"syncthing">, rdev=6745465, atime=1547586132<"Jan 15 21:02:12 2019">.581493896, mtime=1547586132<"Jan 15 21:02:12 2019">.581493896, ctime=1547586132<"Jan 15 21:02:12 2019">.581493896, size=512, blocks=4, blksize=16384, flags=0x0, gen=0x0 }
 47075 notify   RET   stat 0
 47075 notify   CALL  kevent(3,0xc000066b80,1,0,0,0)
 47075 notify   STRU  struct kevent { ident=10, filter=EVFILT_VNODE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0x23<NOTE_DELETE|NOTE_WRITE|NOTE_RENAME>, data=0, udata=0x0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  open(0xc000014f00,0x10000<O_RDONLY|O_CLOEXEC>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c"
 47075 notify   RET   open 11/0xb
 47075 notify   CALL  kevent(8,0xc000066958,2,0,0,0)
 47075 notify   STRU  struct kevent [2] { ident=11, filter=EVFILT_READ, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 } { ident=11, filter=EVFILT_WRITE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  fcntl(11,F_GETFL)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  fcntl(11,F_SETFL,0x4<O_NONBLOCK>)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  getdents(11,0xc000094000,0x2000)
 47075 notify   RET   getdents 64/0x40
 47075 notify   CALL  getdents(11,0xc000094000,0x2000)
 47075 notify   RET   getdents 0
 47075 notify   CALL  close(11)
 47075 notify   RET   close 0
 47075 notify   CALL  open(0xc000014f50,0x10000<O_RDONLY|O_CLOEXEC>)
 47075 notify   NAMI  "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c"
 47075 notify   RET   open 11/0xb
 47075 notify   CALL  kevent(8,0xc000066aa0,2,0,0,0)
 47075 notify   STRU  struct kevent [2] { ident=11, filter=EVFILT_READ, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 } { ident=11, filter=EVFILT_WRITE, flags=0x21<EV_ADD|EV_CLEAR>, fflags=0<>, data=0, udata=0x24cf18ed0 }
 47075 notify   RET   kevent 0
 47075 notify   CALL  fcntl(11,F_GETFL)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  fcntl(11,F_SETFL,0x4<O_NONBLOCK>)
 47075 notify   RET   fcntl 0
 47075 notify   CALL  getdents(11,0xc000096000,0x2000)
 47075 notify   RET   getdents 64/0x40
 47075 notify   CALL  getdents(11,0xc000096000,0x2000)
 47075 notify   RET   getdents 0
 47075 notify   CALL  close(11)
 47075 notify   RET   close 0
 47075 notify   CALL  clock_gettime(CLOCK_REALTIME,0xc000064cc8)
 47075 notify   STRU  struct timespec { 1547586132<"Jan 15 21:02:12 2019">.622723274 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000064cd0)
 47075 notify   STRU  struct timespec { 290053.649756165 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  open(0xc000016130,0<O_RDONLY>)
 47075 notify   NAMI  "/etc//localtime"
 47075 notify   RET   open 11/0xb
 47075 notify   CALL  read(11,0xc00003e9a8,0x1000)
 47075 notify   GIO   fd 11 read 3661 bytes
       "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\0\0\0\0\M-r\0\0\0\a\0\0\0\r\M^[&\M--\240\M^[\M-V\^E \M^\\M-O0\240\M^]\M-$\M-C\240\M^^\M^\\M^]\240\M^_\M^W\^Z\240\240\M^E\M-: \M-!v\M-|\240\M-"e\M^\ \M-#{\M-H\240\M-$N\M-8\240\M-%?\M-{ \M-&%` \M-''\M-F \M-(*, \M-(\M-k\M-x\240\M-*\0\M-S\
        \240\M-*\M-U\^U \M-+\M-i\M-p \M-,\M-Gl \M--\M-I\M-R \M-.\M-'N \M-/\240y\240\M-0\M^G0 \M-1\M^R\M-P\240\M-2pL\240\M-3r\M-2\240\M-4P.\240\M-5IZ \M-60\^P\240\M-72v\240\M-8\^O\M-r\240\M-9\^RX\240\M-9\M-o\M-T\240\M-:\M-i\0 \M-;\M-X\M-q \M-<\M-[W \M-=\M-8\M-S \M->\M-1\M-~\240\M-?\M^X\M-5 \M-@\M^[\
        \^[ \M-Ax\M^W \M-Bz\M-} \M-CXy \M-DQ\M-$\240\M-E8[ \M-F:\M-A \M-GX\M-V\240\M-G\M-Z      \240\M-J\^V&\M^P\M-J\M^WY\M^P\M-K\M-Q\^^\M^P\M-Lw;\M^P\M-M\M-1\0\M^P\M-N`X\^P\M-O\M^P\M-b\M^P\M-Pn^\M^P\M-Qr\^V\^P\M-Q\M-{2\^P\M-Ri\M-~ \M-Sc)\240\M-TI\M-` \M-U\^^!\240\M-UB\M-}\M^P\M-U\M-_\M-`\^P\M-VN\
        \M-, \M-V\M-~\^C\240\M-X.\M^N \M-X\M-y\M^U \M-Z\^Np \M-Z\M-k\M-l \M-[\M-e\^W\240\M-\\M-K\M-N \M-]\M-D\M-y\240\M-^\M-4\M-j\240\M-_\M-.\^V \M-`\M^T\M-L\240\M-arH\240\M-bkt \M-cR*\240\M-dT\M^P\240\M-e2\f\240\M-f=\M-- \M-g\^[) \M-h\^TT\240\M-h\M-{\v \M-i\M-}q \M-j\M-Z\M-m \M-k\M-]S \M-l\M-:\M-O \
        \M-m\M-3\M-z\240\M-n\M^Z\M-1 \M-o\M^Ag\240\M-p\M^_} \M-qaI\240\M-r\^?_ \M-sJf \M-t_A \M-u!\r\240\M-v?# \M-w\0\M-o\240\M-x\^_\^E \M-x\M-`\M-Q\240\M-y\M-~\M-g \M-z\M-@\M-3\240\M-{\M-h\^C\240\M-|{\M-+\240\M-}\M-G\M-;p\^Cp\M-F \^D)X \^EP\M-( \^F       : \a0\M^J \a\M-i\^\     \^Pl    \M-H\M-~
        \M-pN \v\M-2\^Z\240\f\M-P0 \r\M^Q\M-|\240\^N\M-0\^R \^Oq\M-^\240\^P\M^Y.\240\^QQ\M-@\240\^Ry\^P\240\^S1\M-"\240\^TX\M-r\240\^U#\M-k\M^P\^V8\M-F\M^P\^W\^C\M-M\M^P\^X\^X\M-(\M^P\^X\M-c\M-/\M^P\^Y\M-x\M^J\M^P\^Z\M-C\M^Q\M^P\^[\M-a\M-'\^P\^\\M-,\M-.\^P\^]\M-A\M^I\^P\^^\M^L\M^P\^P\^_\M-!k\^P lr\
        \^P!\M^AM\^P"LT\^P#a/\^P$,6\^P%JK\M^P&\f\^X\^P'*-\M^P'\M-u4\M^P)
        \^O\M^P)\M-U\^V\M^P*\M-i\M-q\M^P+\M-4\M-x\M^P,\M-I\M-S\M^P-\M^T\M-Z\M^P.\M-)\M-5\M^P/t\M-<\M^P0\M^I\M^W\M^P0\M-g$\0001]\M-Y\^P2r\M-4\^P3=\M-;\^P4R\M^V\^P5\^]\M^]\^P62x\^P6\M-}\^?\^P8\^[\M^T\M^P8\M-]a\^P9\M-{v\M^P:\M-=C\^P;\M-[X\M^P<\M-&_\M^P=\M-;:\M^P>\M^FA\M^P?\M^[\^\\M^P@f#\M^PA\M^D9\^PBF\
        \^E\M^PCd\^[\^PD%\M-g\M^PEC\M-}\^PF\^E\M-I\M^PG#\M-_\^PG\M-n\M-f\^PI\^C\M-A\^PI\M-N\M-H\^PJ\M-c\M-#\^PK\M-.\M-*\^PL\M-L\M-?\M^PM\M^N\M^L\^PN\M-,\M-!\M^POnn\^PP\M^L\M^C\M^PQW\M^J\M^PRle\M^PS7l\M^PTLG\M^PU\^WN\M^PV,)\M^PV\M-w0\M^PX\^UF\^PX\M-W\^R\M^PY\M-u(\^PZ\M-6\M-t\M^P[\M-U
        \^P\\\240\^Q\^P]\M-4\M-l\^P^\^?\M-s\^P_\M^T\M-N\^P`_\M-U\^Pa}\M-j\M^Pb?\M-7\^Pc]\M-L\M^Pd\^_\M^Y\^Pe=\M-.\M^Pf\b\M-5\M^Pg\^]\M^P\M^Pg\M-h\M^W\M^Ph\M-}r\M^Pi\M-Hy\M^Pj\M-]T\M^Pk\M-([\M^Pl\M-Fq\^Pm\M^H=\M^Pn\M-&S\^Poh\^_\M^Pp\M^F5\^PqQ<\^Prf\^W\^Ps1\^^\^PtE\M-y\^Pu\^Q\0\^Pv/\^U\M^Pv\M-p\M-b\^P\
        x\^N\M-w\M^Px\M-P\M-D\^Py\M-n\M-Y\M^Pz\M-0\M-&\^P{\M-N\M-;\M^P|\M^Y\M-B\M^P}\M-.\M^]\M^P~y\M-$\M^P\^?\M^N\^?\M^P\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^B\0\^B\0\^B\0\^B\0\^B\0\^A\0\^A\0\^B\0\^A\0\^A\0\^A\0\^A\
        \0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^C\^E\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\0\^A\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^F\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\
        \^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\^D\^E\0\0\^N\^P\^A\0\0\0\0\0\0\^D\0\0\^\ \^A\b\0\0\^N\^P\0\0\0\0\^N\^P\^A\0\0\0\0\0\0\^D\0\0\0\0\0\^DBST\
        \0GMT\0BDST\0\^A\^A\^A\0\^A\^A\0\0\0\0\0\^A\^A\0TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\0\0\0\0\M-s\0\0\0\b\0\0\0\^Q\M^?\M^?\M^?\M^?\^Z]      \M-K\M^?\M^?\M^?\M^?\M^[&\M--\240\M^?\M^?\M^?\M^?\M^[\M-V\^E \M^?\M^?\M^?\M^?\M^\\M-O0\240\M^?\M^?\M^?\M^?\M^]\M-$\M-C\240\M^?\M^?\
        \M^?\M^?\M^^\M^\\M^]\240\M^?\M^?\M^?\M^?\M^_\M^W\^Z\240\M^?\M^?\M^?\M^?\240\M^E\M-: \M^?\M^?\M^?\M^?\M-!v\M-|\240\M^?\M^?\M^?\M^?\M-"e\M^\ \M^?\M^?\M^?\M^?\M-#{\M-H\240\M^?\M^?\M^?\M^?\M-$N\M-8\240\M^?\M^?\M^?\M^?\M-%?\M-{ \M^?\M^?\M^?\M^?\M-&%` \M^?\M^?\M^?\M^?\M-''\M-F \M^?\M^?\M^?\M^?\M-(\
        *, \M^?\M^?\M^?\M^?\M-(\M-k\M-x\240\M^?\M^?\M^?\M^?\M-*\0\M-S\240\M^?\M^?\M^?\M^?\M-*\M-U\^U \M^?\M^?\M^?\M^?\M-+\M-i\M-p \M^?\M^?\M^?\M^?\M-,\M-Gl \M^?\M^?\M^?\M^?\M--\M-I\M-R \M^?\M^?\M^?\M^?\M-.\M-'N \M^?\M^?\M^?\M^?\M-/\240y\240\M^?\M^?\M^?\M^?\M-0\M^G0 \M^?\M^?\M^?\M^?\M-1\M^R\M-P\240\
        \M^?\M^?\M^?\M^?\M-2pL\240\M^?\M^?\M^?\M^?\M-3r\M-2\240\M^?\M^?\M^?\M^?\M-4P.\240\M^?\M^?\M^?\M^?\M-5IZ \M^?\M^?\M^?\M^?\M-60\^P\240\M^?\M^?\M^?\M^?\M-72v\240\M^?\M^?\M^?\M^?\M-8\^O\M-r\240\M^?\M^?\M^?\M^?\M-9\^RX\240\M^?\M^?\M^?\M^?\M-9\M-o\M-T\240\M^?\M^?\M^?\M^?\M-:\M-i\0 \M^?\M^?\M^?\M^?\
        \M-;\M-X\M-q \M^?\M^?\M^?\M^?\M-<\M-[W \M^?\M^?\M^?\M^?\M-=\M-8\M-S \M^?\M^?\M^?\M^?\M->\M-1\M-~\240\M^?\M^?\M^?\M^?\M-?\M^X\M-5 \M^?\M^?\M^?\M^?\M-@\M^[\^[ \M^?\M^?\M^?\M^?\M-Ax\M^W \M^?\M^?\M^?\M^?\M-Bz\M-} \M^?\M^?\M^?\M^?\M-CXy \M^?\M^?\M^?\M^?\M-DQ\M-$\240\M^?\M^?\M^?\M^?\M-E8[ \M^?\M^?\
        \M^?\M^?\M-F:\M-A \M^?\M^?\M^?\M^?\M-GX\M-V\240\M^?\M^?\M^?\M^?\M-G\M-Z \240\M^?\M^?\M^?\M^?\M-J\^V&\M^P\M^?\M^?\M^?\M^?\M-J\M^WY\M^P\M^?\M^?\M^?\M^?\M-K\M-Q\^^\M^P\M^?\M^?\M^?\M^?\M-Lw;\M^P\M^?\M^?\M^?\M^?\M-M\M-1\0\M^P\M^?\M^?\M^?\M^?\M-N`X\^P\M^?\M^?\M^?\M^?\M-O\M^P\M-b\M^P\M^?\M^?\M^?\
        \M^?\M-Pn^\M^P\M^?\M^?\M^?\M^?\M-Qr\^V\^P\M^?\M^?\M^?\M^?\M-Q\M-{2\^P\M^?\M^?\M^?\M^?\M-Ri\M-~ \M^?\M^?\M^?\M^?\M-Sc)\240\M^?\M^?\M^?\M^?\M-TI\M-` \M^?\M^?\M^?\M^?\M-U\^^!\240\M^?\M^?\M^?\M^?\M-UB\M-}\M^P\M^?\M^?\M^?\M^?\M-U\M-_\M-`\^P\M^?\M^?\M^?\M^?\M-VN\M-, \M^?\M^?\M^?\M^?\M-V\M-~\^C\240\
        \M^?\M^?\M^?\M^?\M-X.\M^N \M^?\M^?\M^?\M^?\M-X\M-y\M^U \M^?\M^?\M^?\M^?\M-Z\^Np \M^?\M^?\M^?\M^?\M-Z\M-k\M-l \M^?\M^?\M^?\M^?\M-[\M-e\^W\240\M^?\M^?\M^?\M^?\M-\\M-K\M-N \M^?\M^?\M^?\M^?\M-]\M-D\M-y\240\M^?\M^?\M^?\M^?\M-^\M-4\M-j\240\M^?\M^?\M^?\M^?\M-_\M-.\^V \M^?\M^?\M^?\M^?\M-`\M^T\M-L\
        \240\M^?\M^?\M^?\M^?\M-arH\240\M^?\M^?\M^?\M^?\M-bkt \M^?\M^?\M^?\M^?\M-cR*\240\M^?\M^?\M^?\M^?\M-dT\M^P\240\M^?\M^?\M^?\M^?\M-e2\f\240\M^?\M^?\M^?\M^?\M-f=\M-- \M^?\M^?\M^?\M^?\M-g\^[) \M^?\M^?\M^?\M^?\M-h\^TT\240\M^?\M^?\M^?\M^?\M-h\M-{\v \M^?\M^?\M^?\M^?\M-i\M-}q \M^?\M^?\M^?\M^?\M-j\M-Z\
        \M-m \M^?\M^?\M^?\M^?\M-k\M-]S \M^?\M^?\M^?\M^?\M-l\M-:\M-O \M^?\M^?\M^?\M^?\M-m\M-3\M-z\240\M^?\M^?\M^?\M^?\M-n\M^Z\M-1 \M^?\M^?\M^?\M^?\M-o\M^Ag\240\M^?\M^?\M^?\M^?\M-p\M^_} \M^?\M^?\M^?\M^?\M-qaI\240\M^?\M^?\M^?\M^?\M-r\^?_ \M^?\M^?\M^?\M^?\M-sJf \M^?\M^?\M^?\M^?\M-t_A \M^?\M^?\M^?\M^?\
        \M-u!\r\240\M^?\M^?\M^?\M^?\M-v?# \M^?\M^?\M^?\M^?\M-w\0\M-o\240\M^?\M^?\M^?\M^?\M-x\^_\^E \M^?\M^?\M^?\M^?\M-x\M-`\M-Q\240\M^?\M^?\M^?\M^?\M-y\M-~\M-g \M^?\M^?\M^?\M^?\M-z\M-@\M-3\240\M^?\M^?\M^?\M^?\M-{\M-h\^C\240\M^?\M^?\M^?\M^?\M-|{\M-+\240\M^?\M^?\M^?\M^?\M-}\M-G\M-;p\0\0\0\0\^Cp\M-F \0\
        \0\0\0\^D)X \0\0\0\0\^EP\M-( \0\0\0\0\^F        : \0\0\0\0\a0\M^J \0\0\0\0\a\M-i\^\ \0\0\0\0    \^Pl \0\0\0\0   \M-H\M-~ \0\0\0\0
        \M-pN \0\0\0\0\v\M-2\^Z\240\0\0\0\0\f\M-P0 \0\0\0\0\r\M^Q\M-|\240\0\0\0\0\^N\M-0\^R \0\0\0\0\^Oq\M-^\240\0\0\0\0\^P\M^Y.\240\0\0\0\0\^QQ\M-@\240\0\0\0\0\^Ry\^P\240\0\0\0\0\^S1\M-"\240\0\0\0\0\^TX\M-r\240\0\0\0\0\^U#\M-k\M^P\0\0\0\0\^V8\M-F\M^P\0\0\0\0\^W\^C\M-M\M^P\0\0\0\0\^X\^X\M-(\M^P\0\0\
        \0\0\^X\M-c\M-/\M^P\0\0\0\0\^Y\M-x\M^J\M^P\0\0\0\0\^Z\M-C\M^Q\M^P\0\0\0\0\^[\M-a\M-'\^P\0\0\0\0\^\\M-,\M-.\^P\0\0\0\0\^]\M-A\M^I\^P\0\0\0\0\^^\M^L\M^P\^P\0\0\0\0\^_\M-!k\^P\0\0\0\0 lr\^P\0\0\0\0!\M^AM\^P\0\0\0\0"LT\^P\0\0\0\0#a/\^P\0\0\0\0$,6\^P\0\0\0\0%JK\M^P\0\0\0\0&\f\^X\^P\0\0\0\0'*-\M^P\
        \0\0\0\0'\M-u4\M^P\0\0\0\0)
        \^O\M^P\0\0\0\0)\M-U\^V\M^P\0\0\0\0*\M-i\M-q\M^P\0\0\0\0+\M-4\M-x\M^P\0\0\0\0,\M-I\M-S\M^P\0\0\0\0-\M^T\M-Z\M^P\0\0\0\0.\M-)\M-5\M^P\0\0\0\0/t\M-<\M^P\0\0\0\0000\M^I\M^W\M^P\0\0\0\0000\M-g$\0\0\0\0\0001]\M-Y\^P\0\0\0\0002r\M-4\^P\0\0\0\0003=\M-;\^P\0\0\0\0004R\M^V\^P\0\0\0\0005\^]\M^]\^P\0\0\
        \0\00062x\^P\0\0\0\0006\M-}\^?\^P\0\0\0\08\^[\M^T\M^P\0\0\0\08\M-]a\^P\0\0\0\09\M-{v\M^P\0\0\0\0:\M-=C\^P\0\0\0\0;\M-[X\M^P\0\0\0\0<\M-&_\M^P\0\0\0\0=\M-;:\M^P\0\0\0\0>\M^FA\M^P\0\0\0\0?\M^[\^\\M^P\0\0\0\0@f#\M^P\0\0\0\0A\M^D9\^P\0\0\0\0BF\^E\M^P\0\0\0\0Cd\^[\^P\0\0\0\0D%\M-g\M^P\0\0\0\0EC\
        \M-}\^P\0\0\0\0F\^E\M-I\M^P\0\0\0\0G#\M-_\^P\0\0\0\0G\M-n\M-f\^P\0\0\0\0I\^C\M-A\^P\0\0\0\0I\M-N\M-H\^P\0\0\0\0J\M-c\M-#\^P\0\0\0\0K\M-.\M-*\^P\0\0\0\0L\M-L\M-?\M^P\0\0\0\0M\M^N\M^L\^P\0\0\0\0N\M-,\M-!\M^P\0\0\0\0Onn\^P\0\0\0\0P\M^L\M^C\M^P\0\0\0\0QW\M^J\M^P\0\0\0\0Rle\M^P\0\0\0\0S7l\M^P\0\0\
        \0\0TLG\M^P\0\0\0\0U\^WN\M^P\0\0\0\0V,)\M^P\0\0\0\0V\M-w0\M^P\0\0\0\0X\^UF\^P\0\0\0\0X\M-W\^R\M^P\0\0\0\0Y\M-u(\^P\0\0\0\0Z\M-6\M-t\M^P\0\0\0\0[\M-U
        \^P\0\0\0\0\\\240\^Q\^P\0\0\0\0]\M-4\M-l\^P\0\0\0\0^\^?\M-s\^P\0\0\0\0_\M^T\M-N\^P\0\0\0\0`_\M-U\^P\0\0\0\0a}\M-j\M^P\0\0\0\0b?\M-7\^P\0\0\0\0c]\M-L\M^P\0\0\0\0d\^_\M^Y\^P\0\0\0\0e=\M-.\M^P\0\0\0\0f\b\M-5\M^P\0\0\0\0g\^]\M^P\M^P\0\0\0\0g\M-h\M^W\M^P\0\0\0\0h\M-}r\M^P\0\0\0\0i\M-Hy\M^P\0\0\0\
        \0j\M-]T\M^P\0\0\0\0k\M-([\M^P\0\0\0\0l\M-Fq\^P\0\0\0\0m\M^H=\M^P\0\0\0\0n\M-&S\^P\0\0\0\0oh\^_\M^P\0\0\0\0p\M^F5\^P\0\0\0\0qQ<\^P\0\0\0\0rf\^W\^P\0\0\0\0s1\^^\^P\0\0\0\0tE\M-y\^P\0\0\0\0u\^Q\0\^P\0\0\0\0v/\^U\M^P\0\0\0\0v\M-p\M-b\^P\0\0\0\0x\^N\M-w\M^P\0\0\0\0x\M-P\M-D\^P\0\0\0\0y\M-n\M-Y\
        \M^P\0\0\0\0z\M-0\M-&\^P\0\0\0\0{\M-N\M-;\M^P\0\0\0\0|\M^Y\M-B\M^P\0\0\0\0}\M-.\M^]\M^P\0\0\0\0~y\M-$\M^P\0\0\0\0\^?\M^N\^?\M^P\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^C\^A\^C\^A\^C\
        \^A\^C\^A\^C\^A\^B\^A\^B\^A\^C\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^D\^F\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^A\^B\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\
        \^E\^F\^E\^F\^E\^F\a\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\^E\^F\M^?\M^?\M^?\M-5\0\0\
        \0\0\^N\^P\^A\^D\0\0\0\0\0\b\0\0\^\ \^A\f\0\0\^N\^P\0\^D\0\0\^N\^P\^A\^D\0\0\0\0\0\b\0\0\0\0\0\bLMT\0BST\0GMT\0BDST\0\0\^A\^A\^A\0\^A\^A\0\0\0\0\0\0\^A\^A\0
        GMT0BST,M3.5.0/1,M10.5.0
       "
 47075 notify   RET   read 3661/0xe4d
 47075 notify   CALL  read(11,0xc00003e9a8,0x1000)
 47075 notify   RET   read 0
 47075 notify   CALL  close(11)
 47075 notify   RET   close 0
 47075 notify   CALL  clock_gettime(CLOCK_REALTIME,0xc00003f8a8)
 47075 notify   STRU  struct timespec { 1547586132<"Jan 15 21:02:12 2019">.622968280 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc00003f8b0)
 47075 notify   STRU  struct timespec { 290053.650003429 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  write(2,0xc00009c000,0x72)
 47075 notify   GIO   fd 2 wrote 114 bytes
       "2019/01/15 21:02:12 received notify.Create: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a"
       "
 47075 notify   RET   write 114/0x72
 47075 notify   CALL  __thrsleep(0xc0000346b8,CLOCK_MONOTONIC,0,0,0xc0000346b8)
 47075 notify   RET   nanosleep 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000043e98)
 47075 notify   STRU  struct timespec { 290053.668584397 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  clock_gettime(CLOCK_MONOTONIC,0xc000043e28)
 47075 notify   STRU  struct timespec { 290053.668592708 }
 47075 notify   RET   clock_gettime 0
 47075 notify   CALL  __thrsleep(0xc000034338,CLOCK_MONOTONIC,0xc000043e80,0,0xc000034338)
 47075 notify   STRU  struct timespec { 290113.668592708 }
 47075 notify   PSIG  SIGTERM caught handler=0x455c30 mask=0<>
 47075 notify   RET   __thrsleep -1 errno 88 Operation canceled
 47075 notify   CALL  sigprocmask(SIG_UNBLOCK,0x4000<SIGTERM>)
 47075 notify   RET   sigprocmask ~0x10100<SIGKILL|SIGSTOP>
 47075 notify   CALL  getthrid()
 47075 notify   RET   getthrid 246140/0x3c17c
 47075 notify   CALL  thrkill(246140,SIGTERM,0)
 47075 notify   PSIG  SIGTERM caught handler=0x455c30 mask=~0x14100<SIGKILL|SIGTERM|SIGSTOP>
 47075 notify   RET   thrkill 0
 47075 notify   CALL  sigaction(SIGTERM,0xc000051528,0)
 47075 notify   STRU  struct sigaction { handler=SIG_DFL, mask=~0<>, flags=0x43<SA_ONSTACK|SA_RESTART|SA_SIGINFO> }
 47075 notify   RET   sigaction 0
 47075 notify   CALL  sigprocmask(SIG_UNBLOCK,0x4000<SIGTERM>)
 47075 notify   RET   sigprocmask ~0x10100<SIGKILL|SIGSTOP>
 47075 notify   CALL  getthrid()
 47075 notify   RET   getthrid 246140/0x3c17c
 47075 notify   CALL  thrkill(246140,SIGTERM,0)
 47075 notify   PSIG  SIGTERM SIG_DFL

OpenBSD 6.4

@AudriusButkevicius
Copy link
Author

AudriusButkevicius commented Jan 15, 2019

Actually, recursive watches do work, but it seems it takes some time for the "recursiveness" part to kick in?

syncthing$ mkdir -p a/b/c
syncthing$ /home/syncthing/go/bin/notify &
[1] 45674
syncthing$
syncthing$
syncthing$ mkdir -p a/b/c/d/e/f
2019/01/15 21:22:41 received notify.Create: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c/d"
syncthing$ mkdir -p a/b/c/d/e/x
2019/01/15 21:22:45 received notify.Create: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c/d/e/x"
syncthing$ mkdir -p a/b/c/d/e/f/a/b/c/d
2019/01/15 21:22:52 received notify.Create: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c/d/e/f/a"
syncthing$ mkdir -p a/b/c/d/e/f/a/b/c/d/e/f/b
2019/01/15 21:22:56 received notify.Create: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/c/d/e/f/a/b/c/d/e"
syncthing$ 

@AudriusButkevicius
Copy link
Author

syncthing$ mkdir a/b/x; mkdir a/b/x/x; mkdir a/b/x/x/x
2019/01/15 21:26:07 received notify.Create: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/x"

syncthing$ mkdir a/b/y; sleep 1; mkdir a/b/y/y; sleep 1; mkdir a/b/y/y/y
2019/01/15 21:26:26 received notify.Create: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/y"
2019/01/15 21:26:27 received notify.Create: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/y/y"
2019/01/15 21:26:28 received notify.Create: "/home/syncthing/go/src/github.com/syncthing/syncthing/lib/fs/test/a/b/y/y/y"

@rjeczalik
Copy link
Owner

@AudriusButkevicius Thanks for the detailed report! I think this happens because notify sets a watcher after it receives a create event, and only then it starts to listen for create events in that directory. Because b, d, c is created just after a, the events may arrive before the watcher is set and thus we miss them. Afaik there's no way to fix the race, other than doing rescans.

Is this a case, @pblaszczyk?

@AudriusButkevicius
Copy link
Author

Random theory.

Event delivery from the kernel blocks the kernel from delivering further events.

That is, the thread that receives the event from the kernel should register a watch for subfolder upon receiving the event and before returning (control to the kernel).

Is subfolder registration happening in a separate go routine outside of the kqueue loop which would support the theroy?

@rjeczalik
Copy link
Owner

@AudriusButkevicius Everything happens async, outside kqueue loop with https://github.com/rjeczalik/notify/blob/master/watcher_kqueue.go#L133. At least I'm not aware of anything blocking as you described.

@AudriusButkevicius
Copy link
Author

Yeah after having read the kqueue manual, it seems impossible to subscribe recursively, however, I think the following might be a sensible approach? If I am watching directory X, and subdirectory Y gets created, I should setup a watch for Y, walk Y and dispatch a created event for everything inside Y (potentially deduplicating as events from kqueue arrive later (or let it have duplicates, who cares))

@rjeczalik
Copy link
Owner

@AudriusButkevicius This would be viable solution, we already maintain an in-memory tree of watches (directories), so maybe it would be even possible to not send duplicates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants