Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-58790

RLE in Simple8b fails when using 0 as added

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 5.1.0-rc0
    • Affects Version/s: 5.1.0
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • ALL
    • Hide

      Simple8b s8b;
      763
      764 std::vector<uint64_t> expectedInts(1920, 0);
      765 for(uint32_t i = 0; i < 200; ++i)

      { 766 expectedInts.push_back(2); 767 }

      768 testAppendAndGetAllInts(s8b, expectedInts);

      Show
      Simple8b s8b; 763 764 std::vector<uint64_t> expectedInts(1920, 0); 765 for(uint32_t i = 0; i < 200; ++i) { 766 expectedInts.push_back(2); 767 } 768 testAppendAndGetAllInts(s8b, expectedInts);
    • Execution Team 2021-08-23

      This will fail to even pass just testAppendAndGetAllInts. Im pretty sure it applies to any situation in which we exactly fill up the rle buffer with 0s and then try to add another value that will also use rle. Pretty sure its because we assume 0 as a base but then if the user also adds 0 we get doubled. A simple bugfix would be to never start rle if we haven't at least written one s8b word to buffer. May not be best solution though!

            Assignee:
            jackson.xie@mongodb.com Jackson Xie (Inactive)
            Reporter:
            luke.bhan@mongodb.com Luke Bhan (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: