-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix CI failures on master #288
Conversation
Wow ok, it looks like miri found a legit UB on bitvec and it still hasn't been solved in the latest version... will make an issue/PR upstream. |
Wait, it might be our fault, let me investigate further... |
Can't reproduce the following error locally:
|
@KiChjang do you used the exact same rust version as used by CI? |
Oh, interesting, so I was able to reproduce the error with the rust version in CI (2021-08-13), but it looks like the latest nightly version cannot reproduce the same errors (I have 2021-08-22 installed), so it looks like a nightly update is in order? |
This is now waiting on a resolution for use-ink/ink#897 before a new image can be used by CI. Alternatively, we could provision a new CI image specifically for SCALE, but I don't know the procedures for it nor do I know if that's the best path forward. |
Ok, this is nuts, because I can now reproduce the error with nightly-2021-08-26, which is the version that's being used by CI right now. Are we gonna wait a few days until an appropriate nightly version declares that the tests aren't doing UB operations again? |
I tried to look closer into the miri error. (with using bitvec 0.20.1) First I could reproduce with a smaller test: #[test]
fn bitvec_u64() {
for v in
&[
BitVec::<Msb0, u64>::new(),
bitvec![Msb0, u64; 0],
bitvec![Msb0, u64; 1],
bitvec![Msb0, u64; 0, 0],
bitvec![Msb0, u64; 1, 0],
bitvec![Msb0, u64; 0, 1],
bitvec![Msb0, u64; 1, 1],
bitvec![Msb0, u64; 1, 0, 1],
bitvec![Msb0, u64; 0, 1, 0, 1, 0, 1, 1],
bitvec![Msb0, u64; 0, 1, 0, 1, 0, 1, 1, 0],
bitvec![Msb0, u64; 1, 1, 0, 1, 0, 1, 1, 0, 1],
bitvec![Msb0, u64; 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0],
bitvec![Msb0, u64; 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0],
bitvec![Msb0, u64; 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0],
bitvec![Msb0, u64; 0; 15],
bitvec![Msb0, u64; 1; 16],
bitvec![Msb0, u64; 0; 17],
bitvec![Msb0, u64; 1; 31],
bitvec![Msb0, u64; 0; 32],
bitvec![Msb0, u64; 1; 33],
bitvec![Msb0, u64; 1; 64],
]
{
let encoded = dbg!(v.encode());
let decoded = BitVec::<Msb0, u64>::decode(&mut &encoded[..]).unwrap();
assert_eq!(*v, decoded);
}
} Funny note, removing the Looking further. |
actually upstream is aware of this bug: ferrilab/bitvec#135 |
and seems to be a false positive on miri side: rust-lang/miri#1866 maybe we should just modify the test so it doesn't trigger it? |
I reverted the bitvec bump to 0.22 and rewrote the test so hopefully miri doesn't return the false positive error anymore. PR looks good to me |
I can't merge, @bkchr or someone else will have to do the honors. |
This happens because the latest stable Rust compiler has slightly changed its error message format for proc macros.