1. 08 Oct, 2020 1 commit
    • Tim Burke's avatar
      Release 1.6.2 · 9dccbc9f
      Tim Burke authored
      Change-Id: I733c4bcf28d845aa0413ef4af06cdab6bc25cc7b
      9dccbc9f
  2. 02 Oct, 2020 1 commit
    • Kota Tsuyuzaki's avatar
      Add a few coverage for legacy crc code · 15a257e5
      Kota Tsuyuzaki authored
      it actually doesn't assert the value
      becase we now use same if statement
      for the assertion but hope it to be
      even a little better than no covarage.
      
      Change-Id: I8860a2a8227e43e02afddcbad1e108157c0872f6
      15a257e5
  3. 30 Sep, 2020 1 commit
    • Tim Burke's avatar
      Be willing to write fragments with legacy crc · 5626cd57
      Tim Burke authored
      ...if users *really* want to. They opt-in at run time by setting
      
          LIBERASURECODE_WRITE_LEGACY_CRC=1
      
      in the environment; leaving it unset, set to an empty string, or set to
      the string "0" continues to write zlib crcs.
      
      UpgradeImpact
      =============
      This option is intended to allow a smooth upgrade from liberasurecode
      1.5.0 and earlier in a system with multiple readers and writers:
      
        * Before upgrade, ensure the environment variable is set on all nodes.
          This will be ignored by earlier versions.
        * Upgrade liberasurecode on each node in the system, restarting any
          services that use it. Every node continues writing CRCs that are
          still usable by nodes that have not yet upgraded.
        * Now that every node is capable of reading zlib CRCs, remove the
          environment variable from each node to start writing new CRCs.
      
      If you are already using 1.6.0 or later, just upgrade normally.
      
      Closes-Bug: #1886088
      Closes-Bug: #1867937
      Related-Bug: #1666320
      Needed-By: https://review.opendev.org/#/c/739164/
      Change-Id: I9adfbe631a2dddc592fd08f8a325f3e8331b92f1
      5626cd57
  4. 04 Apr, 2020 1 commit
  5. 13 Mar, 2020 1 commit
  6. 11 Mar, 2020 1 commit
    • Tim Burke's avatar
      Reformat license file · b24c23da
      Tim Burke authored
      *Hopefully*, this will make it "standard" enough that GitHub will
      call it out as the BSD-2-Clause that it is.
      
      Change-Id: If097a3d86e1bd22cebbcbc160c6ae238663843c5
      b24c23da
  7. 11 Feb, 2020 1 commit
  8. 06 Feb, 2020 2 commits
    • Pete Zaitcev's avatar
      Do not discard a technical return value in tests · 4568188d
      Pete Zaitcev authored
      Compilers are getting smarter, and we started getting this:
      
      libec_slap.c: In function 'test_hd_code':
      libec_slap.c:285:14: error: 'frags.array' may be used uninitialized
       in this function [-Werror=maybe-uninitialized]
      
      The fix is to consume the error code in such a way that the
      test proceeds further only when frags are indeed initialized.
      
      Change-Id: I54db0172a36419206d00b22608523a08818f41f6
      4568188d
    • Thiago da Silva's avatar
      Build and test on centos-8 node · 4e4995cc
      Thiago da Silva authored
      Change-Id: I6c7a1725ba00981d45511fc3c18795737b1967cb
      4e4995cc
  9. 29 Jan, 2020 1 commit
  10. 02 Jul, 2019 1 commit
  11. 12 Jun, 2019 1 commit
  12. 24 May, 2019 1 commit
  13. 23 May, 2019 1 commit
    • Tim Burke's avatar
      1.6.1 release · 917859e2
      Tim Burke authored
      Change-Id: Iaa6cc5bb06e715aafb3ecab86ae7cde6ef30413d
      917859e2
  14. 19 Apr, 2019 1 commit
  15. 09 Apr, 2019 1 commit
    • Tim Burke's avatar
      Install yasm in RHEL based systems · 7f7edb26
      Tim Burke authored
      ...then switch CentOS job to be a voting gate job instead of
      experimental.
      
      Change-Id: I510e4da82deb779ece9ea5436b63c038a6c25b58
      7f7edb26
  16. 14 Feb, 2019 1 commit
  17. 13 Feb, 2019 2 commits
    • Pete Zaitcev's avatar
      Make our alt crc32 more portable · 7e97b2f8
      Pete Zaitcev authored
      Apparently the author of our old crc32 assumed that shifting an int
      to the right sign-extends, which is not always the case. Result is,
      building and running make test on s390x fails. The fix is to force
      a sign-extension using the "xor 0x80; sub 0x80" trick.
      
      N.B. This does not cause a compatibility problem, because by a
      miracle the "broken" crc32_alt was actually computing a stock
      crc32, same that zlib has. Therefore, if someone, somewhere,
      ran a Swift cluster on s390x with erasure coding policy,
      the data in it is already stored with zlib checksums, as we
      do it now anyway. This fix only permits the tests pass, which
      used the bad data sample from x86.
      
      Change-Id: Ibd5e4e6c02be00540a9648cc7e0f8efda275bf3f
      Related-Change: Ib5ea2a830c7c23d66bf2ca404a3eb84ad00c5bc5
      Related-Bug: 1666320
      7e97b2f8
    • Pete Zaitcev's avatar
      Remove get_chksum to hush warnings · 3564b711
      Pete Zaitcev authored
      This popped up because Fedora mandates warning-free builds,
      and get_chksum triggers a warning because it returns an
      unaligned pointer (it is so analigned, static analysis in
      the compiler can detect it).
      
      The easiest fix is to remove it altogether. We think it should
      be safe, because:
      
       - The function is not listed in any headers
       - Its counterpart is called "set_checksum", not "set_chksum"
       - PyECLib does not use it
      
      We also hush some doxygen warnings about wrong comments.
      
      Change-Id: Ie5bc736f912706e0ffd507765abd24e7f4761233
      3564b711
  18. 22 Oct, 2018 2 commits
  19. 01 Oct, 2018 1 commit
  20. 21 Sep, 2018 1 commit
  21. 12 Sep, 2018 1 commit
    • Tim Burke's avatar
      Allow reading of little-endian frags on big-endian · 7b547e0e
      Tim Burke authored
      ... and vice-versa. We'll fix up frag header values for our output
      parameter from liberasurecode_get_fragment_metadata but otherwise
      avoid manipulating the in-memory fragment much.
      
      Change-Id: Idd6833bdea60e27c9a0148ee28b4a2c1070be148
      7b547e0e
  22. 01 Mar, 2018 1 commit
    • Andreas Jaeger's avatar
      Import Zuul unittests · 72af842b
      Andreas Jaeger authored
      Add the unittests in-tree and convert them as Zuul v3 native tests so
      that they can be modified locally.
      
      This adds a new job running on Ubuntu and an experimental CentOS-7 one.
      
      Change-Id: Ib43e40280411623fda84f2068958b64a17cdc3dc
      72af842b
  23. 13 Sep, 2017 10 commits
  24. 13 Jul, 2017 4 commits
    • Tim Burke's avatar
      Add dl to pkg-config metadata · b5ad3290
      Tim Burke authored
      This simplifies compiling by allowing users to include
      
         CFLAGS += `pkg-config --cflags erasurecode-1`
         LDFLAGS += `pkg-config --libs erasurecode-1`
      
      in makefiles. Otherwise, trying to use pkg-config results in errors like
      
         /usr/local/lib/liberasurecode.so: undefined reference to `dlopen'
         /usr/local/lib/liberasurecode.so: undefined reference to `dlclose'
         /usr/local/lib/liberasurecode.so: undefined reference to `dlerror'
         /usr/local/lib/liberasurecode.so: undefined reference to `dlsym'
         collect2: error: ld returned 1 exit status
      
      Change-Id: I39fb137b1a3b6b2beda1d0b28faef3132229ec3b
      b5ad3290
    • Tim Burke's avatar
      Use preprocessor to build test suites · f4a16fe9
      Tim Burke authored
      Otherwise, we're left with error-prone copy & pasting, which means we'll
      constantly be cleaning it up.
      
      Change-Id: I57e2cbef2c9221cffccf2e73b6af9bd003c04968
      Related-Change: Ibd72ba4ae609ad77e8808aa1594b0adb62e34ef0
      Related-Change: I9ee9ec3d8f86a10c4c7b5d6425a530b9c44d1156
      f4a16fe9
    • Tim Burke's avatar
      Use more backends in existing tests · 6124e432
      Tim Burke authored
      This allows us to start defining test suites for common capabilities /
      allowed failure modes.
      
      Null Backend:
          test_decode_with_missing_parity
          test_decode_with_missing_multi_parity
      
      Jerasure RS Vand:
          test_decode_with_missing_parity
      
      Jerasure RS Cauchy:
          test_decode_with_missing_parity
      
      ISA-L RS Vand:
          test_decode_with_missing_parity
          test_get_fragment_metadata_crc32
      
      ISA-L RS Cauchy:
          test_decode_with_missing_parity
          test_get_fragment_metadata_crc32
      
      SHSS:
          test_decode_with_missing_parity
          test_get_fragment_metadata_crc32
      
      liberasurecode RS Vand:
          test_decode_with_missing_parity
      
      Change-Id: I9ee9ec3d8f86a10c4c7b5d6425a530b9c44d1156
      6124e432
    • Tim Burke's avatar
      Make test format strings consistent with test function names · 34ff5208
      Tim Burke authored
      * When we specify a particular backend, we don't need to include it in
        the display string; we'll already include it in the output.
      
      * test_destroy_backend_invalid_args shouldn't be reported as
        test_create_backend_invalid_args.
      
      * Consistently include the leading "test_" in the display string.
      
      Change-Id: Ibd72ba4ae609ad77e8808aa1594b0adb62e34ef0
      34ff5208
  25. 06 Jul, 2017 1 commit
    • Tim Burke's avatar
      Un-inline get/set_metatdata_chksum · e426aee9
      Tim Burke authored
      Each was only really used in one place, they had some strange return types,
      and recent versions of clang on OS X would refuse to compile with
      
      erasurecode_helpers.c:531:26: error: taking address of packed member 'metadata_chksum' of
            class or structure 'fragment_header_s' may result in an unaligned pointer value
            [-Werror,-Waddress-of-packed-member]
          return (uint32_t *) &header->metadata_chksum;
                               ^~~~~~~~~~~~~~~~~~~~~~~
      
      We don't really *care* about the pointer; we just want the value!
      
      Change-Id: I8a5e42312948a75f5dd8b23b6f5ccfa7bd22eb1d
      e426aee9