summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Ensure ec backends can actually be loaded.James Page2015-11-147-7/+7
| | | | | | | Use the actual soname rather than the fully unversioned name, ensuring that systems that don't have -dev packages actually work. Signed-off-by: James Page <james.page@ubuntu.com>
* Release 1.1.0v1.1.0Tushar Gohad2015-10-201-1/+1
|
* Split helpers.h include for backward compatibilityTushar Gohad2015-09-229-0/+9
| | | | | | | 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.
* Eliminate erasurecode_stdinc.h dependency on log.hTushar Gohad2015-09-183-0/+5
|
* Fixing Issue #19 by stubbing out Jerasures uninit function.Kevin Greenan2015-09-121-0/+15
| | | | | | | | | | If the underlying jerasure implementation is old (pre-jerasure.org), then it will not contain an uninit function for the underlying GF object. Since this is only used in alg_sig, which is not used by anything else at the moment, we stub it out if it does not exist. Once we make the change to have alg_sig use the internal GF functions, this whole problem goes away.
* Release 1.0.9v1.0.9Tushar Gohad2015-09-061-1/+1
|
* Enforce the (k + m < 32) limit, add unit testsKota Tsuyuzaki2015-08-181-0/+6
|
* Release 1.0.8v1.0.8Tushar Gohad2015-07-201-1/+2
|
* Rename remaining INTERNAL_RS_VAND instancesTushar Gohad2015-07-201-14/+14
| | | | ... to LIBERASURECODE_RS_VAND
* This fixes a bug discovered when passing a new insufficient fragments exceptionKevin Greenan2015-07-121-1/+1
| | | | | | | | | | up through Python. The code that preprocesses decoded fragments to see if it can simply concat the data fragments instead of decodeing was not properly deduping fragments, which leads to a failed assertion. This properly dedups fragments in the fragments_to_string function.
* This will prevent the backends from reconstructing a specific index, when it issimilar_to_issue_63Kevin Greenan2015-06-231-0/+29
| | | | | | | specified as "available" by the caller. I feel that only buggy code would do this... NOTE: In the future, we should return an error when this happens.
* Add liberasurecode_rs_vand backend to cleanfiles listTushar Gohad2015-06-221-1/+2
|
* Rename liberasurecode_rsvand -> liberasurecode_rs_vandliberasurecode_rs_vand-renameTushar Gohad2015-06-223-9/+9
|
* Rename rs_vand_internal to liberasurecode_rs_vandTushar Gohad2015-06-225-86/+86
|
* Properly set W in the new internal RS backend. Without this, the fragment ↵new_commits_for_1_0_8Kevin Greenan2015-06-181-1/+1
| | | | | | length passed up is incorrect.
* Remove excessive header install in src/Makefile.amKevin Greenan2015-06-181-6/+0
|
* Fix 'make test' to properly run null and installed backend tests.Kevin Greenan2015-06-181-0/+1
|
* Plugging new internal RS backend into liberasurecode.Kevin Greenan2015-06-183-0/+315
|
* Adding new built-in backend for RS VandermondeKevin Greenan2015-06-184-2/+668
| | | | This is meant to be used in cases where ISA-L and Jerasure cannot be used.
* This fixed the memory leak mentioned in Issue #12:Kevin Greenan2015-04-271-1/+20
| | | | https://bitbucket.org/tsg-/liberasurecode/issue/12/make-valgrind-test-fails
* This is the fix for Issue #13:Kevin Greenan2015-04-272-3/+17
| | | | | | | | | | | | | | 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)
* v1.0.7v1.0.7Tushar Gohad2015-04-151-1/+1
|
* Adding a new HD XOR code for k=3, m=3, hd=3Kevin Greenan2015-04-091-0/+2
| | | | | | 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).
* Merged in fix-metadata-check (pull request #13)Tushar Gohad2015-03-302-4/+4
|\ | | | | | | fix-metadata-check from Kota
| * Fix invalid metadata handlingKota Tsuyuzaki2015-03-302-4/+4
| | | | | | | | | | | | | | | | | | 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.
* | Fix nasty rebuild bug where partiy would be reconstructed incorrectlyKevin Greenan2015-03-302-44/+72
|/ | | | | | | | 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.
* Sanitize fragments_to_string() errorcodes, add tests for frags w/o fmetadataTushar Gohad2015-03-282-9/+12
| | | | Addresses issue#10
* Fixing bug where non-Intel platforms fail to compile due to SSE2-specific ↵Kevin Greenan2015-03-171-0/+2
| | | | | | header in the xor-encoder. FWIW, we did conditional compilation in the body of the code, but missed the header include.
* v1.0.5v1.0.5Tushar Gohad2015-03-131-1/+1
|
* Log to syslog and stderr by defaultTushar Gohad2015-03-131-1/+1
|
* v1.0.4v1.0.4Tushar Gohad2015-03-111-1/+1
|
* Reallow 0 byte encodesTushar Gohad2015-03-111-6/+0
|
* Use enum value when handling shssKota Tsuyuzaki2015-03-091-1/+1
|
* Fix memory leak by alloc internal_payloadKota Tsuyuzaki2015-03-091-12/+14
| | | | | | shss always needs to decode but fragments_to_string will alloc internal_payload as a decoded data. It causes duplicated memory allocation and memory leak.
* Fix so version to be 1.0.1 (was 0.9.10)v1.0.1Tushar Gohad2015-03-081-1/+1
|
* Improve error code returnsTushar Gohad2015-03-082-17/+21
|
* Add md5sum implementationTushar Gohad2015-03-081-0/+295
|
* Apply EINSUFFFRAGS to reconstructKota Tsuyuzaki2015-03-061-1/+1
|
* Rename metadata_adder on backend_commonKota Tsuyuzaki2015-03-059-9/+9
| | | | This patch renames the "metadata_adder" variable to "backend_metadata_size"
* Rename frag_adder_sizeKota Tsuyuzaki2015-03-052-8/+8
| | | | | | | | This patch renames following variables and functions: - frag_adder_size -> frag_backend_metadata_size - set_fragment_adder_size() -> set_fragment_backend_metadata_size() - get_fragment_adder_size() -> get_fragment_backend_metadata_size()
* Fix segmentation_fault on shss with no priv_argsmetadata_adder_new_patches2Kota Tsuyuzaki2015-02-271-1/+6
|
* Fix isa-l backend to use correct word sizeKota Tsuyuzaki2015-02-271-1/+3
|
* Add liberasurecode_get_fragment_size functionKota Tsuyuzaki2015-02-271-0/+10
| | | | | | | | | | | | | | | For get_segment_info function of PyECLib, liberasurecode should support get_fragment_size function because if pyeclib and liberasurecode have the calculation of fragment size each other, it might cause the size mismatch (i.e. it'll be a bug) in the future development work. This patch introduces liberasurecode_get_fragment_size function to return the fragment_size calculated at liberasurecode accoring to specified backend descriptor. It really usefull to help caller knows how large size it have to expect and all pyeclib has to do for retrieving fragment_size will be just calling the liberasurecode_get_fragment_size function on get_segment_info.
* Fix small thingsKota Tsuyuzaki2015-02-271-12/+7
| | | | | | | | 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
* Enable to get fragment_len includes metadata_adderKota Tsuyuzaki2015-02-274-29/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Move backend metadata adding to fragment allocationKota Tsuyuzaki2015-02-273-13/+20
| | | | | | | | | | | | | | On the first consideration[1], metadata_adder is defined as a extra byte size for "each" fragment. However, current implementation is an element affects to data_len. (i.e. aligned_data_size for original segment data) We should make metadata_adder to be a fixed value against to each fragment, otherwise the extra bytes for the fragments will have flexible length depends on "K". It will be quite complex for backend implementation to know "How large bytes the raw data size is", "How large bytes the backend could use as extra bytes for each fragment". 1: https://bitbucket.org/tsg-/liberasurecode/commits/032b57d9b1c7aadc547fccbacf88af786c9067e7?at=master
* Ensure fragment pointers passed to cleanupKota Tsuyuzaki2015-02-272-1/+24
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix get_fragment_partition return valueKota Tsuyuzaki2015-02-271-2/+3
| | | | | | | | 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.
* Fix shss to instantiate backend discriptorKota Tsuyuzaki2015-02-261-14/+24
|
* Fix isa_l backend source filename (botched during 'shss' backend merge)Tushar Gohad2015-02-251-1/+1
| | | | Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>