在 Webapp 事件存储器中流出 OTLP 纳秒分时戳

作者: nicktrn创建于 2026年3月29日更新于 2026年9月9日
标签bug

Webapp 中的几个地方将 epoch 毫秒乘以 1000000 **之前** 转换为 BigInt,这会导致 IEEE 754 精度损失(大约 256ns 的误差,约占 0.2% 的情况)。结果超过 `Number.MAX_SAFE_INTEGER`(约为 9e15),因为 epoch-ms * 1e6 约为 1.7e18。正确的模式是 `BigInt(ms) * BigInt(1_000_000)`(在 BigInt 转换后进行乘法)。此模式已存在于同一文件中的 `convertDateToNanoseconds()` 中 - 这些有 bug 的函数只是没有使用它。

内容来源: triggerdotdev/trigger.dev