Bump WolverineFx from 6.21.0 to 6.23.1 - #542
#542Closed
dependabot[bot] wants to merge 1 commit into
mainVerifyTests/Verify.Wolverine:mainfrom
dependabot/nuget/src/WolverineFx-6.23.1VerifyTests/Verify.Wolverine:dependabot/nuget/src/WolverineFx-6.23.1Copy head branch name to clipboard
Closed
Bump WolverineFx from 6.21.0 to 6.23.1#542dependabot[bot] wants to merge 1 commit intomainVerifyTests/Verify.Wolverine:mainfrom dependabot/nuget/src/WolverineFx-6.23.1VerifyTests/Verify.Wolverine:dependabot/nuget/src/WolverineFx-6.23.1Copy head branch name to clipboard
dependabot[bot] wants to merge 1 commit into
mainVerifyTests/Verify.Wolverine:mainfrom
dependabot/nuget/src/WolverineFx-6.23.1VerifyTests/Verify.Wolverine:dependabot/nuget/src/WolverineFx-6.23.1Copy head branch name to clipboard
Conversation
--- updated-dependencies: - dependency-name: WolverineFx dependency-version: 6.23.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
|
Looks like WolverineFx is no longer updatable, so this is no longer needed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated WolverineFx from 6.21.0 to 6.23.1.
Release notes
Sourced from WolverineFx's releases.
6.23.1
Agent distribution
TL;DR: if you pause a projection from CritterWatch on 6.23.0, restarting it appears to do nothing for a full minute. This fixes that.
A paused projection or subscription agent now resumes immediately when you restart it (#3663). On 6.23.0 the restart was accepted, the pause restriction was cleared, and then nothing happened until the pending-assignment ledger's TTL expired — 2 ×
CheckAssignmentPeriod, so 60 seconds with the defaults. Long enough that an operator reasonably concludes the agent is never coming back.The ledger introduced in 6.23.0 (#3622) only counted an assignment as confirmed if a later evaluation saw the agent running and still assigned to the same node. A pause makes those two conditions mutually exclusive: the first evaluation that can observe the delivered assignment is the same one that detaches the agent. The entry was never confirmed, nothing on the stop path cleared it, and the restart's
AssignAgentwas suppressed as a duplicate still in flight. Delivery alone now confirms the entry, which is the only question the ledger was ever asking.Pausing an agent no longer briefly starts it first (#3666).
ApplyRestrictionsAsynckickstarted a health check before persisting the operator's restriction change, so that evaluation ran against the old restrictions and could act against the very intent being applied — for a pause, re-assigning and starting the agent one beat before the merged evaluation stopped it again. Besides the wasted daemon start/stop cycle, this is what armed the stale ledger entry behind #3663.PostgreSQL
Advisory-lock sessions stay invisible to Marten's async-daemon gap detection (#3664). Marten 9.16.1+ will not skip a stale event-sequence gap while any session whose open transaction predates that gap is still alive (marten#4953). A session parked in an open transaction for the life of the process therefore reads as a permanent "possible reserver" and can hold the high-water mark — and every async projection — behind a gap that is genuinely dead.
Wolverine's long-held locks were already shaped correctly: leader election and node coordination hold session-scoped advisory locks on a dedicated connection with no transaction, so they show up as
state='idle'with a NULLxact_start. Those sessions are now also taggedapplication_name = 'wolverine-advisory-lock:<database>', which turns apg_stat_activityinvestigation from guesswork into something you can read at a glance. The constraints are pinned in tests and in the Postgres durability docs, including the trap worth knowing in your own code: never add a keepalive query inside a long-lived open transaction — it bumpsstate_change, makes the session look active, and re-promotes it to candidate reserver.Note for combined Marten + Wolverine deployments: older guidance suggested Postgres's
idle_in_transaction_session_timeoutas a dead-gap backstop. Prefer upgrading Marten and usingSkipStaleGapsDespiteLiveTransactionsAfterinstead.6.23.0
Projection & agent distribution
TL;DR: this prevents Wolverine from going into a panic doing agent assignments and churning crazily hard during Kubernetes rollouts or cluster starts and that's a very good thing
The bulk of this release. A wave of fixes (WO-1..8) to the agent assignment plane that together remove the re-assignment churn and livelock that could leave projection agents flapping or wedged.
AssignAgentfloods (#3622)IEventSubscriptionAgent.Failuresurfaces aShardFailure— category, the failing event's sequence and type, and the root exception type — through health checks and a newIWolverineObserver.AgentPausedhook plus aNodeRecordType.AgentPausedrecord. Failures bound to a specific event (ApplyEvent,EventSerialization,UnknownEventType) or to two processes racing one shard (ProgressionOutOfOrder) are no longer auto-restarted, since they would die on the identical event every time (#3637, #3638)Durability.AgentStartRetryAttempts/AgentStartRetryDelay, instead of idling a fullCheckAssignmentPeriodafter a startup race (#3519)FindAgentUriAsyncoverload (#3647) and a store-awareTryRebuildRegisteredProjectionAsyncoverload (#3618)Bumps JasperFx.Events to 2.36.1, Marten to 9.20.0 and Polecat to 5.7.0.
HTTP
Content-Typeon an[AcceptsContentType]route returns 415 rather than 404 (#3649)[AsParameters]endpoints no longer advertise a form body, which had been dropping them from route matching entirely (#3630)PublishMessage<T>andSendMessage<T>— now describe the message they read from the body. They had been advertising no request body at all in OpenAPI (#3646)Transports
ListenToPubsubSubscriptionOnNamedBroker(#3631)EnvelopeMapperreads both timestamp header formats (#3645)EnclosedMessageTypesheader is split before the message type is resolved, so interop works across Azure Service Bus, SNS, SQS and the database transports (#3628)Persistence
DbBatch, so the work splits per statement.Other
Contributors
Thank you to everyone who contributed to this release:
... (truncated)
6.22.0
Wolverine 6.22.0 rolls up the claim-check backend wave, distributed-agent and durability hardening, HTTP/OpenAPI binding fixes, and the Marten 9.18 / JasperFx 2.34 critter-stack alignment.
Dependency alignment
Marten.AspNetCore/Marten.Newtonsoft), Polecat[5.5.0,6.0.0)Claim-check offloading
IClaimCheckStore(#3564)Distributed agents & durability
IHost.ClearAllWolverineStorageAsync()(#3592)EventSubscriptionAgentrestores continuous execution after Rebuild/Rewind (#3520)running_on_node, marten#5001) (#3578)HTTP & OpenAPI
[FromQuery]on arrays/collections instead of misrouting to complex-flattening (#3602)[FromQuery] decimalcorrectly + shape-test OpenAPI parameter description across type families (#3586)[FromQuery]/[FromHeader]parameter twice in OpenAPI (#3586)StreamPaged,StreamPagedByCursor, ETag support (#3593)DbContextparameter as the HTTP request body (#3538)Transports
WolverineFx.Mqtt5package (MQTTnet 5) (#3517)Persistence
RAW(16)Guid correctly (#3581)... (truncated)
Commits viewable in compare view.
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 rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill 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 versionwill 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 dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)