-
Notifications
You must be signed in to change notification settings - Fork 29.9k
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
zlib brotli fails unit tests #25568
Comments
@AdamMajer Can you check whether other brotli compressors yield the same result on this machine (e.g. the Python one in https://github.com/google/brotli aka |
Is that really i586? No SSE2, etc.? That's not a supported (let alone tested) configuration. I'm surprised it even builds. |
As there's been no follow-up, and because it looks like an unsupported configuration, I'm going to close out the issue. Let me know if I should reopen. |
Don't close it. This is not "unsupported configuration." It's running on a modern CPU and passes all the unit tests except for this one. I just didn't have time yet to reproduce the problem with the For example, this test fails in a 32-bit chroot (so no VM) on a Xeon E5-1620. |
Fwiw, we could also just skip this particular test or allow two different outputs (as long as they decompress to the same result). My request for checking another implementation is that it’s pretty uncommon for compressions algorithms to yield machine-dependent results? |
Ok, I've looked at the actual test now 😊 I think it was a little naive to assume that each machine will result in same output. Consider padding. But we should always get same output. I'll make a quick patch that I think will satisfy everyone here. |
Basically, on 32-bit x86, the compressed string is 1 byte shorter than the provided version. Of course, the 64-bit compressed string still decompresses correctly. The slightly modified test just verifies both. I wonder if I should include the 32-bit compressed buffer as an alternative to test decompression on 64-bit machines? 😄 |
On different architectures, it's possible for the compression algorithm to produce slightly different outputs. So, don't assume we will always get the same compressed output on all architectures. Instead, verify that the decompressing pre-compressed string functions correctly. Fixes: nodejs#25568
Can you elaborate on what 'i586' means? gcc with I thought that was the difference between opensuse's i586 and i686 flavors and the former is not a configuration we support (or even expect to work.) |
If you look in the logs, v8 is compiled with these settings,
So, -m32
openSUSE doesn't really have i586 and i686 flavours anymore. There is only i586 which is 32-bit x86 and it's only available on Tumbleweed now. 32-bit not supported in SLE 15 anymore, for example, but it's good for testing corner cases. Anyway, the point is that all unit tests pass except for this one. It seems to related to 1 byte difference in compressed output of this compression algorithm. |
On different architectures, it's possible for the compression algorithm to produce slightly different outputs. So, don't assume we will always get the same compressed output on all architectures. Instead, verify that the decompressing pre-compressed string functions correctly. Fixes: #25568 PR-URL: #25697 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: James M Snell <[email protected]>
On different architectures, it's possible for the compression algorithm to produce slightly different outputs. So, don't assume we will always get the same compressed output on all architectures. Instead, verify that the decompressing pre-compressed string functions correctly. Fixes: nodejs#25568 PR-URL: nodejs#25697 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: James M Snell <[email protected]>
On different architectures, it's possible for the compression algorithm to produce slightly different outputs. So, don't assume we will always get the same compressed output on all architectures. Instead, verify that the decompressing pre-compressed string functions correctly. Fixes: #25568 Backport-PR-URL: #27681 PR-URL: #25697 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: James M Snell <[email protected]>
On different architectures, it's possible for the compression algorithm to produce slightly different outputs. So, don't assume we will always get the same compressed output on all architectures. Instead, verify that the decompressing pre-compressed string functions correctly. Fixes: #25568 Backport-PR-URL: #27681 PR-URL: #25697 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: James M Snell <[email protected]>
Problem only happens with i586 platform. It's not visible on other architectures. You can see the complete buildlog,
https://build.opensuse.org/public/build/devel:languages:nodejs:staging/openSUSE_Tumbleweed/i586/nodejs11/_log
The text was updated successfully, but these errors were encountered: