-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
ppc64/s390x assertion failed: eps.windows(2).all(|w| w[0].cmp(self, &w[1]) != Ordering::Greater)
#38891
Comments
This looks the same as or similar to #38177 which was marked fixed last month. |
I'm also experiencing this on an arch-i686 machine. There's no graphical environment installed on the machine yet, so it's difficult for me to post a backtrace from it. |
I am quite sure this is fixed in i686 - are you using the latest nightly? |
Ah, just realize my build was being pinned to |
Just to stay in sync, I updated my ppc64 and it still fails. However, ppc64le is fine, so perhaps there are some little-endian assumptions lingering after the #38177 fix? BAD:
GOOD:
|
This also fails the same way on s390x, so it seems pretty likely to be an endianness issue.
|
assertion failed: eps.windows(2).all(|w| w[0].cmp(self, &w[1]) != Ordering::Greater)
assertion failed: eps.windows(2).all(|w| w[0].cmp(self, &w[1]) != Ordering::Greater)
Like many hash functions, the blake2 hash is mathematically defined on a sequence of 64-bit words. As Rust's hash interface operates on sequences of octets, some encoding must be used to bridge that difference. The Blake2 RFC (RFC 7693) specifies that: Byte (octet) streams are interpreted as words in little-endian order, with the least-significant byte first. So use that encoding consistently. Fixes rust-lang#38891.
Use little-endian encoding for Blake2 hashing on all architectures Like many hash functions, the blake2 hash is mathematically defined on a sequence of 64-bit words. As Rust's hash interface operates on sequences of octets, some encoding must be used to bridge that difference. The Blake2 RFC (RFC 7693) specifies that: ``` Byte (octet) streams are interpreted as words in little-endian order, with the least-significant byte first. ``` So use that encoding consistently. Fixes #38891. Beta-nominating since this is a regression since 1.15. r? @michaelwoerister
Like many hash functions, the blake2 hash is mathematically defined on a sequence of 64-bit words. As Rust's hash interface operates on sequences of octets, some encoding must be used to bridge that difference. The Blake2 RFC (RFC 7693) specifies that: Byte (octet) streams are interpreted as words in little-endian order, with the least-significant byte first. So use that encoding consistently. Fixes rust-lang#38891.
While looking into #37996 on Fedora 25 ppc64, I hit a rustc assertion building rust-encoding. The same nightly version is fine on Fedora 25 x86_64. Stable and beta ppc64 are also fine, barring the linker problems from that former issue.
Here's the backtrace from the first occurrence:
The text was updated successfully, but these errors were encountered: