Repository navigation
Polecat 5.49.0 moves to JasperFx 2.100.1 and Weasel 9.49.0, and closes two isolation and data-loss gaps around values that SQL Server's varchar columns cannot hold.
Behaviour change
A value a varchar column can't hold is now refused, not silently changed (#922). Before, a tenant id outside the database's code page (any non-ASCII tenant id on a default collation) was stored as ??. Two such tenants then collapsed into one and could read each other's documents.
- Tenant ids: a tenant id that the
varchartenant_idcolumn can't hold now throwsTenantIdOutsideCodePageException, at the moment the tenant is named (ForTenantand session open), so nothing ever runs under the corrupted id. - The other
varcharcolumns:correlation_id, DCB tag values anddotnet_type/doc_typeare refused the same way, withColumnValueOutsideCodePageException. Before, a tag query for東京also returned大阪's events. - Unchanged: ASCII tenant ids, which covers almost every application, behave as before. Widening these columns to
nvarcharis a schema change, so it waits for a major version.
Fixes
- Released-ordinal reuse: reusing a released tenant partition ordinal no longer collides on the primary key (#922).
- A faulted shard can't be missed: JasperFx 2.100.1's
CatchUpAsyncfix means a daemon catch-up can no longer report success while a shard has faulted (jasperfx#1134, #933). - Tombstoning a stream locks tag version rows in the append phase's order, so a tombstone can't deadlock against a concurrent append (#925).
- Compliance: takes JasperFx 2.100's compliance additions and enrolls the suite inventory (#930).
- Tests: the mismatched-id tests no longer assert a SQL Server defect, which made them fail on CI's servers (#933).
What's Changed
- A tombstone locks tag version rows in the append phase's order (#925) by @jeremydmiller in #928
- Take the JasperFx 2.100 compliance additions (#930) by @jeremydmiller in #931
- Release 5.49.0 by @jeremydmiller in #932
- Stop the mismatched-id tests asserting a SQL Server defect (#933, part) by @jeremydmiller in #934
- Refuse a tenant id the varchar tenant_id column can't hold (#922) by @jeremydmiller in #929
- Take JasperFx 2.100.1 so CatchUpAsync cannot miss a faulted shard (#933) by @jeremydmiller in #937
- Finish #922: refuse a bad tenant id when it is named, fix released-ordinal reuse, cover the other varchar columns by @jeremydmiller in #936
Full Changelog: v5.48.0...v5.49.0