Release 1.4.2 is relatively small and is mostly focused on tidying up the way the library manages the connection status. Previously sync/ atomic was used to read/update the status but this led to a range of potential deadlocks, and workarounds to avoid these, which made the code difficult to follow. The new connectionStatus separates status handling from client and should simplify further development whilst resolving potential race conditions. It is my hope that users will not notice any change (@master was updated on 10th August and the updated code has been running in production at a few sites since then without issue).
A further change is that it is now possible to disable auto acknowledgment so that received messages can be manually acknowledged (or, more to the point, not acknowledged!).
Thanks to everyone who submitted issues and contributed code (list of the main merged pull requests below):
Resolve situation where broker accepted connection but did not respond to CONNECT packet in a timely manner (should be very unusual but was reported in #597). @MattBrittan in #603
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/eclipse/paho.mqtt.golang from 1.4.1 to 1.4.2.
Release notes
Sourced from github.com/eclipse/paho.mqtt.golang's releases.
Commits
a1800d8
Merge pull request #578 from shivamkm07/master2518954
Ack when AutoAckDisabled is off35f45ad
Changing AutoAck -> AutoAckDisabled5c775c2
Adding AutoAck option in ClientOptions7b1c0eb
Revert "Support for AutoAckOff"079a117
Rearchitect status handling as per issue #6052b1657a
Rearchitect status handling as per issue 605bc0e78b
Merge pull request #606 from ChIoT-Tech/master312d578
Resolve race condition and ensure t.Error is not called from goroutine.0300b68
Merge pull request #603 from ChIoT-Tech/master - hang on connect (597)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)