Skip to content
This repository has been archived by the owner on May 26, 2022. It is now read-only.

Data race found with relevant stack #86

Closed
fxfactorial opened this issue Apr 22, 2020 · 3 comments
Closed

Data race found with relevant stack #86

fxfactorial opened this issue Apr 22, 2020 · 3 comments

Comments

@fxfactorial
Copy link

Hi, found this data race, perhaps some interaction between gorilla and libp2p?

==================
WARNING: DATA RACE
Read at 0x00c000d96740 by goroutine 430:
  github.com/gorilla/websocket.(*messageWriter).flushFrame()
      /home/edgar/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:614 +0x7b5
  github.com/gorilla/websocket.(*messageWriter).Close()
      /home/edgar/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:724 +0xba
  github.com/gorilla/websocket.(*Conn).WriteMessage()
      /home/edgar/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:773 +0x315
  github.com/libp2p/go-ws-transport.(*Conn).Write()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-ws-transport@v0.3.0/conn_native.go:70 +0x92
  go.(*struct { net.Conn; github.com/multiformats/go-multiaddr-net.maEndpoints }).Write()
      <autogenerated>:1 +0x87
  crypto/tls.(*Conn).write()
      /home/edgar/.gimme/versions/go1.14.1.linux.amd64/src/crypto/tls/conn.go:895 +0x243
  crypto/tls.(*Conn).writeRecordLocked()
      /home/edgar/.gimme/versions/go1.14.1.linux.amd64/src/crypto/tls/conn.go:944 +0x56d
  crypto/tls.(*Conn).sendAlertLocked()
      /home/edgar/.gimme/versions/go1.14.1.linux.amd64/src/crypto/tls/conn.go:796 +0xac
  crypto/tls.(*Conn).closeNotify()
      /home/edgar/.gimme/versions/go1.14.1.linux.amd64/src/crypto/tls/conn.go:1315 +0x133
  crypto/tls.(*Conn).Close()
      /home/edgar/.gimme/versions/go1.14.1.linux.amd64/src/crypto/tls/conn.go:1288 +0x140
  github.com/libp2p/go-libp2p-tls.(*conn).Close()
      <autogenerated>:1 +0x5d
  github.com/libp2p/go-libp2p-transport-upgrader.(*Upgrader).setupMuxer()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-transport-upgrader@v0.2.0/upgrader.go:128 +0x266
  github.com/libp2p/go-libp2p-transport-upgrader.(*Upgrader).upgrade()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-transport-upgrader@v0.2.0/upgrader.go:92 +0x581
  github.com/libp2p/go-libp2p-transport-upgrader.(*Upgrader).UpgradeOutbound()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-transport-upgrader@v0.2.0/upgrader.go:58 +0x125
  github.com/libp2p/go-ws-transport.(*WebsocketTransport).Dial()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-ws-transport@v0.3.0/websocket.go:67 +0x177
  github.com/libp2p/go-libp2p-swarm.(*Swarm).dialAddr()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-swarm@v0.2.3/swarm_dial.go:516 +0x270
  github.com/libp2p/go-libp2p-swarm.(*Swarm).dialAddr-fm()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-swarm@v0.2.3/swarm_dial.go:504 +0x96
  github.com/libp2p/go-libp2p-swarm.(*dialLimiter).executeDial()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-swarm@v0.2.3/limiter.go:218 +0x29f

Previous write at 0x00c000d96740 by goroutine 451:
  github.com/gorilla/websocket.(*Conn).SetWriteDeadline()
      /home/edgar/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:781 +0xd0
  github.com/libp2p/go-ws-transport.(*Conn).SetWriteDeadline()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-ws-transport@v0.3.0/conn_native.go:120 +0x9e
  github.com/libp2p/go-ws-transport.(*Conn).SetDeadline()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-ws-transport@v0.3.0/conn_native.go:112 +0xfa
  go.(*struct { net.Conn; github.com/multiformats/go-multiaddr-net.maEndpoints }).SetDeadline()
      <autogenerated>:1 +0x84
  crypto/tls.(*Conn).SetDeadline()
      /home/edgar/.gimme/versions/go1.14.1.linux.amd64/src/crypto/tls/conn.go:131 +0x72
  github.com/libp2p/go-libp2p-tls.(*conn).SetDeadline()
      <autogenerated>:1 +0x7f
  github.com/libp2p/go-stream-muxer-multistream.(*Transport).NewConn()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-stream-muxer-multistream@v0.2.0/multistream.go:43 +0x582
  github.com/libp2p/go-libp2p-transport-upgrader.(*Upgrader).setupMuxer.func1()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-transport-upgrader@v0.2.0/upgrader.go:120 +0xd4

