nabbar/golib

[HTTP Server] Race condition

gmbno opened this issue · 0 comments

gmbno commented

Just detected a race condition in the HTTP Server library

==================
WARNING: DATA RACE
Read at 0x00c0001dee70 by main goroutine:
  github.com/nabbar/golib/httpserver.(*server).GetName()
      <autogenerated>:1 +0x66
  github.com/nabbar/golib/httpserver.pool.List.func1()
      path/vendor/github.com/nabbar/golib/httpserver/pool.go:206 +0xfb1
  github.com/nabbar/golib/httpserver.pool.MapRun()
      path/vendor/github.com/nabbar/golib/httpserver/pool.go:90 +0x91
  github.com/nabbar/golib/httpserver.pool.List()
      path/vendor/github.com/nabbar/golib/httpserver/pool.go:199 +0x1dd
  github.com/nabbar/golib/httpserver.(*pool).List()
      <autogenerated>:1 +0xcc
  path/bin/api/pkg/server.(*server).GetServerList()
      path/bin/api/pkg/server/model.go:25 +0x81
  path/bin/api/cmd.startRun()
      path/bin/api/cmd/start.go:34 +0x103
  github.com/spf13/cobra.(*Command).execute()
      path/vendor/github.com/spf13/cobra/command.go:856 +0x8cb
  github.com/spf13/cobra.(*Command).ExecuteC()
      path/vendor/github.com/spf13/cobra/command.go:960 +0x4b2
  github.com/spf13/cobra.(*Command).Execute()
      path/vendor/github.com/spf13/cobra/command.go:897 +0x4e
  path/bin/api/cmd.Execute()
     path/bin/api/cmd/root.go:30 +0x2f
  main.main()
     path/bin/api/main.go:29 +0x2f

Previous write at 0x00c0001dee70 by goroutine 24:
  sync/atomic.StoreInt64()
      /usr/local/go/src/runtime/race_amd64.s:248 +0xb
  sync/atomic.StorePointer()
      /usr/local/go/src/runtime/atomic_pointer.go:51 +0x33
  github.com/nabbar/golib/httpserver.(*server).setRunning()
      path/vendor/github.com/nabbar/golib/httpserver/server.go:124 +0xab2
  github.com/nabbar/golib/httpserver.(*server).Listen.func1()
      path/vendor/github.com/nabbar/golib/httpserver/server.go:239 +0xa89

Goroutine 24 (running) created at:
  github.com/nabbar/golib/httpserver.(*server).Listen()
      path/vendor/github.com/nabbar/golib/httpserver/server.go:216 +0x91d
  github.com/nabbar/golib/httpserver.pool.Listen.func1()
      path/vendor/github.com/nabbar/golib/httpserver/pool.go:339 +0x67
  github.com/nabbar/golib/httpserver.pool.MapRun()
      path/vendor/github.com/nabbar/golib/httpserver/pool.go:90 +0x91
  github.com/nabbar/golib/httpserver.pool.Listen()
      path/vendor/github.com/nabbar/golib/httpserver/pool.go:338 +0x144
  github.com/nabbar/golib/httpserver.(*pool).Listen()
      <autogenerated>:1 +0x8e
  path/bin/api/pkg/server.(*server).ServerListen()
      path/bin/api/pkg/server/model.go:65 +0xa1
  path/bin/api/cmd.startRun()
      path/bin/api/cmd/start.go:33 +0xa9
  github.com/spf13/cobra.(*Command).execute()
      path/vendor/github.com/spf13/cobra/command.go:856 +0x8cb
  github.com/spf13/cobra.(*Command).ExecuteC()
      path/vendor/github.com/spf13/cobra/command.go:960 +0x4b2
  github.com/spf13/cobra.(*Command).Execute()
      path/vendor/github.com/spf13/cobra/command.go:897 +0x4e
  path/bin/api/cmd.Execute()
      path/bin/api/cmd/root.go:30 +0x2f
  main.main()
      path/bin/api/main.go:29 +0x2f
==================