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

Data race in termdash #69

Open
nakabonne opened this issue Oct 18, 2020 · 0 comments
Open

Data race in termdash #69

nakabonne opened this issue Oct 18, 2020 · 0 comments
Labels
bug Something isn't working

Comments

@nakabonne
Copy link
Owner

What's happened

Whenever we do:

  • running with -race option
  • Attack with Enter
  • Quit with Ctrl-C

A data race has been detected as shown below:

go run -race main.go http://host.xz

==================
WARNING: DATA RACE
Write at 0x00c00013c5b0 by main goroutine:
  internal/poll.(*FD).destroy()
      /usr/local/Cellar/go/1.15.1/libexec/src/internal/poll/fd_unix.go:78 +0xc4
  internal/poll.(*FD).decref()
      /usr/local/Cellar/go/1.15.1/libexec/src/internal/poll/fd_mutex.go:213 +0x53
  internal/poll.(*FD).Close()
      /usr/local/Cellar/go/1.15.1/libexec/src/internal/poll/fd_unix.go:99 +0x79
  os.(*file).close()
      /usr/local/Cellar/go/1.15.1/libexec/src/os/file_unix.go:235 +0x76
  os.(*File).Close()
      /usr/local/Cellar/go/1.15.1/libexec/src/os/file_posix.go:25 +0x567
  github.com/nsf/termbox-go.Close()
      /Users/nakabonne/go/pkg/mod/github.com/nsf/termbox-go@v0.0.0-20200204031403-4d2b513ad8be/api.go:142 +0x525
  github.com/mum4k/termdash/terminal/termbox.(*Terminal).Close()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/terminal/termbox/termbox.go:163 +0x55
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x230
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104

Previous read at 0x00c00013c5b0 by goroutine 18:
  [failed to restore the stack]

Goroutine 18 (running) created at:
  github.com/mum4k/termdash/private/event.newSubscriber()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:89 +0x3cf
  github.com/mum4k/termdash/private/event.(*DistributionSystem).Subscribe()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:237 +0x224
  github.com/mum4k/termdash.(*termdash).subscribers()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:226 +0x4ce
  github.com/mum4k/termdash.newTermdash()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:206 +0x2ec
  github.com/mum4k/termdash.Run()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:106 +0x7a
  github.com/nakabonne/ali/gui.run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:70 +0xa38
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x215
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104
==================
==================
WARNING: DATA RACE
Write at 0x0000018accf0 by main goroutine:
  github.com/nsf/termbox-go.Close()
      /Users/nakabonne/go/pkg/mod/github.com/nsf/termbox-go@v0.0.0-20200204031403-4d2b513ad8be/api.go:146 +0x597
  github.com/mum4k/termdash/terminal/termbox.(*Terminal).Close()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/terminal/termbox/termbox.go:163 +0x55
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x230
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104

Previous read at 0x0000018accf0 by goroutine 18:
  [failed to restore the stack]

Goroutine 18 (running) created at:
  github.com/mum4k/termdash/private/event.newSubscriber()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:89 +0x3cf
  github.com/mum4k/termdash/private/event.(*DistributionSystem).Subscribe()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:237 +0x224
  github.com/mum4k/termdash.(*termdash).subscribers()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:226 +0x4ce
  github.com/mum4k/termdash.newTermdash()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:206 +0x2ec
  github.com/mum4k/termdash.Run()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:106 +0x7a
  github.com/nakabonne/ali/gui.run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:70 +0xa38
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x215
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104
==================
==================
WARNING: DATA RACE
Write at 0x0000018acce8 by main goroutine:
  github.com/nsf/termbox-go.Close()
      /Users/nakabonne/go/pkg/mod/github.com/nsf/termbox-go@v0.0.0-20200204031403-4d2b513ad8be/api.go:147 +0x5b2
  github.com/mum4k/termdash/terminal/termbox.(*Terminal).Close()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/terminal/termbox/termbox.go:163 +0x55
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x230
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104

Previous read at 0x0000018acce8 by goroutine 18:
  [failed to restore the stack]

