Bump WolverineFx from 6.28.0 to 6.28.2 - #2271
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
--- updated-dependencies: - dependency-name: WolverineFx dependency-version: 6.28.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
|
Superseded by #2273. |
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.28.0 to 6.28.2.
Release notes
Sourced from WolverineFx's releases.
6.28.2
A bug fix release, with one new opt-in on the RabbitMQ listener contributed by the community.
Store agnostic document sessions
A handler can now take the
JasperFx.Events.Documentscontracts —IDocumentSessionOperations,IDocumentWriteOperations,IDocumentReadOperations— straight as parameters, and they bind and commit on Marten, Polecat and Fisher alike (#3962, closes #3956):These are the document side counterparts to the
IEventOperationscontracts Wolverine already understood, and they are the only way store agnostic source can take a session without naming a concrete store type.Before this, such a handler failed codegen outright on a stock host. Once bound, its writes were queued into the session's unit of work and silently discarded — no exception. Both halves are fixed.
Durability agents no longer assigned to nodes that cannot run them
A node started with
Durability.DurabilityAgentEnabled = falsenever registers the durability agent family, so it threwUnrecognized agent scheme 'wolverinedb'the moment the leader handed it one. The leader re-issued the identical assignment every five minutes indefinitely, no durability agent ran anywhere for that store, andowner_id = 0outgoing envelopes were never recovered (#3963, closes #3954).The failure was silent in both directions — every queue table read zero while the backlog grew. Nodes now publish a marker capability when the family is actually registered, the leader skips nodes that have not, and when no node in the cluster is capable a warning names the condition and the setting.
If you run a Balanced cluster with
DurabilityAgentEnabled = falseon any node, this release is worth taking.Ancillary store transaction ownership
Ancillary store inference scanned
chain.ServiceDependencies(), which walks constructor graphs recursively — so a dependency that merely held an ancillary store matched. A read only store injected two hops down counted the same as an injectedDbContext, and a tenant Marten handler had its inbox and dead letters stolen by the wrong store (#3957, closes #3953).That inference was only ever correct for EF Core. There is a new default null
IPersistenceFrameProvider.TryDetermineTransactionOwnerTypefor it, implemented only by EF Core.RabbitMQ
ListenToRabbitQueue("orders").DrainWaitForPrefetch()to let already prefetched messages finish rather than letting the broker requeue them.StopAsyncis not always terminal, and aBatchingChannelsilently discards a post after completion, so a delivery landing between the drain and the dispose latch vanished and was redelivered.code=541). This narrows the window and speeds recovery; it does not prevent the close, whose root cause is upstream in rabbitmq-dotnet-client.Idle reaper no longer latches durable endpoints
A durable endpoint reached only via
EndpointFor(uri)looked as disposable as an ephemeral reply queue and was reaped; the rebuilt agent then wrapped a disposed sender and latched forever (#3958, closes #3955).SendingAgentIdleTimeouthad no test coverage at all before this.6.28.1
Patch release over 6.28.0.
New package
WolverineFx.Http.Fisher(#3949, closes #3944) — there was aWolverine.Http.Martenand aWolverine.Http.Polecatand no Fisher equivalent, so a Fisher-backed application had nothing to reference for the aggregate/document HTTP attributes. The third flavour now exists alongside its siblings.Fixes
A SQLite "schema name" is now the table name prefix it was documented to be
(#3945, closes #3943)
Setting
FisherIntegration.MessageStorageSchemaName, or theschemaNameargument toPersistMessagesWithSqlite(), reached the message store as aschema.tablequalifier. SQLite has no user-defined schemas — the only names a plain connection knows aremain,temp, and whatever has beenATTACHed — so any value other thanmainemitted SQL against a database that never existed, and the host died on the first envelope write with:The two halves had disagreed all along. Weasel's
SqliteObjectNamedrops the schema from its qualified name, so the DDL had been creating a barewolverine_incoming_envelopeswhile the inherited DML asked for a qualified one; themaindefault is the only thing that hid it.The name is now folded into the table names as a prefix — a meaning SQLite can honour, giving several logically separate Wolverine table sets inside one database file:
This covers the envelope, node, control queue, tenant, listener and saga tables, plus the dead-letter index names, since SQLite shares one identifier namespace between tables and indexes.
No migration.
mainis the default and prefixes nothing, so every database provisioned before this release keeps its existingwolverine_*names. Only hosts that explicitly set a non-mainname see different table names — and those hosts could not start at all before this fix. Postgres, SQL Server, MySQL and Oracle render exactly as before.FisherIntegration.TransportSchemaNameis now documented as what it has always been on a Fisher host: inert. Tracked in #3947.Polecat unwraps
Nullable<T>when determining an aggregate's id type(#3948, closes #3942) Marten and Polecat disagreed for an aggregate whose id property is nullable: Polecat answered
Nullable<T>verbatim, which is not a primitive id type, so the documentedIdentifiedBy<T>escape hatch was skipped entirely. The two stores now agree.Dependencies
Fisher 0.7.0 (#3946) — the package floor moves from 0.6.0 to 0.7.0. Note that Fisher 0.7.0 bundles
JasperFx.Events.SourceGeneratorinside its own nupkg, as Polecat already does. A project that also references that generator explicitly will get two analyzer instances and aCS0433duplicate-type error until one copy is removed.Full changelog: JasperFx/wolverine@V6.28.0...V6.28.1
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)