dependabot[bot] opened a new pull request, #40832: URL: https://github.com/apache/beam/pull/40832
Bumps [github.com/nats-io/nats.go](https://github.com/nats-io/nats.go) from 1.54.0 to 1.55.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/nats-io/nats.go/releases">github.com/nats-io/nats.go's releases</a>.</em></p> <blockquote> <h2>Release v1.55.0</h2> <h2>Changelog</h2> <p>This is the biggest nats.go release in a long time: 47 changes with more than half of them coming from 18 external contributors - thank you all!</p> <p>Most of this release is a robustness effort. Nearly 30 bug fixes address deadlocks, goroutine and timer leaks, data races and stalls in reconnect and drain handling, pull and ordered consumers, async publish and service API. It also adds the <code>FetchMaxBytes()</code> option and <code>Conn.RemoteAccount()</code>.</p> <h3>ADDED</h3> <ul> <li>Core NATS: <ul> <li><code>Conn.RemoteAccount()</code> and <code>ServerInfo.RemoteAccount</code> exposing the account the client is bound to (<a href="https://redirect.github.com/nats-io/nats.go/issues/2156">#2156</a>)</li> </ul> </li> <li>JetStream: <ul> <li><code>FetchMaxBytes()</code> option to limit both the number of messages and total bytes in a single <code>Fetch()</code> request. Thanks <a href="https://github.com/manenim"><code>@manenim</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2198">#2198</a>)</li> <li><code>StreamInfo.Domain</code>, <code>StreamInfo.Alternates</code>, <code>StreamState.Lost</code>, <code>StreamSourceInfo.External</code> and <code>StreamSourceInfo.Error</code> in stream info (<a href="https://redirect.github.com/nats-io/nats.go/issues/2168">#2168</a>)</li> <li><code>ErrStreamMessageExceedsMaximum</code> for JetStream error code 10054, returned when a message exceeds the stream's <code>MaxMsgSize</code>. Thanks <a href="https://github.com/matehsan"><code>@matehsan</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2110">#2110</a>)</li> </ul> </li> </ul> <h3>FIXED</h3> <ul> <li>Core NATS: <ul> <li><code>ForceReconnect()</code> called while already reconnecting disabling <code>ReconnectWait</code> and custom reconnect delays, so the client dialed in a tight loop. Thanks <a href="https://github.com/Arsen302"><code>@Arsen302</code></a> for the contribution and <a href="https://github.com/MokiMeow"><code>@MokiMeow</code></a> for the diagnosis and test (<a href="https://redirect.github.com/nats-io/nats.go/issues/2179">#2179</a>)</li> <li>Connection closing for good instead of reconnecting after a partial write left a truncated message on the wire (<a href="https://redirect.github.com/nats-io/nats.go/issues/2169">#2169</a>)</li> <li>Connection status listeners losing an unread event and being unregistered when the next status was sent (<a href="https://redirect.github.com/nats-io/nats.go/issues/2193">#2193</a>)</li> <li>Message headers not counted against subscription pending byte limits, so header-heavy subscriptions could exceed the limit without reporting a slow consumer. Thanks <a href="https://github.com/Grivn"><code>@Grivn</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2200">#2200</a>)</li> <li>Requests interrupted by a reconnect returning <code>ErrConnectionClosed</code> instead of <code>ErrDisconnected</code>. Thanks <a href="https://github.com/AshSgDe29071999"><code>@AshSgDe29071999</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2129">#2129</a>)</li> <li>Default port added to the path instead of the host for server URLs with a path and no port, e.g. <code>ws://host/nats</code>. Thanks <a href="https://github.com/dannyshafer"><code>@dannyshafer</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2177">#2177</a>)</li> <li><code>Close()</code> during <code>Drain()</code> flipping the closed connection back to <code>DRAINING_PUBS</code> and flushing on it. Thanks <a href="https://github.com/Kshot3000"><code>@Kshot3000</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2163">#2163</a>)</li> <li><code>Drain()</code> waiting for the full <code>DrainTimeout</code> when the connection was closed mid-drain (<a href="https://redirect.github.com/nats-io/nats.go/issues/2171">#2171</a>)</li> <li><code>IsSystemAccount()</code> reset to false by async INFO updates, such as cluster topology changes or lame duck mode (<a href="https://redirect.github.com/nats-io/nats.go/issues/2156">#2156</a>)</li> </ul> </li> <li>JetStream: <ul> <li>Pull consumer <code>Consume()</code> and <code>Messages()</code> deadlocking on <code>Stop()</code> or <code>Drain()</code> while buffered messages were still being delivered. Thanks <a href="https://github.com/clwluvw"><code>@clwluvw</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2165">#2165</a>)</li> <li><code>Messages()</code> iterator goroutines leaking after the connection is closed. Thanks <a href="https://github.com/clwluvw"><code>@clwluvw</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2166">#2166</a>)</li> <li>Heartbeat timer and status listener left running when <code>Consume()</code> ends because the connection was closed. Thanks <a href="https://github.com/clwluvw"><code>@clwluvw</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2164">#2164</a>)</li> <li><code>Messages()</code> iterator returning <code>ErrMsgIteratorClosed</code> instead of the remaining buffered messages when <code>Next()</code> raced with <code>Drain()</code> (<a href="https://redirect.github.com/nats-io/nats.go/issues/2188">#2188</a>)</li> <li>Pull consumer with <code>StopAfter</code> stalling until the missed heartbeat check (30s by default) after a pull expired. Thanks <a href="https://github.com/huynguyen7"><code>@huynguyen7</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2208">#2208</a>)</li> <li>Ordered consumer with <code>StopAfter</code> hanging on <code>Stop()</code>/<code>Drain()</code>, delivering too many or too few messages, or panicking after a consumer reset. Thanks <a href="https://github.com/clwluvw"><code>@clwluvw</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2167">#2167</a>)</li> <li>Ordered consumer <code>Fetch()</code>, <code>Next()</code> and <code>FetchBytes()</code> blocking forever after returning <code>ErrOrderedConsumerConcurrentRequests</code>, and <code>FetchNoWait()</code> restarting from the beginning of the stream (<a href="https://redirect.github.com/nats-io/nats.go/issues/2211">#2211</a>)</li> <li>Ordered consumer <code>Consume()</code> and <code>Messages()</code> using the 15s pull consumer heartbeat instead of the 5s ordered default, so a stalled consumer was reset after ~30s instead of ~10s. Thanks <a href="https://github.com/arminazimi"><code>@arminazimi</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2182">#2182</a>)</li> <li><code>PublishAsync()</code> exceeding <code>WithPublishAsyncMaxPending()</code> under concurrent calls. Thanks <a href="https://github.com/ShravanthReddy"><code>@ShravanthReddy</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2126">#2126</a>)</li> <li>Async publish error callbacks for messages pending during a reconnect delayed until the publisher shut down. Thanks <a href="https://github.com/H-XX-D"><code>@H-XX-D</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2150">#2150</a>)</li> <li>Data race between <code>Info()</code> and <code>CachedInfo()</code> on streams and consumers. Thanks <a href="https://github.com/vulragrag-star"><code>@vulragrag-star</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2152">#2152</a>)</li> <li>Reusing the same <code>KeyValueConfig.Sources</code> for several KeyValue buckets carrying the first bucket's subject transform into the next ones, so their reads returned <code>ErrKeyNotFound</code>. Thanks <a href="https://github.com/zhechen-cs"><code>@zhechen-cs</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2190">#2190</a>)</li> <li>Object Store <code>GetFile()</code> leaving trailing bytes of an existing destination file when downloading a shorter object. Thanks <a href="https://github.com/zhechen-cs"><code>@zhechen-cs</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2197">#2197</a>)</li> </ul> </li> <li>Legacy JetStream: <ul> <li>Async publish error callbacks for messages pending during a reconnect delayed until the publisher shut down. Thanks <a href="https://github.com/H-XX-D"><code>@H-XX-D</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2150">#2150</a>)</li> <li>KeyValue <code>Create()</code> and <code>Update()</code> on a cross-domain mirrored bucket failing with <code>nats: no response from stream</code>. Thanks <a href="https://github.com/spicysharkco"><code>@spicysharkco</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2203">#2203</a>)</li> <li>Object Store <code>GetFile()</code> leaving trailing bytes of an existing destination file when downloading a shorter object. Thanks <a href="https://github.com/zhechen-cs"><code>@zhechen-cs</code></a> for the contribution (<a href="https://redirect.github.com/nats-io/nats.go/issues/2197">#2197</a>)</li> </ul> </li> <li>Service API: <ul> <li>Panic in <code>AddService()</code> on a closed connection (<a href="https://redirect.github.com/nats-io/nats.go/issues/2154">#2154</a>)</li> <li>Panic with <code>send on closed channel</code> when callbacks were queued during <code>Stop()</code> (<a href="https://redirect.github.com/nats-io/nats.go/issues/2173">#2173</a>)</li> <li>Service stopping on async errors from unrelated subscriptions with overlapping subjects. Async errors are now matched by subscription, recorded in endpoint stats and passed to <code>ErrorHandler</code>, and only a closed connection stops the service (<a href="https://redirect.github.com/nats-io/nats.go/issues/2174">#2174</a>)</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/nats-io/nats.go/commit/6068694d76fcf1f12bdf1e7383876aa5a3928421"><code>6068694</code></a> Release v1.55.0 (<a href="https://redirect.github.com/nats-io/nats.go/issues/2214">#2214</a>)</li> <li><a href="https://github.com/nats-io/nats.go/commit/063b4ad855b35b28d4ff3754260715bd91556735"><code>063b4ad</code></a> [FIXED] Honor ReconnectWait after ForceReconnect during reconnect (<a href="https://redirect.github.com/nats-io/nats.go/issues/2179">#2179</a>)</li> <li><a href="https://github.com/nats-io/nats.go/commit/0a4cfc17a9cc663686d67f136f0c9d4a93ee4e42"><code>0a4cfc1</code></a> [ADDED] JetStream: stream alternates, lost data, source external/error (<a href="https://redirect.github.com/nats-io/nats.go/issues/2168">#2168</a>)</li> <li><a href="https://github.com/nats-io/nats.go/commit/c3830a090da3c7d04aa5c7406d5330e43e8881e7"><code>c3830a0</code></a> [IMPROVED] Document default MaxAckPending for legacy JetStream subscriptions ...</li> <li><a href="https://github.com/nats-io/nats.go/commit/2560ee4d863c8fddb18236c553cc3594e2737e16"><code>2560ee4</code></a> [IMPROVED] Avoid per-message metadata allocations in JetStream consumers (<a href="https://redirect.github.com/nats-io/nats.go/issues/2212">#2212</a>)</li> <li><a href="https://github.com/nats-io/nats.go/commit/8afc207574f37b9f347e1b2f6155ea97583d8147"><code>8afc207</code></a> [FIXED] Ordered consumer Fetch deadlock and FetchNoWait redelivery (<a href="https://redirect.github.com/nats-io/nats.go/issues/2211">#2211</a>)</li> <li><a href="https://github.com/nats-io/nats.go/commit/d1936d74b2d25ae8f1da9f029b060080780a24e8"><code>d1936d7</code></a> [FIXED] Correct StopAfter pending accounting for pull consumers (<a href="https://redirect.github.com/nats-io/nats.go/issues/2208">#2208</a>)</li> <li><a href="https://github.com/nats-io/nats.go/commit/b431a0773eab367145a376926d52cdaa69a910c6"><code>b431a07</code></a> [FIXED] micro: service and endpoint metadata can be changed after it is set (...</li> <li><a href="https://github.com/nats-io/nats.go/commit/ef8ce42436b59d827753f7900aeda8454ec0622d"><code>ef8ce42</code></a> [FIXED] micro: Reset clears the endpoint queue group in stats (<a href="https://redirect.github.com/nats-io/nats.go/issues/2195">#2195</a>)</li> <li><a href="https://github.com/nats-io/nats.go/commit/e28f7bea6c2d81a77ca78cfe5efb7bda72e6be05"><code>e28f7be</code></a> [FIXED] Connection status listeners losing unread events (<a href="https://redirect.github.com/nats-io/nats.go/issues/2193">#2193</a>)</li> <li>Additional commits viewable in <a href="https://github.com/nats-io/nats.go/compare/v1.54.0...v1.55.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@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) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
