Commit ca1bbc9
fix: bump msgpackr to 1.12.1 (two-byte over-cap record corruption + recovery)
msgpackr's two-byte record path (used when maxOwnStructures + maxSharedStructures
> 64; harper's primary stores set maxOwnStructures=256) mis-read self-contained
over-cap record definitions: recordDefinition went through a second-byte reader
that consumed the first value byte as a phantom high byte, yielding a bogus,
never-defined record id -> "Record id is not defined for N". Any high-cardinality
table (e.g. undeclared dynamic attributes) writing records past the shared cap
produced undecodable records — on both the typed default and the
randomAccessFields=false opt-out.
msgpackr 1.12.1 fixes this on the read path only (the encoder is unchanged), so
the bump both stops new corruption AND recovers records already written by
v5.0.29 (their bytes were always correct, only the read was wrong). Keeps
maxOwnStructures=256 (the read fix makes two-byte correct again; 256 shares
moderate-cardinality shapes ~30% more compactly than a one-byte cap of 32).
Adds a regression test that writes 3000 distinct shapes through a shared store
and asserts every record decodes, on both the typed and readOnlyStructures paths
(fails against 1.12.0, passes against 1.12.1).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent cd7962a commit ca1bbc9
3 files changed
Lines changed: 47 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
205 | 205 | | |
206 | 206 | | |
207 | 207 | | |
208 | | - | |
| 208 | + | |
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
0 commit comments