Comment 13 for bug 1567096

Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla

------- Comment From <email address hidden> 2016-05-02 13:45 EDT-------
Here is a bit more detail on my earlier comment:

You need fsnotify commit 836bfd to see the problem with go1.6.1. If the fsnotify package is built with this commit using go1.6.1 and the test built with go1.6.1, then there will be several failures and a hang TestInotifyInnerMapLength:

./fsnotify.test -test.v
=== RUN TestPollerWithBadFd
--- PASS: TestPollerWithBadFd (0.00s)
=== RUN TestPollerWithData
--- FAIL: TestPollerWithData (0.00s)
inotify_poller_test.go:85: expected poller to return true
=== RUN TestPollerWithWakeup
--- PASS: TestPollerWithWakeup (0.00s)
=== RUN TestPollerWithClose
--- FAIL: TestPollerWithClose (0.00s)
inotify_poller_test.go:119: expected poller to return true
=== RUN TestPollerWithWakeupAndData
--- FAIL: TestPollerWithWakeupAndData (0.00s)
inotify_poller_test.go:140: expected poller to return true
=== RUN TestPollerConcurrent
--- FAIL: TestPollerConcurrent (0.05s)
inotify_poller_test.go:197: expected true
=== RUN TestInotifyCloseRightAway
--- PASS: TestInotifyCloseRightAway (0.05s)
=== RUN TestInotifyCloseSlightlyLater
--- PASS: TestInotifyCloseSlightlyLater (0.10s)
=== RUN TestInotifyCloseSlightlyLaterWithWatch
--- PASS: TestInotifyCloseSlightlyLaterWithWatch (0.10s)
=== RUN TestInotifyCloseAfterRead
--- PASS: TestInotifyCloseAfterRead (0.10s)
=== RUN TestInotifyCloseCreate
--- FAIL: TestInotifyCloseCreate (0.05s)
inotify_test.go:136: Took too long to wait for event
=== RUN TestInotifyStress
--- FAIL: TestInotifyStress (5.00s)
inotify_test.go:238: Expected at least 50 creates, got 0
=== RUN TestInotifyRemoveTwice
--- PASS: TestInotifyRemoveTwice (0.00s)
=== RUN TestInotifyInnerMapLength
<hangs here>

However, if you switch to using go1.6.2, rebuild the fsnotify package and testcase from this same fsnotify commit id and run the test, it passes:
boger@ampere:~/fsnotify/src/github.com/fsnotify/fsnotify$ go version
go version go1.6.2 linux/ppc64le
boger@ampere:~/fsnotify/src/github.com/fsnotify/fsnotify$ go test -c
boger@ampere:~/fsnotify/src/github.com/fsnotify/fsnotify$ ./fsnotify.test
PASS

If you change to use the latest commit for fsnotify (containing the switch to use x/sys/unix for the header files), rebuild the fsnotify package and the test, that seems to work for both go1.6.1 and go1.6.2, since it is no longer using the header file from the golang directories but from the golang/x directories.