Goroutine 430 (running) created at:
  github.com/libp2p/go-libp2p-swarm.(*dialLimiter).addCheckFdLimit()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-swarm@v0.2.3/limiter.go:168 +0x2dc
  github.com/libp2p/go-libp2p-swarm.(*dialLimiter).freePeerToken()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-swarm@v0.2.3/limiter.go:135 +0x7e1
  github.com/libp2p/go-libp2p-swarm.(*dialLimiter).finishedDial()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-swarm@v0.2.3/limiter.go:148 +0x116
  github.com/libp2p/go-libp2p-swarm.(*dialLimiter).executeDial()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-swarm@v0.2.3/limiter.go:226 +0x46b

Goroutine 451 (running) created at:
  github.com/libp2p/go-libp2p-transport-upgrader.(*Upgrader).setupMuxer()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-transport-upgrader@v0.2.0/upgrader.go:118 +0x16b
  github.com/libp2p/go-libp2p-transport-upgrader.(*Upgrader).upgrade()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-transport-upgrader@v0.2.0/upgrader.go:92 +0x581
  github.com/libp2p/go-libp2p-transport-upgrader.(*Upgrader).UpgradeOutbound()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-transport-upgrader@v0.2.0/upgrader.go:58 +0x125
  github.com/libp2p/go-ws-transport.(*WebsocketTransport).Dial()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-ws-transport@v0.3.0/websocket.go:67 +0x177
  github.com/libp2p/go-libp2p-swarm.(*Swarm).dialAddr()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-swarm@v0.2.3/swarm_dial.go:516 +0x270
  github.com/libp2p/go-libp2p-swarm.(*Swarm).dialAddr-fm()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-swarm@v0.2.3/swarm_dial.go:504 +0x96
  github.com/libp2p/go-libp2p-swarm.(*dialLimiter).executeDial()
      /home/edgar/go/pkg/mod/github.com/libp2p/go-libp2p-swarm@v0.2.3/limiter.go:218 +0x29f
@Stebalien
Copy link
Member

What's the output of go list -m all in your repo? I think this is a bug we fixed in the go-libp2p repo but we never appear to have updated the relevant deps here.

@fxfactorial
Copy link
Author

thank you:

