Skip to content
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

ztest: pack/bigT mismatch #1963

Closed
behlendorf opened this issue Dec 12, 2013 · 1 comment
Closed

ztest: pack/bigT mismatch #1963

behlendorf opened this issue Dec 12, 2013 · 1 comment
Labels
Component: Test Suite Indicates an issue with the test framework or a test case
Milestone

Comments

@behlendorf
Copy link
Contributor

The following error is periodically observed while running ztest -V.

5 vdevs, 7 datasets, 23 threads, 300 seconds...
Pass   1,  SIGKILL,   0 ENOSPC,  0.3% of  238M used,   4% done,    4m48s to go
ztest: pack/bigT mismatch in 0x7f40b806cc10/0x7f40b80d17f8
child died with signal 6
@behlendorf
Copy link
Contributor Author

This is almost certainly caused by the same root cause described in #1964 .

@behlendorf behlendorf modified the milestones: 0.6.3, 0.6.4 Apr 18, 2014
nedbass added a commit to nedbass/zfs that referenced this issue Apr 18, 2014
Endianness detection in LZ4 is broken in user-space builds.  This
bug corrupts compressed data and manifests itself in several ztest
failures.  When LZ4 was originally ported to Illumos ZFS, the proper
checks for Linux were stripped out. The Linux port then inherited
the remaining detection code that works on Illumos but not on Linux.

The current LZ4 endianness check misuses the condition
defined(__BIG_ENDIAN) to indicate a big-endian system.  On Linux
__BIG_ENDIAN is defined uncondtionally in the user-space header
/usr/include/endian.h, regardless of the endianness of the system.
The kernel does not use this header, so only user-space builds are
affected.

While we could fix this by restoring the upstream LZ4 endianness
detection code, reliable checks already exist in
libspl/include/sys/isa_defs.h. This change uses the libspl results
to replace the word-size and endianness checks in LZ4, simplifying
the code and reducing duplication.

Fixes openzfs#1963
Fixes openzfs#1964
Fixes openzfs#1965

Signed-off-by: Ned Bass <bass6@llnl.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Test Suite Indicates an issue with the test framework or a test case
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant