From 78d33de5f431068a36a6a94005799b8a7e8183e6 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Wed, 11 Nov 2020 18:01:54 +0700 Subject: [PATCH 1/2] update quic-go to v0.19.0 --- .github/workflows/matrix.jsonc | 4 ++-- go.mod | 2 +- go.sum | 10 +++++----- integrationtests/main.go | 5 +++-- transport.go | 1 + 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/matrix.jsonc b/.github/workflows/matrix.jsonc index c0cad18..c665779 100644 --- a/.github/workflows/matrix.jsonc +++ b/.github/workflows/matrix.jsonc @@ -8,6 +8,6 @@ // v0.7.1 was never released in IPFS. { "go": "1.14", "commit": "v0.8.0", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": true }, { "go": "1.15", "commit": "v0.8.0", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": true }, - { "go": "1.14", "commit": "HEAD", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": true }, - { "go": "1.15", "commit": "HEAD", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": true } + { "go": "1.14", "commit": "HEAD", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": false }, + { "go": "1.15", "commit": "HEAD", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": false } ] diff --git a/go.mod b/go.mod index 541c83f..e5fa19a 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/libp2p/go-libp2p-core v0.7.0 github.com/libp2p/go-libp2p-tls v0.1.3 github.com/libp2p/go-netroute v0.1.3 - github.com/lucas-clemente/quic-go v0.18.1 + github.com/lucas-clemente/quic-go v0.19.0 github.com/minio/sha256-simd v0.1.1 github.com/multiformats/go-multiaddr v0.3.1 github.com/multiformats/go-multiaddr-fmt v0.1.0 diff --git a/go.sum b/go.sum index 7e732d0..7aac887 100644 --- a/go.sum +++ b/go.sum @@ -138,15 +138,15 @@ github.com/libp2p/go-openssl v0.0.7 h1:eCAzdLejcNVBzP/iZM9vqHnQm+XyCEbSSIheIPRGN github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= github.com/libp2p/go-sockaddr v0.0.2 h1:tCuXfpA9rq7llM/v834RKc/Xvovy/AqM9kHvTV/jY/Q= github.com/libp2p/go-sockaddr v0.0.2/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/lucas-clemente/quic-go v0.18.1 h1:DMR7guC0NtVS8zNZR3IO7NARZvZygkSC56GGtC6cyys= -github.com/lucas-clemente/quic-go v0.18.1/go.mod h1:yXttHsSNxQi8AWijC/vLP+OJczXqzHSOcJrM5ITUlCg= +github.com/lucas-clemente/quic-go v0.19.0 h1:IG5lB7DfHl6eZ7WTBVL8bnbDg0JGwDv906l6JffQbyg= +github.com/lucas-clemente/quic-go v0.19.0/go.mod h1:ZUygOqIoai0ASXXLJ92LTnKdbqh9MHCLTX6Nr1jUrK0= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/marten-seemann/qpack v0.2.0/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= +github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= github.com/marten-seemann/qtls v0.10.0 h1:ECsuYUKalRL240rRD4Ri33ISb7kAQ3qGDlrrl55b2pc= github.com/marten-seemann/qtls v0.10.0/go.mod h1:UvMd1oaYDACI99/oZUYLzMCkBXQVT0aGm99sJhbT8hs= -github.com/marten-seemann/qtls-go1-15 v0.1.0 h1:i/YPXVxz8q9umso/5y474CNcHmTpA+5DH+mFPjx6PZg= -github.com/marten-seemann/qtls-go1-15 v0.1.0/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= +github.com/marten-seemann/qtls-go1-15 v0.1.1 h1:LIH6K34bPVttyXnUWixk0bzH6/N07VxbSabxn5A5gZQ= +github.com/marten-seemann/qtls-go1-15 v0.1.1/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= diff --git a/integrationtests/main.go b/integrationtests/main.go index b8c54f5..c6a4634 100644 --- a/integrationtests/main.go +++ b/integrationtests/main.go @@ -9,6 +9,7 @@ import ( "fmt" "io/ioutil" "log" + "strings" "time" "github.com/libp2p/go-libp2p-core/crypto" @@ -242,8 +243,8 @@ func testHandshakeFailure(tr transport.Transport, serverKey crypto.PubKey, addr if err == nil { return errors.New("expected the handshake to fail") } - if err.Error() != "CRYPTO_ERROR: peer IDs don't match" { - return fmt.Errorf("got unexpected error: %s", err.Error()) + if !strings.Contains(err.Error(), "CRYPTO_ERROR") || !strings.Contains(err.Error(), "peer IDs don't match") { + return fmt.Errorf("got unexpected error: %w", err) } return nil } diff --git a/transport.go b/transport.go index ea850f1..2be59bc 100644 --- a/transport.go +++ b/transport.go @@ -39,6 +39,7 @@ var quicConfig = &quic.Config{ return true }, KeepAlive: true, + Versions: []quic.VersionNumber{quic.VersionDraft29, quic.VersionDraft32}, } const statelessResetKeyInfo = "libp2p quic stateless reset key" From 6935117024c439c42d1f96b6cb2b70ea9eac984f Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Sat, 14 Nov 2020 08:12:17 +0700 Subject: [PATCH 2/2] update quic-go to v0.19.1 --- .github/workflows/interop.yml | 2 +- .github/workflows/matrix.jsonc | 20 ++++++++++---------- go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/interop.yml b/.github/workflows/interop.yml index 11eacbf..d5f311f 100644 --- a/.github/workflows/interop.yml +++ b/.github/workflows/interop.yml @@ -104,5 +104,5 @@ jobs: - name: 'Run test case: multi-transfer' # Longer transfers might fail if the version has the connection ID retirement bug, see https://github.com/ipfs/go-ipfs/issues/7526. # The busy-looping bug might prevent all streams from being opened, see https://github.com/lucas-clemente/quic-go/pull/2827. - if: ${{ !matrix.client.hasOpenStreamBug && (matrix.client.retireBugBackwardsCompatiblityMode || matrix.server.retireBugBackwardsCompatiblityMode) }} + if: ${{ !matrix.server.hasAcceptStreamBug && (matrix.client.retireBugBackwardsCompatiblityMode || matrix.server.retireBugBackwardsCompatiblityMode) }} run: cd interop && ../.github/workflows/interop.sh transport-go${{ matrix.server.go }}-${{ matrix.server.commit }} transport-go${{ matrix.client.go }}-${{ matrix.client.commit }} multi-transfer diff --git a/.github/workflows/matrix.jsonc b/.github/workflows/matrix.jsonc index c665779..91810c0 100644 --- a/.github/workflows/matrix.jsonc +++ b/.github/workflows/matrix.jsonc @@ -1,13 +1,13 @@ [ - { "go": "1.13", "commit": "v0.6.0", "retireBugBackwardsCompatiblityMode": false, "hasOpenStreamBug": true }, - { "go": "1.14", "commit": "v0.6.0", "retireBugBackwardsCompatiblityMode": false, "hasOpenStreamBug": true }, - { "go": "1.13", "commit": "v0.7.0", "retireBugBackwardsCompatiblityMode": false, "hasOpenStreamBug": true }, - { "go": "1.14", "commit": "v0.7.0", "retireBugBackwardsCompatiblityMode": false, "hasOpenStreamBug": true}, - { "go": "1.13", "commit": "v0.7.1", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": true }, - { "go": "1.14", "commit": "v0.7.1", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": true }, + { "go": "1.13", "commit": "v0.6.0", "retireBugBackwardsCompatiblityMode": false, "hasAcceptStreamBug": true }, + { "go": "1.14", "commit": "v0.6.0", "retireBugBackwardsCompatiblityMode": false, "hasAcceptStreamBug": true }, + { "go": "1.13", "commit": "v0.7.0", "retireBugBackwardsCompatiblityMode": false, "hasAcceptStreamBug": true }, + { "go": "1.14", "commit": "v0.7.0", "retireBugBackwardsCompatiblityMode": false, "hasAcceptStreamBug": true}, + { "go": "1.13", "commit": "v0.7.1", "retireBugBackwardsCompatiblityMode": true, "hasAcceptStreamBug": true }, + { "go": "1.14", "commit": "v0.7.1", "retireBugBackwardsCompatiblityMode": true, "hasAcceptStreamBug": true }, // v0.7.1 was never released in IPFS. - { "go": "1.14", "commit": "v0.8.0", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": true }, - { "go": "1.15", "commit": "v0.8.0", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": true }, - { "go": "1.14", "commit": "HEAD", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": false }, - { "go": "1.15", "commit": "HEAD", "retireBugBackwardsCompatiblityMode": true, "hasOpenStreamBug": false } + { "go": "1.14", "commit": "v0.8.0", "retireBugBackwardsCompatiblityMode": true, "hasAcceptStreamBug": true }, + { "go": "1.15", "commit": "v0.8.0", "retireBugBackwardsCompatiblityMode": true, "hasAcceptStreamBug": true }, + { "go": "1.14", "commit": "HEAD", "retireBugBackwardsCompatiblityMode": true, "hasAcceptStreamBug": false }, + { "go": "1.15", "commit": "HEAD", "retireBugBackwardsCompatiblityMode": true, "hasAcceptStreamBug": false } ] diff --git a/go.mod b/go.mod index e5fa19a..2832188 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/libp2p/go-libp2p-core v0.7.0 github.com/libp2p/go-libp2p-tls v0.1.3 github.com/libp2p/go-netroute v0.1.3 - github.com/lucas-clemente/quic-go v0.19.0 + github.com/lucas-clemente/quic-go v0.19.1 github.com/minio/sha256-simd v0.1.1 github.com/multiformats/go-multiaddr v0.3.1 github.com/multiformats/go-multiaddr-fmt v0.1.0 diff --git a/go.sum b/go.sum index 7aac887..47612a3 100644 --- a/go.sum +++ b/go.sum @@ -138,8 +138,8 @@ github.com/libp2p/go-openssl v0.0.7 h1:eCAzdLejcNVBzP/iZM9vqHnQm+XyCEbSSIheIPRGN github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= github.com/libp2p/go-sockaddr v0.0.2 h1:tCuXfpA9rq7llM/v834RKc/Xvovy/AqM9kHvTV/jY/Q= github.com/libp2p/go-sockaddr v0.0.2/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/lucas-clemente/quic-go v0.19.0 h1:IG5lB7DfHl6eZ7WTBVL8bnbDg0JGwDv906l6JffQbyg= -github.com/lucas-clemente/quic-go v0.19.0/go.mod h1:ZUygOqIoai0ASXXLJ92LTnKdbqh9MHCLTX6Nr1jUrK0= +github.com/lucas-clemente/quic-go v0.19.1 h1:J9TkQJGJVOR3UmGhd4zdVYwKSA0EoXbLRf15uQJ6gT4= +github.com/lucas-clemente/quic-go v0.19.1/go.mod h1:ZUygOqIoai0ASXXLJ92LTnKdbqh9MHCLTX6Nr1jUrK0= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc=