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

Upgrade liberasurecode 1.5.0 -> 1.6.1 #14

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

koba-e964
Copy link
Member

@koba-e964 koba-e964 commented Jul 8, 2019

Resolves #13.

Probably this PR needs to wait until #12 is merged.

@koba-e964
Copy link
Member Author

Build cache images are too old. I'll delete them and re-run.

@koba-e964 koba-e964 force-pushed the feature/upgrade-liberasurecode-to-1.6.1 branch 2 times, most recently from 018cc07 to 52bee40 Compare July 8, 2019 08:27
@koba-e964 koba-e964 force-pushed the feature/upgrade-liberasurecode-to-1.6.1 branch from 52bee40 to 116f713 Compare July 8, 2019 08:31
@yoffy
Copy link
Contributor

yoffy commented Jul 8, 2019

note:
crc32 が zlib のものに変更されており、内部的には互換性が無くなっている。
検査に失敗したら古い crc32 を呼ぶようになっており、外見上は互換性を維持している。
https://github.com/openstack/liberasurecode/compare/1.5.0..1.6.1#diff-0124ae530ee97ecd71667291b748a527R1089

こちらも参照
https://bugs.launchpad.net/liberasurecode/+bug/1666320

Copy link
Contributor

@yoffy yoffy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@koba-e964
Copy link
Member Author

Note: we need to check if frugalos built with this change works correctly.

@koba-e964
Copy link
Member Author

koba-e964 commented Jul 10, 2019

On MacOS High Sierra (10.13.6):

$ otool -L target/debug/frugalos
target/debug/frugalos:
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
        /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 58286.70.14)
        /usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
$ rustc --version
rustc 1.35.0 (3c235d560 2019-05-20)
$ cargo --version
cargo 1.35.0 (6f3e9c367 2019-04-04)

On Linux (CentOS 7):

[vagrant@localhost frugalos]$ ldd target/release/frugalos
	linux-vdso.so.1 =>  (0x00007ffeb7df1000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc6c21bc000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fc6c1fb8000)
	librt.so.1 => /lib64/librt.so.1 (0x00007fc6c1db0000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc6c1b9a000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fc6c17cd000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc6c3972000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fc6c14cb000)
[vagrant@localhost frugalos]$ rustc --version
rustc 1.35.0 (3c235d560 2019-05-20)
[vagrant@localhost frugalos]$ cargo --version
cargo 1.35.0 (6f3e9c367 2019-04-04)

Seems ok 😁

@koba-e964
Copy link
Member Author

Note: fragments made in the old version and in the new version differ, because crc32's implementation changed.
However, fragments made in the old version can still be readable from the new version, because openstack/liberasurecode handles this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update liberasurecode 1.5.0 -> 1.6.1
3 participants