Skip to content

Release v0.27.7 #2374

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

Merged
merged 3 commits into from
Jun 19, 2023
Merged

Release v0.27.7 #2374

merged 3 commits into from
Jun 19, 2023

Conversation

MarcoPolo
Copy link
Collaborator

Fixes a deadlock that can occur when consumers don't pull from an event channel because they're waiting for the swarm conns lock.

Jorropo and others added 2 commits June 16, 2023 12:04
* fix: in the swarm move Connectedness emit after releasing conns

go-libp2p-kad-dht now listen to both EvtPeerIdentificationCompleted and EvtPeerConnectednessChanged
and EvtPeerIdentificationCompleted calls .ConnsToPeer inorder to do some filtering.

However it happens that it deadlocks because if the swarm is trying to emit a EvtPeerConnectednessChanged
while the subscriber is trying to process an EvtPeerIdentificationCompleted, the subscriber is stuck on
s.conns.RLock() while the swarm wont release it before having sent EvtPeerConnectednessChanged.
Deadlock !

I havn't confirmed this fixes my bug given this takes time to reproduce, I'll startup a new experiment soon.

* Fix other deadlock and add a test

* Make test a little faster

* Bind on localhost

---------

Co-authored-by: Marco Munizaga <[email protected]>
@github-actions
Copy link

Suggested version: v0.27.7

Comparing to: v0.27.6 (diff)

Changes in go.mod file(s):

(empty)

gorelease says:

gorelease: preparing to load packages for github.com/libp2p/go-libp2p: looking for missing dependencies: go: downloading github.com/libp2p/go-libp2p v0.22.0
go: downloading github.com/libp2p/go-openssl v0.1.0
go: downloading github.com/hashicorp/golang-lru v0.5.4
go: downloading go.opencensus.io v0.23.0
go: downloading github.com/libp2p/go-yamux/v3 v3.1.2
go: downloading github.com/lucas-clemente/quic-go v0.28.1
go: downloading github.com/gorilla/websocket v1.5.0
go: downloading github.com/mattn/go-pointer v0.0.1
go: downloading github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572
go: downloading github.com/cheekybits/genny v1.0.0
go: downloading github.com/marten-seemann/qtls-go1-16 v0.1.5
go: downloading github.com/marten-seemann/qtls-go1-17 v0.1.2
go: downloading github.com/marten-seemann/qtls-go1-18 v0.1.2
go: downloading github.com/marten-seemann/qtls-go1-19 v0.1.0
go: downloading github.com/nxadm/tail v1.4.8
go: downloading gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7
go: downloading github.com/libp2p/go-libp2p v0.28.0
go: downloading golang.org/x/tools v0.9.1
go: downloading github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0
go: downloading github.com/minio/sha256-simd v1.0.1
go: downloading github.com/multiformats/go-multicodec v0.9.0
go: downloading github.com/multiformats/go-multihash v0.2.2
go: downloading golang.org/x/sync v0.2.0
go: downloading github.com/benbjohnson/clock v1.3.5
go: downloading golang.org/x/sys v0.8.0
go: downloading github.com/libp2p/go-nat v0.2.0
go: downloading github.com/libp2p/go-reuseport v0.3.0
go: downloading github.com/klauspost/compress v1.16.5
go: downloading github.com/quic-go/webtransport-go v0.5.3
go: downloading github.com/miekg/dns v1.1.54
go: downloading github.com/prometheus/client_model v0.4.0
go: downloading go.uber.org/dig v1.17.0
go: downloading github.com/mattn/go-isatty v0.0.19
go: downloading github.com/onsi/ginkgo/v2 v2.9.7
go: downloading golang.org/x/net v0.10.0
go: downloading github.com/klauspost/cpuid/v2 v2.2.5
go: downloading github.com/huin/goupnp v1.2.0
go: downloading go.uber.org/atomic v1.11.0
go: downloading golang.org/x/text v0.9.0
go: downloading lukechampine.com/blake3 v1.2.1
go: downloading github.com/google/pprof v0.0.0-20230602150820-91b7bce49751
gorelease-load-module imports
	github.com/libp2p/go-libp2p/p2p/test/websocket: cannot find module providing package github.com/libp2p/go-libp2p/p2p/test/websocket
go: downloading github.com/decred/dcrd/crypto/blake256 v1.0.1
go: downloading github.com/go-logr/logr v1.2.4
go: downloading github.com/onsi/gomega v1.27.7
go: module github.com/golang/protobuf is deprecated: Use the "google.golang.org/protobuf" module instead.

gocompat says:

Your branch is up to date with 'origin/release-v027'.

Cutting a Release (when not on master)

This PR is targeting release-v027, which is not the default branch.
If you wish to cut a release once this PR is merged, please add the release label to this PR.

Cutting a Release (and modifying non-markdown files)

This PR is modifying both version.json and non-markdown files.
The Release Checker is not able to analyse files that are not checked in to release-v027. This might cause the above analysis to be inaccurate.
Please consider performing all the code changes in a separate PR before cutting the release.

Automatically created GitHub Release

A draft GitHub Release has been created.
It is going to be published when this PR is merged.
You can modify its' body to include any release notes you wish to include with the release.

@marten-seemann
Copy link
Contributor

Wrong order of commits, not sure if it matters. Would be safer to put the release commit at the end.

@MarcoPolo
Copy link
Collaborator Author

Will squash

@MarcoPolo
Copy link
Collaborator Author

We agreed on this over a sync call.

@MarcoPolo MarcoPolo merged commit 68ad5ea into release-v027 Jun 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants