TimeUnit::operator== is nonsense for large numerators and denominators
Categories
(Core :: Audio/Video, defect)
Tracking
()
People
(Reporter: karlt, Assigned: karlt)
References
(Blocks 1 open bug, Regression, )
Details
(Keywords: crash, regression, sec-other, Whiteboard: [adv-main130-])
Attachments
(1 file)
Assignee | ||
Comment 1•3 months ago
|
||
Perhaps 128-bit arithmetic might be useful to make TimeIntervals
more predictable.
Do we ever use bases > 2^32?
If not, 96-bit arithmetic would be sufficient.
Comment 2•3 months ago
|
||
Set release status flags based on info from the regressing bug 1817997
:padenot, since you are the author of the regressor, bug 1817997, could you take a look? Also, could you set the severity field?
For more information, please visit BugBot documentation.
Updated•3 months ago
|
Assignee | ||
Comment 3•3 months ago
•
|
||
If different precision is used in different situations, such as using 53-bit precision floating point sometimes in operator==
and exact arithmetic when its easier, then this can lead to inconsistent results such as a < c when a == b == c.
Assuming denominators are either hard-coded or come from up-to-32-bit fields in media resources, 96-bit fixed point (exact) arithmetic could be sufficient.
Assignee | ||
Comment 4•3 months ago
|
||
When TimeUnit comparisons are between microseconds and tenths of microseconds, the fallback path is used for times greater than 10 days. (2^63/10^6/10^7/60/60/24).
If comparisons are between nanoseconds and tenths of microseconds, then the fallback path is used for times greater than 15 minutes (2^63/10^9/10^7/60).
Bug 1835044 comment 4 indicates that sites can use large start times (53 years).
Assignee | ||
Comment 5•3 months ago
|
||
Downgrading because the Reduce()
operations provide that equal TimeUnit
s return true and unequal TimeUnit
s return true only if they differ only in a unique factor that moves from numerator in one argument to denominator in the other.
Assignee | ||
Updated•3 months ago
|
Assignee | ||
Comment 6•3 months ago
|
||
As well as removing 53-bit precision rounding in >= and <= operators, this
resolves a bug where operator== would sometimes returning true for very
different TimeUnits.
Comment 8•3 months ago
|
||
bugherder |
Comment 9•3 months ago
|
||
The patch landed in nightly and beta is affected.
:karlt, is this bug important enough to require an uplift?
- If yes, please nominate the patch for beta approval.
- If no, please set
status-firefox129
towontfix
.
For more information, please visit BugBot documentation.
Assignee | ||
Comment 10•3 months ago
|
||
I don't know of any particular real life situations hitting this, so i think this is better to have some time to ride the trains.
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Description
•