A binary field has no pin, so an Aria header clock is reported as a real difference #13
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Keel-Linux/buildtasks#13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
bt-layer-measurepins a text difference by measuring the controls: at aposition they vary, the free region between their common prefix and suffix must
be one length, within a cap, and in the character class they used there. A
binary gets no such pin, because bytes carry no shape, so a coincidence in
position and magnitude is
overlappingand has to be cleared by hand.The mariadb gate run of 2026-09-28 shows what that costs. 32 of 167 differing
state paths come out
real, almost all*.MAI, and the reason is one field.Bytes 180 to 183 of an Aria index header, one based, are a four byte big endian
integer:
1790574106902134 / 10^6is1790574106, and that numerator isuser.frm'smicrosecond timestamp in the same directory, so the field is a wall clock
Unix second and
SOURCE_DATE_EPOCHdoes not touch it. It moves in everybuild, and the unit's value crossed into byte 181 where the three controls had
not, so it differs outside the floor.
More control captures cannot fix this. Byte 181 carries every 2^16 s, 18.2
hours; builds are about 160 s apart, so two consecutive controls straddle it
with probability about 0.24 percent and an expected single crossing needs on
the order of 410 consecutive control builds. Byte 180 carries every 2^24 s, 194
days. For any finite control set there is always a higher byte that did not
carry inside the window, and the spread required grows by 256 per byte. The
pull request that adds the tool says so, and says not to ask the build host for
more controls on this account.
Expected: the pin the tool already has for text, applied to a binary field. At
a run of differing offsets, read the enclosing fixed width big endian integer
and admit it only when all four hold:
own steps, 158 to 172 in the run above;
Every one of those is a measurement of the controls rather than an inference
about the unit, which is the standard the free region pin already meets, and it
is stricter than downgrading any monotone run, which was declined for being
inference. Under it the field above is
noiselegitimately, since 1790574596beats 1790574436 by 160, and a planted value fails on the step range or on
failing to continue the sequence.
Not in Keel-Linux/buildtasks#11 on purpose. That pull request adds the
instrument and publishes its first measurement honestly, 32 paths recorded as
an open item pointing here, and no waiver written over them, which the tool
refuses in any case because a waiver only ever clears
overlapping. Landing anew inference rule in the same change as the instrument, in order to make the
instrument's first subject pass, is how the defect that pull request exists to
fix came about.