indexmap-rs/indexmap

ICE from indexmap or its dependency hashbrown

Closed this issue · 4 comments

I believe this ICE (rust-lang/rust#110230) is ultimately caused by indexmap or its dependency hashbrown.

bluss commented

Now I haven't dug into this deeply, but it seems on the surface to be much more likely it's really an invalid index and it's a bug in Rustc - is there any particular evidence that it's a bug in indexmap?

Mostly it is how sensitive this ICE is to pretty much any character insertion or deletion which I cannot explain, except when I assume there is some rare condition which causes hashbrown or indexmap to mangle some bits. Of course there may well be another explanation which I cannot see. The indexmap/hashbrown rabbit hole goes a bit too deep for me at the moment to investigate further, which is why I opened this issue, hoping to catch your interest. But if you think I am off base, then feel free to close.

We can keep this open with an eye on the Rust issue for now, but it would be really surprising. Index<usize> for IndexMap accesses data in its entries: Vec, without touching its hashbrown table at all. If we lost a valid index, that would mean that we somehow removed entries that we shouldn't have.

The Rust issue is closed as fixed. If there's any more evidence of a big in indexmap, please let us know!