go list -m all
github.com/harmony-one/harmony
bazil.org/fuse v0.0.0-20200117225306-7b5117fecadc
cloud.google.com/go v0.37.0
dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3
dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0
dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412
dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999
github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96
github.com/BurntSushi/toml v0.3.1
github.com/Kubuxu/go-os-helper v0.0.1
github.com/OneOfOne/xxhash v1.2.2
github.com/OpenPeeDeeP/depguard v1.0.1
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6
github.com/Stebalien/go-bitfield v0.0.1
github.com/Workiva/go-datastructures v1.0.50
github.com/aead/siphash v1.0.1
github.com/alangpierce/go-forceexport v0.0.0-20160317203124-8f1d6941cd75
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4
github.com/allegro/bigcache v1.2.1
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239
github.com/aristanetworks/goarista v0.0.0-20190607111240-52c2a7864a08
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6
github.com/aws/aws-sdk-go v1.30.1
github.com/beorn7/perks v1.0.1
github.com/blang/semver v3.5.1+incompatible
github.com/bombsimon/wsl v1.2.5
github.com/bombsimon/wsl/v2 v2.0.0
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625
github.com/bren2010/proquint v0.0.0-20160323162903-38337c27106d
github.com/btcsuite/btcd v0.20.1-beta
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d
github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd
github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd
github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792
github.com/btcsuite/winsvc v1.0.0
github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23
github.com/cenkalti/backoff v2.2.1+incompatible
github.com/census-instrumentation/opencensus-proto v0.2.1
github.com/cespare/cp v1.1.1
github.com/cespare/xxhash v1.1.0
github.com/cespare/xxhash/v2 v2.1.1
github.com/cheekybits/genny v1.0.0
github.com/client9/misspell v0.3.4
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f
github.com/coreos/bbolt v1.3.2
github.com/coreos/etcd v3.3.10+incompatible
github.com/coreos/go-etcd v2.0.0+incompatible
github.com/coreos/go-semver v0.3.0
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e
github.com/coreos/go-systemd/v22 v22.0.0
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f
github.com/cpuguy83/go-md2man v1.0.10
github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3
github.com/creack/pty v1.1.7
github.com/cskr/pubsub v1.0.2
github.com/davecgh/go-spew v1.1.1
github.com/davidlazar/go-crypto v0.0.0-20190912175916-7055855a373f
github.com/deckarep/golang-set v1.7.1
github.com/dgraph-io/badger v1.6.1
github.com/dgraph-io/ristretto v0.0.2
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954
github.com/dustin/go-humanize v1.0.0
github.com/edsrzf/mmap-go v1.0.0
github.com/elgris/jsondiff v0.0.0-20160530203242-765b5c24c302
github.com/envoyproxy/go-control-plane v0.9.4
github.com/envoyproxy/protoc-gen-validate v0.1.0
github.com/ethereum/go-ethereum v1.8.27
github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5
github.com/fatih/color v1.9.0
github.com/fd/go-nat v1.0.0
github.com/fjl/memsize v0.0.0-20180929194037-2a09253e352a
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568
github.com/francoispqt/gojay v1.2.13
github.com/fsnotify/fsnotify v1.4.9
github.com/garslo/gogen v0.0.0-20170307003452-d6ebae628c7c
github.com/ghodss/yaml v1.0.0
github.com/gliderlabs/ssh v0.1.1
github.com/go-bindata/go-bindata/v3 v3.1.3
github.com/go-check/check v0.0.0-20180628173108-788fd7840127
github.com/go-critic/go-critic v0.4.0
github.com/go-errors/errors v1.0.1
github.com/go-kit/kit v0.9.0
github.com/go-lintpack/lintpack v0.5.2
github.com/go-logfmt/logfmt v0.4.0
github.com/go-ole/go-ole v1.2.1
github.com/go-sql-driver/mysql v1.5.0
github.com/go-stack/stack v1.8.0
github.com/go-toolsmith/astcast v1.0.0
github.com/go-toolsmith/astcopy v1.0.0
github.com/go-toolsmith/astequal v1.0.0
github.com/go-toolsmith/astfmt v1.0.0
github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21
github.com/go-toolsmith/astp v1.0.0
github.com/go-toolsmith/pkgload v1.0.0
github.com/go-toolsmith/strparse v1.0.0
github.com/go-toolsmith/typep v1.0.0
github.com/gobwas/glob v0.2.3
github.com/godbus/dbus/v5 v5.0.3
github.com/gofrs/flock v0.0.0-20190320160742-5135e617513b
github.com/gogo/protobuf v1.3.1
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6
github.com/golang/lint v0.0.0-20180702182130-06c8688daad7
github.com/golang/mock v1.4.0
github.com/golang/protobuf v1.3.5
github.com/golang/snappy v0.0.1
github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a
github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6
github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613
github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3
github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee
github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a
github.com/golangci/golangci-lint v1.22.2
github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc
github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0
github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca
github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770
github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21
github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0
github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4
github.com/google/btree v1.0.0
github.com/google/go-cmp v0.4.0
github.com/google/go-github v17.0.0+incompatible
github.com/google/go-querystring v1.0.0
github.com/google/gofuzz v1.0.0
github.com/google/gopacket v1.1.17
github.com/google/martian v2.1.0+incompatible
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57
github.com/google/renameio v0.1.0
github.com/google/uuid v1.1.1
github.com/googleapis/gax-go v2.0.0+incompatible
github.com/googleapis/gax-go/v2 v2.0.3
github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c
github.com/gorilla/handlers v1.4.0
github.com/gorilla/mux v1.7.2
github.com/gorilla/websocket v1.4.2
github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
github.com/grpc-ecosystem/grpc-gateway v1.9.0
github.com/gxed/hashland/keccakpg v0.0.1
github.com/gxed/hashland/murmur3 v0.0.1
github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824
github.com/harmony-ek/gencodec v0.0.0-20190215044613-e6740dbdd846
github.com/harmony-one/bls v0.0.6
github.com/harmony-one/taggedrlp v0.1.4
github.com/harmony-one/vdf v0.0.0-20190924175951-620379da8849
github.com/hashicorp/errwrap v1.0.0
github.com/hashicorp/go-multierror v1.1.0
github.com/hashicorp/golang-lru v0.5.4
github.com/hashicorp/hcl v1.0.0
github.com/hpcloud/tail v1.0.0
github.com/huin/goupnp v1.0.0
github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150
github.com/iancoleman/strcase v0.0.0-20190422225806-e506e3ef7365
github.com/inconshreveable/mousetrap v1.0.0
github.com/ipfs/bbloom v0.0.4
github.com/ipfs/go-bitswap v0.2.8
github.com/ipfs/go-block-format v0.0.2
github.com/ipfs/go-blockservice v0.1.3
github.com/ipfs/go-cid v0.0.5
github.com/ipfs/go-cidutil v0.0.2
github.com/ipfs/go-datastore v0.4.4
github.com/ipfs/go-detect-race v0.0.1
github.com/ipfs/go-ds-badger v0.2.4
github.com/ipfs/go-ds-flatfs v0.4.1
github.com/ipfs/go-ds-leveldb v0.4.2
github.com/ipfs/go-ds-measure v0.1.0
github.com/ipfs/go-filestore v0.0.3
github.com/ipfs/go-fs-lock v0.0.4
github.com/ipfs/go-graphsync v0.0.5
github.com/ipfs/go-ipfs v0.5.0-rc1.0.20200409041533-6cb3ca41da70
github.com/ipfs/go-ipfs-blockstore v0.1.4
github.com/ipfs/go-ipfs-blocksutil v0.0.1
github.com/ipfs/go-ipfs-chunker v0.0.5
github.com/ipfs/go-ipfs-cmds v0.2.2
github.com/ipfs/go-ipfs-config v0.4.0
github.com/ipfs/go-ipfs-delay v0.0.1
github.com/ipfs/go-ipfs-ds-help v0.1.1
github.com/ipfs/go-ipfs-exchange-interface v0.0.1
github.com/ipfs/go-ipfs-exchange-offline v0.0.1
github.com/ipfs/go-ipfs-files v0.0.8
github.com/ipfs/go-ipfs-flags v0.0.1
github.com/ipfs/go-ipfs-pinner v0.0.4
github.com/ipfs/go-ipfs-posinfo v0.0.1
github.com/ipfs/go-ipfs-pq v0.0.2
github.com/ipfs/go-ipfs-provider v0.4.2
github.com/ipfs/go-ipfs-routing v0.1.0
github.com/ipfs/go-ipfs-util v0.0.1
github.com/ipfs/go-ipld-cbor v0.0.4
github.com/ipfs/go-ipld-format v0.2.0
github.com/ipfs/go-ipld-git v0.0.3
github.com/ipfs/go-ipns v0.0.2
github.com/ipfs/go-log v1.0.3
github.com/ipfs/go-log/v2 v2.0.3
github.com/ipfs/go-merkledag v0.3.1
github.com/ipfs/go-metrics-interface v0.0.1
github.com/ipfs/go-metrics-prometheus v0.0.2
github.com/ipfs/go-mfs v0.1.1
github.com/ipfs/go-path v0.0.7
github.com/ipfs/go-peertaskqueue v0.2.0
github.com/ipfs/go-unixfs v0.2.4
github.com/ipfs/go-verifcid v0.0.1
github.com/ipfs/interface-go-ipfs-core v0.2.6
github.com/ipld/go-car v0.1.0
github.com/ipld/go-ipld-prime v0.0.2-0.20191108012745-28a82f04c785
github.com/ipld/go-ipld-prime-proto v0.0.0-20191113031812-e32bd156a1e5
github.com/jackpal/gateway v1.0.6
github.com/jackpal/go-nat-pmp v1.0.2
github.com/jbenet/go-cienv v0.1.0
github.com/jbenet/go-is-domain v1.0.3
github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c
github.com/jbenet/go-temp-err-catcher v0.1.0
github.com/jbenet/goprocess v0.1.4
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1
github.com/jessevdk/go-flags v1.4.0
github.com/jmespath/go-jmespath v0.3.0
github.com/jonboulle/clockwork v0.1.0
github.com/jrick/logrotate v1.0.0
github.com/json-iterator/go v1.1.9
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024
github.com/jtolds/gls v4.20.0+incompatible
github.com/juju/fslock v0.0.0-20160525022230-4d5c94c67b4b
github.com/julienschmidt/httprouter v1.2.0
github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d
github.com/karalabe/hid v1.0.0
github.com/kisielk/errcheck v1.2.0
github.com/kisielk/gotool v1.0.0
github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23
github.com/klauspost/compress v1.4.1
github.com/klauspost/cpuid v1.2.0
github.com/konsorten/go-windows-terminal-sequences v1.0.1
github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515
github.com/kr/pretty v0.2.0
github.com/kr/pty v1.1.8
github.com/kr/text v0.1.0
github.com/kylelemons/godebug v1.1.0
github.com/lib/pq v1.2.0
github.com/libp2p/go-addr-util v0.0.1
github.com/libp2p/go-buffer-pool v0.0.2
github.com/libp2p/go-conn-security v0.0.1
github.com/libp2p/go-conn-security-multistream v0.1.0
github.com/libp2p/go-eventbus v0.1.0
github.com/libp2p/go-flow-metrics v0.0.3
github.com/libp2p/go-libp2p v0.8.0
github.com/libp2p/go-libp2p-autonat v0.2.2
github.com/libp2p/go-libp2p-blankhost v0.1.4
github.com/libp2p/go-libp2p-circuit v0.2.1
github.com/libp2p/go-libp2p-connmgr v0.2.1
github.com/libp2p/go-libp2p-core v0.5.1
github.com/libp2p/go-libp2p-crypto v0.1.0
github.com/libp2p/go-libp2p-discovery v0.3.0
github.com/libp2p/go-libp2p-gostream v0.2.1
github.com/libp2p/go-libp2p-host v0.1.0
github.com/libp2p/go-libp2p-http v0.1.5
github.com/libp2p/go-libp2p-interface-connmgr v0.0.5
github.com/libp2p/go-libp2p-interface-pnet v0.0.1
github.com/libp2p/go-libp2p-kad-dht v0.7.4
github.com/libp2p/go-libp2p-kbucket v0.4.1
github.com/libp2p/go-libp2p-loggables v0.1.0
github.com/libp2p/go-libp2p-metrics v0.0.1
github.com/libp2p/go-libp2p-mplex v0.2.3
github.com/libp2p/go-libp2p-nat v0.0.6
github.com/libp2p/go-libp2p-net v0.0.2
github.com/libp2p/go-libp2p-netutil v0.1.0
github.com/libp2p/go-libp2p-peer v0.2.0
github.com/libp2p/go-libp2p-peerstore v0.2.3
github.com/libp2p/go-libp2p-pnet v0.2.0
github.com/libp2p/go-libp2p-protocol v0.1.0
github.com/libp2p/go-libp2p-pubsub v0.2.7
github.com/libp2p/go-libp2p-pubsub-router v0.2.1
github.com/libp2p/go-libp2p-quic-transport v0.3.3
github.com/libp2p/go-libp2p-record v0.1.2
github.com/libp2p/go-libp2p-rendezvous v0.0.0-20190708065449-737144165c9e
github.com/libp2p/go-libp2p-routing v0.0.1
github.com/libp2p/go-libp2p-routing-helpers v0.2.1
github.com/libp2p/go-libp2p-secio v0.2.2
github.com/libp2p/go-libp2p-swarm v0.2.3
github.com/libp2p/go-libp2p-testing v0.1.1
github.com/libp2p/go-libp2p-tls v0.1.3
github.com/libp2p/go-libp2p-transport v0.0.5
github.com/libp2p/go-libp2p-transport-upgrader v0.2.0
github.com/libp2p/go-libp2p-yamux v0.2.7
github.com/libp2p/go-maddr-filter v0.0.5
github.com/libp2p/go-mplex v0.1.2
github.com/libp2p/go-msgio v0.0.4
github.com/libp2p/go-nat v0.0.5
github.com/libp2p/go-netroute v0.1.2
github.com/libp2p/go-openssl v0.0.4
github.com/libp2p/go-reuseport v0.0.1
github.com/libp2p/go-reuseport-transport v0.0.3
github.com/libp2p/go-sockaddr v0.0.2
github.com/libp2p/go-socket-activation v0.0.2
github.com/libp2p/go-stream-muxer v0.1.0
github.com/libp2p/go-stream-muxer-multistream v0.2.0
github.com/libp2p/go-tcp-transport v0.2.0
github.com/libp2p/go-testutil v0.1.0
github.com/libp2p/go-ws-transport v0.3.0
github.com/libp2p/go-yamux v1.3.5
github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e
github.com/lucas-clemente/quic-go v0.15.3
github.com/lunixbochs/vtclean v1.0.0
github.com/magiconair/properties v1.8.1
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe
github.com/marten-seemann/qpack v0.1.0
github.com/marten-seemann/qtls v0.9.0
github.com/matoous/godox v0.0.0-20190911065817-5d6d842e92eb
github.com/mattn/go-colorable v0.1.4
github.com/mattn/go-isatty v0.0.11
github.com/mattn/go-runewidth v0.0.8
github.com/mattn/go-sqlite3 v1.10.0
github.com/mattn/goveralls v0.0.2
github.com/matttproud/golang_protobuf_extensions v1.0.1
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b
github.com/microcosm-cc/bluemonday v1.0.1
github.com/miekg/dns v1.1.28
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1
github.com/minio/sha256-simd v0.1.1
github.com/mitchellh/go-homedir v1.1.0
github.com/mitchellh/go-ps v0.0.0-20190716172923-621e5597135b
github.com/mitchellh/mapstructure v1.1.2
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
github.com/modern-go/reflect2 v1.0.1
github.com/mozilla/tls-observatory v0.0.0-20190404164649-a3c1b6cfecfd
github.com/mr-tron/base58 v1.1.3
github.com/multiformats/go-base32 v0.0.3
github.com/multiformats/go-multiaddr v0.2.1
github.com/multiformats/go-multiaddr-dns v0.2.0
github.com/multiformats/go-multiaddr-fmt v0.1.0
github.com/multiformats/go-multiaddr-net v0.1.4
github.com/multiformats/go-multibase v0.0.2
github.com/multiformats/go-multihash v0.0.13
github.com/multiformats/go-multistream v0.1.1
github.com/multiformats/go-varint v0.0.5
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223
github.com/natefinch/lumberjack v2.0.0+incompatible
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d
github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86
github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab
github.com/oklog/ulid v1.3.1
github.com/onsi/ginkgo v1.12.0
github.com/onsi/gomega v1.9.0
github.com/opentracing/opentracing-go v1.1.0
github.com/openzipkin/zipkin-go v0.1.1
github.com/pborman/uuid v1.2.0
github.com/pelletier/go-toml v1.2.0
github.com/pkg/errors v0.9.1
github.com/pmezard/go-difflib v1.0.0
github.com/polydawn/refmt v0.0.0-20190408063855-01bf1e26dd14
github.com/prometheus/client_golang v1.5.1
github.com/prometheus/client_model v0.2.0
github.com/prometheus/common v0.9.1
github.com/prometheus/procfs v0.0.8
github.com/prometheus/tsdb v0.7.1
github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c
github.com/rjeczalik/notify v0.9.2
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af
github.com/rogpeppe/go-internal v1.3.0
github.com/rs/cors v1.7.0
github.com/rs/xid v1.2.1
github.com/rs/zerolog v1.18.0
github.com/russross/blackfriday v1.5.2
github.com/securego/gosec v0.0.0-20191002120514-e680875ea14d
github.com/sergi/go-diff v1.0.0
github.com/shirou/gopsutil v2.18.12+incompatible
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4
github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4
github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48
github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041
github.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d
github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c
github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b
github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20
github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9
github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50
github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc
github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371
github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9
github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191
github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241
github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122
github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2
github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82
github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95
github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537
github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133
github.com/sirupsen/logrus v1.4.2
github.com/smartystreets/assertions v1.0.0
github.com/smartystreets/goconvey v1.6.4
github.com/smola/gocompat v0.2.0
github.com/soheilhy/cmux v0.1.4
github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d
github.com/sourcegraph/go-diff v0.5.1
github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e
github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572
github.com/spaolacci/murmur3 v1.1.0
github.com/spf13/afero v1.1.2
github.com/spf13/cast v1.3.0
github.com/spf13/cobra v0.0.5
github.com/spf13/jwalterweatherman v1.0.0
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.6.1
github.com/src-d/envconfig v1.0.0
github.com/stretchr/objx v0.2.0
github.com/stretchr/testify v1.5.1
github.com/subosito/gotenv v1.2.0
github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07
github.com/texttheater/golang-levenshtein v0.0.0-20180516184445-d188e65d659e
github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5
github.com/tommy-muehle/go-mnd v1.1.1
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c
github.com/uber/jaeger-client-go v2.20.1+incompatible
github.com/uber/jaeger-lib v2.2.0+incompatible
github.com/ugorji/go v1.1.4
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8
github.com/ultraware/funlen v0.0.2
github.com/ultraware/whitespace v0.0.4
github.com/uudashr/gocognit v1.0.1
github.com/valyala/bytebufferpool v1.0.0
github.com/valyala/fasthttp v1.2.0
github.com/valyala/quicktemplate v1.2.0
github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a
github.com/viant/assertly v0.4.8
github.com/viant/toolbox v0.24.0
github.com/wangjia184/sortedset v0.0.0-20160527075905-f5d03557ba30
github.com/warpfork/go-wish v0.0.0-20190328234359-8b3e70f8e830
github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc
github.com/whyrusleeping/cbor-gen v0.0.0-20200123233031-1cdf64d27158
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f
github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1
github.com/whyrusleeping/go-logging v0.0.1
github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f
github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible
github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible
github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible
github.com/whyrusleeping/go-sysinfo v0.0.0-20190219211824-4a357d4b90b1
github.com/whyrusleeping/mafmt v1.2.8
github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9
github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7
github.com/whyrusleeping/tar-utils v0.0.0-20180509141711-8c6c8ba81d5c
github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee
github.com/whyrusleeping/yamux v1.1.5
github.com/x-cray/logrus-prefixed-formatter v0.5.2
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77
github.com/yuin/goldmark v1.1.27
github.com/zenazn/goji v0.9.0
go.etcd.io/bbolt v1.3.2
go.opencensus.io v0.22.3
go.uber.org/atomic v1.6.0
go.uber.org/dig v1.9.0
go.uber.org/fx v1.11.0
go.uber.org/goleak v1.0.0
go.uber.org/multierr v1.5.0
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee
go.uber.org/zap v1.14.1
go4.org v0.0.0-20200104003542-c7e774b10ea0
golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d
golang.org/x/crypto v0.0.0-20200414173820-0848c9571904
golang.org/x/exp v0.0.0-20190121172915-509febef88a4
golang.org/x/lint v0.0.0-20200302205851-738671d3881b
golang.org/x/mod v0.2.0
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a
golang.org/x/sys v0.0.0-20200413165638-669c56c373c4
golang.org/x/text v0.3.2
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4
golang.org/x/tools v0.0.0-20200408032209-46bd65c8538f
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
google.golang.org/api v0.1.0
google.golang.org/appengine v1.4.0
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55
google.golang.org/grpc v1.28.1
gopkg.in/alecthomas/kingpin.v2 v2.2.6
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15
gopkg.in/cheggaaa/pb.v1 v1.0.28
gopkg.in/errgo.v2 v2.1.0
gopkg.in/fsnotify.v1 v1.4.7
gopkg.in/inf.v0 v0.9.1
gopkg.in/ini.v1 v1.51.0
gopkg.in/natefinch/lumberjack.v2 v2.0.0
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce
gopkg.in/resty.v1 v1.12.0
gopkg.in/src-d/go-cli.v0 v0.0.0-20181105080154-d492247bbc0d
gopkg.in/src-d/go-log.v1 v1.0.1
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7
gopkg.in/urfave/cli.v1 v1.20.0
gopkg.in/yaml.v2 v2.2.7
grpc.go4.org v0.0.0-20170609214715-11d0a25b4919
honnef.co/go/tools v0.0.1-2019.2.3
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b
mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f
rsc.io/quote/v3 v3.1.0
rsc.io/sampler v1.3.0
sourcegraph.com/sourcegraph/go-diff v0.5.0
sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4

Stebalien referenced this issue Apr 22, 2020
We keep running into races so I figured we might as well just make this all
thread-safe. It should have no effect on performance.

The actual _bug_ was setting the write deadline while writing. But we might as
well just have read and write locks.

fixes https://github.com/libp2p/go-libp2p-swarm/issues/205
@Stebalien
Copy link
Member

Ah, wait, I need to read before I ask questions. That's a bug in the websocket transport. Fix in #85

@Stebalien Stebalien transferred this issue from libp2p/go-libp2p-swarm Apr 22, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants