libp2p / go-libp2p

libp2p implementation in Go
MIT License
5.99k stars 1.05k forks source link

AutoNAT dialing over WebRTC transports crashes. #2772

Closed snichols closed 2 months ago

snichols commented 5 months ago
Version Information
github.com/xgaicc/xgaicc
cloud.google.com/go v0.37.0
cloud.google.com/go/compute v1.23.3
cloud.google.com/go/compute/metadata v0.2.3
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
git.sr.ht/~sbinet/gg v0.5.0
github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96
github.com/BurntSushi/toml v1.3.2
github.com/DataDog/zstd v1.4.1
github.com/Jorropo/jsync v1.0.1
github.com/Microsoft/go-winio v0.6.1
github.com/OneOfOne/xxhash v1.2.2
github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b
github.com/alecthomas/kingpin/v2 v2.4.0
github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9
github.com/andybalholm/cascadia v1.3.2
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239
github.com/apatters/go-wordwrap v1.0.0
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6
github.com/benbjohnson/clock v1.3.5
github.com/beorn7/perks v1.0.1
github.com/bits-and-blooms/bitset v1.13.0
github.com/bmkessler/fastdiv v0.0.0-20190227075523-41d5178f2044
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625
github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23
github.com/calebcase/tmpfile v1.0.3
github.com/campoy/embedmd v1.0.0
github.com/cenkalti/backoff v2.2.1+incompatible
github.com/cenkalti/backoff/v4 v4.3.0
github.com/census-instrumentation/opencensus-proto v0.4.1
github.com/cespare/xxhash v1.1.0
github.com/cespare/xxhash/v2 v2.2.0
github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89
github.com/chromedp/chromedp v0.9.2
github.com/chromedp/sysutil v1.0.0
github.com/chzyer/readline v1.5.1
github.com/cilium/ebpf v0.9.1
github.com/client9/misspell v0.3.4
github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe
github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa
github.com/containerd/cgroups v1.1.0
github.com/coreos/etcd v3.3.10+incompatible
github.com/coreos/go-etcd v2.0.0+incompatible
github.com/coreos/go-semver v0.2.0
github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d
github.com/coreos/go-systemd/v22 v22.5.0
github.com/cpuguy83/go-md2man v1.0.10
github.com/cpuguy83/go-md2man/v2 v2.0.4
github.com/crackcomm/go-gitignore v0.0.0-20231225121904-e25f5bc08668
github.com/cskr/pubsub v1.0.2
github.com/davecgh/go-spew v1.1.1
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c
github.com/decred/dcrd/crypto/blake256 v1.0.1
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0
github.com/dgraph-io/badger v1.6.2
github.com/dgraph-io/badger/v2 v2.2007.3
github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de
github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2
github.com/docker/go-units v0.5.0
github.com/dsnet/try v0.0.3
github.com/dustin/go-humanize v1.0.1
github.com/elastic/gosigar v0.14.3
github.com/envoyproxy/go-control-plane v0.12.0
github.com/envoyproxy/protoc-gen-validate v1.0.4
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568
github.com/flynn/noise v1.1.0
github.com/francoispqt/gojay v1.2.13
github.com/frankban/quicktest v1.14.6
github.com/fsnotify/fsnotify v1.5.4
github.com/gabriel-vasile/mimetype v1.4.3
github.com/ghodss/yaml v1.0.0
github.com/gliderlabs/ssh v0.1.1
github.com/go-errors/errors v1.0.1
github.com/go-fonts/liberation v0.3.2
github.com/go-kit/log v0.2.1
github.com/go-latex/latex v0.0.0-20231108140139-5c1ce85aa4ea
github.com/go-logfmt/logfmt v0.5.1
github.com/go-logr/logr v1.4.1
github.com/go-logr/stdr v1.2.2
github.com/go-ole/go-ole v1.2.6
github.com/go-pdf/fpdf v0.9.0
github.com/go-resty/resty/v2 v2.12.0
github.com/go-shiori/dom v0.0.0-20230515143342-73569d674e1c
github.com/go-shiori/go-readability v0.0.0-20240204090920-819593fddc6b
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
github.com/go-yaml/yaml v2.1.0+incompatible
github.com/gobwas/httphead v0.1.0
github.com/gobwas/pool v0.2.1
github.com/gobwas/ws v1.2.1
github.com/goccmack/gocc v0.0.0-20230228185258-2292f9e40198
github.com/godbus/dbus/v5 v5.1.0
github.com/gogo/protobuf v1.3.2
github.com/gogs/chardet v0.0.0-20211120154057-b7413eaefb8f
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
github.com/golang/glog v1.2.0
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
github.com/golang/lint v0.0.0-20180702182130-06c8688daad7
github.com/golang/mock v1.6.0
github.com/golang/protobuf v1.5.4
github.com/golang/snappy v0.0.1
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c
github.com/google/go-cmp v0.6.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.19
github.com/google/martian v2.1.0+incompatible
github.com/google/pprof v0.0.0-20240327155427-868f304927ed
github.com/google/renameio v0.1.0
github.com/google/uuid v1.6.0
github.com/googleapis/gax-go v2.0.0+incompatible
github.com/googleapis/gax-go/v2 v2.0.3
github.com/gopherjs/gopherjs v1.17.2
github.com/gorilla/mux v1.8.1
github.com/gorilla/websocket v1.5.1
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7
github.com/grpc-ecosystem/grpc-gateway v1.5.0
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0
github.com/hashicorp/errwrap v1.1.0
github.com/hashicorp/go-multierror v1.1.1
github.com/hashicorp/golang-lru v1.0.2
github.com/hashicorp/golang-lru/arc/v2 v2.0.5
github.com/hashicorp/golang-lru/v2 v2.0.7
github.com/hashicorp/hcl v1.0.0
github.com/hpcloud/tail v1.0.0
github.com/huin/goupnp v1.3.0
github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465
github.com/inconshreveable/mousetrap v1.0.0
github.com/ipfs/bbloom v0.0.4
github.com/ipfs/boxo v0.18.0
github.com/ipfs/go-bitfield v1.1.0
github.com/ipfs/go-block-format v0.2.0
github.com/ipfs/go-cid v0.4.1
github.com/ipfs/go-cidutil v0.1.0
github.com/ipfs/go-datastore v0.6.0
github.com/ipfs/go-detect-race v0.0.1
github.com/ipfs/go-ds-badger v0.3.0
github.com/ipfs/go-ds-badger2 v0.1.3
github.com/ipfs/go-ds-leveldb v0.5.0
github.com/ipfs/go-ipfs-blocksutil v0.0.1
github.com/ipfs/go-ipfs-delay v0.0.1
github.com/ipfs/go-ipfs-pq v0.0.3
github.com/ipfs/go-ipfs-redirects-file v0.1.1
github.com/ipfs/go-ipfs-util v0.0.3
github.com/ipfs/go-ipld-cbor v0.1.0
github.com/ipfs/go-ipld-format v0.6.0
github.com/ipfs/go-ipld-legacy v0.2.1
github.com/ipfs/go-log v1.0.5
github.com/ipfs/go-log/v2 v2.5.1
github.com/ipfs/go-metrics-interface v0.0.1
github.com/ipfs/go-peertaskqueue v0.8.1
github.com/ipfs/go-unixfs v0.4.5
github.com/ipfs/go-unixfsnode v1.9.0
github.com/ipld/go-car/v2 v2.13.1
github.com/ipld/go-codec-dagpb v1.6.0
github.com/ipld/go-ipld-prime v0.21.0
github.com/jackpal/go-nat-pmp v1.0.2
github.com/jbenet/go-cienv v0.1.0
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/joho/godotenv v1.5.1
github.com/josharian/intern v1.0.0
github.com/jpillora/backoff v1.0.0
github.com/json-iterator/go v1.1.12
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024
github.com/jtolds/gls v4.20.0+incompatible
github.com/jtolio/eventkit v0.0.0-20221004135224-074cf276595b
github.com/jtolio/noiseconn v0.0.0-20230111204749-d7ec1a08b0b8
github.com/julienschmidt/httprouter v1.3.0
github.com/kisielk/errcheck v1.5.0
github.com/kisielk/gotool v1.0.0
github.com/klauspost/compress v1.17.7
github.com/klauspost/cpuid/v2 v2.2.7
github.com/koron/go-ssdp v0.0.4
github.com/kr/pretty v0.3.1
github.com/kr/pty v1.1.3
github.com/kr/text v0.2.0
github.com/libp2p/go-buffer-pool v0.1.0
github.com/libp2p/go-cidranger v1.1.0
github.com/libp2p/go-doh-resolver v0.4.0
github.com/libp2p/go-flow-metrics v0.1.0
github.com/libp2p/go-libp2p v0.33.2
github.com/libp2p/go-libp2p-asn-util v0.4.1
github.com/libp2p/go-libp2p-kad-dht v0.25.2
github.com/libp2p/go-libp2p-kbucket v0.6.3
github.com/libp2p/go-libp2p-pubsub v0.10.0
github.com/libp2p/go-libp2p-record v0.2.0
github.com/libp2p/go-libp2p-routing-helpers v0.7.3
github.com/libp2p/go-libp2p-testing v0.12.0
github.com/libp2p/go-libp2p-xor v0.1.0
github.com/libp2p/go-msgio v0.3.0
github.com/libp2p/go-nat v0.2.0
github.com/libp2p/go-netroute v0.2.1
github.com/libp2p/go-openssl v0.1.0
github.com/libp2p/go-reuseport v0.4.0
github.com/libp2p/go-yamux/v4 v4.0.1
github.com/libp2p/zeroconf/v2 v2.2.0
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0
github.com/lunixbochs/vtclean v1.0.0
github.com/magefile/mage v1.15.0
github.com/magiconair/properties v1.8.0
github.com/mailru/easyjson v0.7.7
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd
github.com/mattn/go-isatty v0.0.20
github.com/mattn/go-pointer v0.0.1
github.com/matttproud/golang_protobuf_extensions v1.0.4
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0
github.com/microcosm-cc/bluemonday v1.0.1
github.com/miekg/dns v1.1.58
github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b
github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1
github.com/minio/sha256-simd v1.0.1
github.com/mitchellh/go-homedir v1.1.0
github.com/mitchellh/mapstructure v1.1.2
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
github.com/modern-go/reflect2 v1.0.2
github.com/mr-tron/base58 v1.2.0
github.com/multiformats/go-base32 v0.1.0
github.com/multiformats/go-base36 v0.2.0
github.com/multiformats/go-multiaddr v0.12.3
github.com/multiformats/go-multiaddr-dns v0.3.1
github.com/multiformats/go-multiaddr-fmt v0.1.0
github.com/multiformats/go-multibase v0.2.0
github.com/multiformats/go-multicodec v0.9.0
github.com/multiformats/go-multihash v0.2.3
github.com/multiformats/go-multistream v0.5.0
github.com/multiformats/go-varint v0.0.7
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f
github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86
github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c
github.com/nxadm/tail v1.4.8
github.com/ohler55/ojg v1.21.4
github.com/onsi/ginkgo v1.16.5
github.com/onsi/ginkgo/v2 v2.17.1
github.com/onsi/gomega v1.30.0
github.com/opencontainers/runtime-spec v1.2.0
github.com/opentracing/opentracing-go v1.2.0
github.com/openzipkin/zipkin-go v0.4.2
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
github.com/pelletier/go-toml v1.2.0
github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9
github.com/pion/datachannel v1.5.6
github.com/pion/dtls/v2 v2.2.10
github.com/pion/ice/v2 v2.3.14
github.com/pion/interceptor v0.1.27
github.com/pion/logging v0.2.2
github.com/pion/mdns v0.0.12
github.com/pion/randutil v0.1.0
github.com/pion/rtcp v1.2.14
github.com/pion/rtp v1.8.5
github.com/pion/sctp v1.8.13
github.com/pion/sdp/v3 v3.0.9
github.com/pion/srtp/v2 v2.0.18
github.com/pion/stun v0.6.1
github.com/pion/transport v0.14.1
github.com/pion/transport/v2 v2.2.4
github.com/pion/transport/v3 v3.0.2
github.com/pion/turn/v2 v2.1.5
github.com/pion/webrtc/v3 v3.2.31
github.com/pkg/errors v0.9.1
github.com/pmezard/go-difflib v1.0.0
github.com/polydawn/refmt v0.89.0
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c
github.com/prometheus/client_golang v1.19.0
github.com/prometheus/client_model v0.6.0
github.com/prometheus/common v0.51.1
github.com/prometheus/procfs v0.13.0
github.com/qdrant/go-client v1.8.0
github.com/quic-go/qpack v0.4.0
github.com/quic-go/qtls-go1-20 v0.4.1
github.com/quic-go/quic-go v0.42.0
github.com/quic-go/webtransport-go v0.7.0
github.com/raulk/go-watchdog v1.3.0
github.com/rogpeppe/go-internal v1.10.0
github.com/russross/blackfriday v1.5.2
github.com/russross/blackfriday/v2 v2.1.0
github.com/samber/lo v1.39.0
github.com/sclevine/agouti v3.0.0+incompatible
github.com/sergi/go-diff v1.3.1
github.com/shirou/gopsutil v3.21.11+incompatible
github.com/shirou/gopsutil/v3 v3.24.3
github.com/shoenig/go-m1cpu v0.1.6
github.com/shoenig/test v0.6.4
github.com/shopspring/decimal v1.2.0
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-20200502201357-93f07166e636
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-20190707220628-8d4bc4ba7749
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 v1.0.0
github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546
github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133
github.com/sirupsen/logrus v1.9.0
github.com/smarty/assertions v1.15.1
github.com/smartystreets/assertions v1.2.0
github.com/smartystreets/goconvey v1.8.1
github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d
github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e
github.com/spacemonkeygo/monkit/v3 v3.0.22
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 v1.2.1
github.com/spf13/jwalterweatherman v1.0.0
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.3.2
github.com/stretchr/objx v0.5.2
github.com/stretchr/testify v1.9.0
github.com/syndtr/goleveldb v1.0.0
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07
github.com/tklauser/go-sysconf v0.3.13
github.com/tklauser/numcpus v0.7.0
github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8
github.com/urfave/cli v1.22.10
github.com/urfave/cli/v2 v2.27.1
github.com/viant/assertly v0.4.8
github.com/viant/toolbox v0.24.0
github.com/warpfork/go-testmark v0.12.1
github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0
github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc
github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11
github.com/whyrusleeping/cbor-gen v0.0.0-20240109153615-66e95c3e8a87
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f
github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1
github.com/xhit/go-str2duration/v2 v2.1.0
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913
github.com/yuin/goldmark v1.4.13
github.com/yusufpapurcu/wmi v1.2.4
github.com/zeebo/admission/v3 v3.0.3
github.com/zeebo/assert v1.3.1
github.com/zeebo/blake3 v0.2.3
github.com/zeebo/errs v1.3.0
github.com/zeebo/float16 v0.1.0
github.com/zeebo/incenc v0.0.0-20180505221441-0d92902eec54
github.com/zeebo/pcg v1.0.1
go.opencensus.io v0.24.0
go.opentelemetry.io/otel v1.24.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0
go.opentelemetry.io/otel/exporters/zipkin v1.21.0
go.opentelemetry.io/otel/metric v1.24.0
go.opentelemetry.io/otel/sdk v1.21.0
go.opentelemetry.io/otel/trace v1.24.0
go.opentelemetry.io/proto/otlp v1.0.0
go.uber.org/atomic v1.11.0
go.uber.org/dig v1.17.1
go.uber.org/fx v1.21.0
go.uber.org/goleak v1.3.0
go.uber.org/mock v0.4.0
go.uber.org/multierr v1.11.0
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee
go.uber.org/zap v1.27.0
go4.org v0.0.0-20180809161055-417644f6feb5
golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d
golang.org/x/crypto v0.21.0
golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8
golang.org/x/image v0.14.0
golang.org/x/lint v0.0.0-20200302205851-738671d3881b
golang.org/x/mod v0.16.0
golang.org/x/net v0.22.0
golang.org/x/oauth2 v0.18.0
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852
golang.org/x/sync v0.6.0
golang.org/x/sys v0.18.0
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2
golang.org/x/term v0.18.0
golang.org/x/text v0.14.0
golang.org/x/time v0.5.0
golang.org/x/tools v0.19.0
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028
gonum.org/v1/gonum v0.15.0
gonum.org/v1/plot v0.14.0
google.golang.org/api v0.1.0
google.golang.org/appengine v1.6.8
google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80
google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80
google.golang.org/genproto/googleapis/rpc v0.0.0-20240325203815-454cdb8f5daa
google.golang.org/grpc v1.62.1
google.golang.org/protobuf v1.33.0
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
gopkg.in/errgo.v2 v2.1.0
gopkg.in/fsnotify.v1 v1.4.7
gopkg.in/inf.v0 v0.9.1
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.1
grpc.go4.org v0.0.0-20170609214715-11d0a25b4919
honnef.co/go/tools v0.0.1-2019.2.3
lukechampine.com/blake3 v1.2.1
rsc.io/pdf v0.1.1
sourcegraph.com/sourcegraph/go-diff v0.5.0
sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4
storj.io/common v0.0.0-20231101115145-09481ec98b57
storj.io/drpc v0.0.33
storj.io/infectious v0.0.1
storj.io/picobuf v0.0.2-0.20230906122608-c4ba17033c6c
storj.io/uplink v1.12.2

When AutoNAT attempts to dial a host listening over WebRTC direct transport, a nil reference occurs.

// p2p/transport/webrtc/transport.go
func (t *WebRTCTransport) Dial(ctx context.Context, remoteMultiaddr ma.Multiaddr, p peer.ID) (tpt.CapableConn, error) {
    scope, err := t.rcmgr.OpenConnection(network.DirOutbound, false, remoteMultiaddr)
    if err != nil {
        return nil, err
    }

The snippet above shows the location of the error. rcmgr is nil on the transport. My host configuration includes libp2p.DefaultResourceManager but that setting is not reflected in the AutoNAT configuration.

// config/config.go
autoNatCfg := Config{
    Transports:         cfg.Transports,
    Muxers:             cfg.Muxers,
    SecurityTransports: cfg.SecurityTransports,
    Insecure:           cfg.Insecure,
    PSK:                cfg.PSK,
    ConnectionGater:    cfg.ConnectionGater,
    Reporter:           cfg.Reporter,
    PeerKey:            autonatPrivKey,
    Peerstore:          ps,
    DialRanker:         swarm.NoDelayDialRanker,
    SwarmOpts: []swarm.Option{
        // It is better to disable black hole detection and just attempt a dial for autonat
        swarm.WithUDPBlackHoleConfig(false, 0, 0),
        swarm.WithIPv6BlackHoleConfig(false, 0, 0),
    },
}

Notice how there's no ResourceManager assignment in the above snippet. I also don't see any code that adds sensible defaults to the AutoNAT configuration.

My workaround is to disable AutoNAT.

sukunrt commented 5 months ago

This was fixed by https://github.com/libp2p/go-libp2p/pull/2752 It'll be in the next release v0.34

sukunrt commented 4 months ago

We should add a test for this to prevent regression.