Open utterances-bot opened 3 years ago
Polkadot 那件事稍微看了下,帮后来的总结一下,是因为 Polkadot 自己因为某些问题 OOM,所以退回了一个版本,但前后两个版本使用的 Rust 版本不一致,这两个版本在一个 binary_search 方法实现上有区别,会导致“当数列有重复数据时,且查找的是重复数据的索引”时,返回的索引两个版本不一致。这个“不一致”的现象在 binary_search 文档中明确指出了(另外 C 语言、Java 语言和 C# 相同的 api 都也指出了这个约束)
然后就是 Polkadot 本身用了 binary_search ,并且依赖 binary_search 在有重复数据时给出的索引,所以退回版本后拿到的索引不一致,出了问题
Rust 官方认为文档里写清楚了,下游不应该依赖重复数据时选的索引,所以这不是个 Bug。
改进了 binary_search 的兄弟 Twitter 上说,这是中了 Hyrum's Law,好像还真有点这意思
@Warkeeper 原来如此,我还以为是 binary_search 的变动导致了 OOM
Weekly #12
Weekly #12
《Rams》 -工业设计传奇设计师 迪特.拉姆斯 2018 纪录片(附中文字幕)
https://fpt.ink/weekly/12