Goroutine 18 (running) created at:
  github.com/mum4k/termdash/private/event.newSubscriber()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:89 +0x3cf
  github.com/mum4k/termdash/private/event.(*DistributionSystem).Subscribe()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:237 +0x224
  github.com/mum4k/termdash.(*termdash).subscribers()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:226 +0x4ce
  github.com/mum4k/termdash.newTermdash()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:206 +0x2ec
  github.com/mum4k/termdash.Run()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:106 +0x7a
  github.com/nakabonne/ali/gui.run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:70 +0xa38
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x215
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104
==================
==================
WARNING: DATA RACE
Write at 0x000001879530 by main goroutine:
  github.com/nsf/termbox-go.Close()
      /Users/nakabonne/go/pkg/mod/github.com/nsf/termbox-go@v0.0.0-20200204031403-4d2b513ad8be/api.go:149 +0x5e8
  github.com/mum4k/termdash/terminal/termbox.(*Terminal).Close()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/terminal/termbox/termbox.go:163 +0x55
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x230
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104

Previous read at 0x000001879530 by goroutine 18:
  [failed to restore the stack]

Goroutine 18 (running) created at:
  github.com/mum4k/termdash/private/event.newSubscriber()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:89 +0x3cf
  github.com/mum4k/termdash/private/event.(*DistributionSystem).Subscribe()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:237 +0x224
  github.com/mum4k/termdash.(*termdash).subscribers()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:226 +0x4ce
  github.com/mum4k/termdash.newTermdash()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:206 +0x2ec
  github.com/mum4k/termdash.Run()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:106 +0x7a
  github.com/nakabonne/ali/gui.run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:70 +0xa38
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x215
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104
==================
==================
WARNING: DATA RACE
Write at 0x0000018207b8 by main goroutine:
  github.com/nsf/termbox-go.Close()
      /Users/nakabonne/go/pkg/mod/github.com/nsf/termbox-go@v0.0.0-20200204031403-4d2b513ad8be/api.go:153 +0x65d
  github.com/mum4k/termdash/terminal/termbox.(*Terminal).Close()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/terminal/termbox/termbox.go:163 +0x55
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x230
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104

Previous write at 0x0000018207b8 by goroutine 18:
  [failed to restore the stack]

Goroutine 18 (running) created at:
  github.com/mum4k/termdash/private/event.newSubscriber()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:89 +0x3cf
  github.com/mum4k/termdash/private/event.(*DistributionSystem).Subscribe()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:237 +0x224
  github.com/mum4k/termdash.(*termdash).subscribers()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:226 +0x4ce
  github.com/mum4k/termdash.newTermdash()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:206 +0x2ec
  github.com/mum4k/termdash.Run()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:106 +0x7a
  github.com/nakabonne/ali/gui.run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:70 +0xa38
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x215
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104
==================
==================
WARNING: DATA RACE
Write at 0x0000018207c0 by main goroutine:
  github.com/nsf/termbox-go.Close()
      /Users/nakabonne/go/pkg/mod/github.com/nsf/termbox-go@v0.0.0-20200204031403-4d2b513ad8be/api.go:154 +0x678
  github.com/mum4k/termdash/terminal/termbox.(*Terminal).Close()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/terminal/termbox/termbox.go:163 +0x55
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x230
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104

Previous write at 0x0000018207c0 by goroutine 18:
  [failed to restore the stack]

Goroutine 18 (running) created at:
  github.com/mum4k/termdash/private/event.newSubscriber()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:89 +0x3cf
  github.com/mum4k/termdash/private/event.(*DistributionSystem).Subscribe()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:237 +0x224
  github.com/mum4k/termdash.(*termdash).subscribers()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:226 +0x4ce
  github.com/mum4k/termdash.newTermdash()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:206 +0x2ec
  github.com/mum4k/termdash.Run()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:106 +0x7a
  github.com/nakabonne/ali/gui.run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:70 +0xa38
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x215
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104
==================
==================
WARNING: DATA RACE
Write at 0x0000018207a0 by main goroutine:
  github.com/nsf/termbox-go.Close()
      /Users/nakabonne/go/pkg/mod/github.com/nsf/termbox-go@v0.0.0-20200204031403-4d2b513ad8be/api.go:155 +0x693
  github.com/mum4k/termdash/terminal/termbox.(*Terminal).Close()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/terminal/termbox/termbox.go:163 +0x55
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x230
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104

