| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This reverts commit a6a8d2018d50068f1177ba9f826518b003dc5917.
|
| |
|
|
|
|
|
|
|
| |
Uses dlopen to check if a backend is present. This may be used by
consumers who need to check which backends are present on a system.
Issue #23
|
| |
|
|
|
|
| |
... also add related test code
|
| |
|
|
|
|
|
|
|
| |
Users of liberasurecode <= 1.0.7 used alloc/free helpers
(which they shouldn't have). This change is to make sure
we are still able to those older revs of programs and they
work with newer liberasurecode.
|
| |
|
|
|
|
| |
... to LIBERASURECODE_RS_VAND
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also add -Wall for future builds
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://bitbucket.org/tsg-/liberasurecode/issue/13/decode-fails-for-many-cases-when-m-k
This fix includes:
1.) Proper buffer allocation for the 'missing_idxs' structure, which was not allocating enough
space when k > m.
2.) Checks to use header fields of parity fragments during decode when *no* data fragments
are available.
3.) Fixed the unit tests to properly handle the case where k <= m.
4.) Extended the unit test framework to support multiple tests per backend
5.) Added tests for all RS implementations: (4,8), (4,4), (10,10)
|
|
|
|
|
|
| |
Also added additional test to test_xor_code to do an exhaustive decode test
(all possible 1 and 2 disk failures) and changed teh default liberasurecode
test to test (3, 3, 3).
|
|\
| |
| |
| | |
fix-metadata-check from Kota
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On the current code, get_fragment_partition might touch the
invlid memory area with minus index (that means a invalid header)
and it causes segmentation fault.
This fixes it to handle the minus index as a EBADHEADER and then
no segmentaition fault appeared on the case.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fedora packaging rules require ./configure --disable-static.
However, that ends with:
../src/.libs/liberasurecode.so: undefined reference to `dlopen'
The fix is to add a missing -ldl into flags of test_xor_hd_code.
|
|/
|
|
|
|
|
|
| |
when both data and parity was missing. The fix is to just call decode
when reconstructing parity, since it will have to do extra work anyway
when data is missing. We did a little extra work in ISA-L to do better,
but can save that for later, since 99% of the time decode will perform just
fine.
|
|
|
|
| |
Addresses issue#10
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Without these checks, backend libraries not being available
is causing errors like in tests that are missing these checks:
$ make test
[snip]
ok 1 - test_create_backend_invalid_args: UNKNOWN
lt-liberasurecode_test: liberasurecode_test.c:276: test_destroy_backend_invalid_args: Assertion `desc > 0' failed. make: *** [test] Aborted (core dumped)
Closes issue #6
|
| |
|
| |
|
| |
|
|
|
|
| |
This patch renames the "metadata_adder" variable to "backend_metadata_size"
|
|
|
|
|
|
|
|
| |
Small fixes as follows:
- Add is_compatible_with function into shss backend
- Remove encoded data check against to shss at liberasurecode_test.c
- Decrease metadata_adder size on shss backend to be correct fixed value
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch allows to get correct fragment size includes metadata_adder.
Current implementaion automatically allocates extra bytes for the metadata_adder
in alloc_buffer, and then, no information about the extra bytes will be returned
to the api caller side. It's too confusable because callers couldn't know how size they
assumes as the fragment size.
To be easy to find out the size infomation, this patch adds "frag_adder_size"
variable into fragment metadata and also some functions to get fragment size.
The definitions of these size infomation are here,
fragment_meta:
- size-> raw data size used to encode/fragment_to_string
- frag_adder_size-> metadata_adder of backend specification
And the definitions of functions are here,
- get_fragment_size:
-> return sizeof(fragument_header) + size + frag_adder_size
- get_fragment_buffer_size:
-> return size + frag_adder_size
- get_fragment_payload_size:
-> return size
By using these function above, users could get the size information
directly from fragments. It results in enabling to return fragment_len
to the caller side easily.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch achieves a couple of things as follows:
- Undoing the liberasurecode_encode_cleanup specification to
expect "fragment" pointers as its arguments.
- Ensuring liberasurecode_encode to pass "fratment" pointers to
liberasurecode_encode_cleanup.
liberasurecode_encode_cleanup is used also in pyeclib so that
it is expected that the argument pointers (i.e. encoded_data and
encoded_parity) should be the collection of the heads of "fragment"
pointers.
However, when the backend encode fails, liberasurecode keeps "data"
pointers behind of fragment_header, and then, goes to "out:" statement
to cleanup its memories. It causes invalid pointer failure.
This patch adds a translation function from "data" pointers to "fragment"
pointers and ensure liberasurecode_encode to pass correct pointers to
libersurecode_encode_cleanup.
|
|
|
|
|
|
|
|
| |
When num_missing is over than the num of parities (i.e. > m),
get_fragment_partition should return -1 as an error code.
This patch fixes it and adds a test called "test_get_fragment_partition"
into liberasurecode_test.c.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This introduces a new plug-able backend called "shss" made by
Nippon Telegraph and Telephone corporation (NTT).
Note that this produces a just plug-in to shss erasure coding binary
so that users have to install a shss binary (i.e. libshss.so) aside from
liberasurecode when using shss.
Please contact us if you are insterested in the NTT backend (welcome!):
Kota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>
Co-Author: Ryuta Kon <kon.ryuta@po.ntts.co.jp>
|
|
|
|
| |
Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
|
|
|
|
|
| |
tests to a 'fragment verify' test, since it is using is_valid_fragment and
and validating fragment headers, not stripe-level.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
|
|
|
|
| |
little clean-up, but the tests are passing...
|
|
|
|
| |
elements of the ec_backend_id_t enum.
|
|
|
|
|
|
|
| |
opposed to -1, when it can not locate the specified backend (-1
was a non-sensical return value since the function signature
called for a type of ec_backend_id_t). NOTE: with this change we
now successfully build and tests pass on OS X with clang.
|
|
|
|
| |
not being placed into the fragment header).
|
|
|
|
| |
supporting checksums at the moment).
|
| |
|
| |
|
|
|
|
| |
existing warnings.
|
| |
|