Previous read at 0x0000018207a0 by goroutine 18:
  github.com/nsf/termbox-go.Flush()
      /Users/nakabonne/go/pkg/mod/github.com/nsf/termbox-go@v0.0.0-20200204031403-4d2b513ad8be/api.go:208 +0x773
  github.com/mum4k/termdash/terminal/termbox.(*Terminal).Flush()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/terminal/termbox/termbox.go:113 +0x2f
  github.com/mum4k/termdash.(*termdash).redraw()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:278 +0x1bd
  github.com/mum4k/termdash.(*termdash).evRedraw()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:294 +0xa6
  github.com/mum4k/termdash.(*termdash).subscribers.func3()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:230 +0x44
  github.com/mum4k/termdash/private/event.(*subscriber).callback()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:95 +0x5a
  github.com/mum4k/termdash/private/event.(*subscriber).run()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:110 +0xd2

Goroutine 18 (running) created at:
  github.com/mum4k/termdash/private/event.newSubscriber()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:89 +0x3cf
  github.com/mum4k/termdash/private/event.(*DistributionSystem).Subscribe()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:237 +0x224
  github.com/mum4k/termdash.(*termdash).subscribers()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:226 +0x4ce
  github.com/mum4k/termdash.newTermdash()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:206 +0x2ec
  github.com/mum4k/termdash.Run()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:106 +0x7a
  github.com/nakabonne/ali/gui.run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:70 +0xa38
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x215
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104
==================
==================
WARNING: DATA RACE
Write at 0x0000018207a8 by main goroutine:
  github.com/nsf/termbox-go.Close()
      /Users/nakabonne/go/pkg/mod/github.com/nsf/termbox-go@v0.0.0-20200204031403-4d2b513ad8be/api.go:156 +0x6ae
  github.com/mum4k/termdash/terminal/termbox.(*Terminal).Close()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/terminal/termbox/termbox.go:163 +0x55
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x230
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104

Previous read at 0x0000018207a8 by goroutine 18:
  github.com/nsf/termbox-go.Flush()
      /Users/nakabonne/go/pkg/mod/github.com/nsf/termbox-go@v0.0.0-20200204031403-4d2b513ad8be/api.go:208 +0x757
  github.com/mum4k/termdash/terminal/termbox.(*Terminal).Flush()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/terminal/termbox/termbox.go:113 +0x2f
  github.com/mum4k/termdash.(*termdash).redraw()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:278 +0x1bd
  github.com/mum4k/termdash.(*termdash).evRedraw()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:294 +0xa6
  github.com/mum4k/termdash.(*termdash).subscribers.func3()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:230 +0x44
  github.com/mum4k/termdash/private/event.(*subscriber).callback()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:95 +0x5a
  github.com/mum4k/termdash/private/event.(*subscriber).run()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:110 +0xd2

Goroutine 18 (running) created at:
  github.com/mum4k/termdash/private/event.newSubscriber()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:89 +0x3cf
  github.com/mum4k/termdash/private/event.(*DistributionSystem).Subscribe()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/private/event/event.go:237 +0x224
  github.com/mum4k/termdash.(*termdash).subscribers()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:226 +0x4ce
  github.com/mum4k/termdash.newTermdash()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:206 +0x2ec
  github.com/mum4k/termdash.Run()
      /Users/nakabonne/go/pkg/mod/github.com/mum4k/termdash@v0.12.2/termdash.go:106 +0x7a
  github.com/nakabonne/ali/gui.run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:70 +0xa38
  github.com/nakabonne/ali/gui.Run()
      /Users/nakabonne/src/github.com/brenol/ali/gui/gui.go:34 +0x215
  main.(*cli).run()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:117 +0x26c
  main.main()
      /Users/nakabonne/src/github.com/brenol/ali/main.go:60 +0x104
==================
Found 8 data race(s)
exit status 66

reported at #66 (comment)

@nakabonne nakabonne added the bug Something isn't working label Oct 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant