Hi jerry

we met the similar issue with  HBASE-12949, I guess compaction thread is in
the endless loop, because the CPU load is quite higher than usual.

However, I can not understand why KeyValueHeap.generalizedSeek() has a
endless loop,  from the codes:

      boolean seekResult;
      if (isLazy && heap.size() > 0) {
        // If there is only one scanner left, we don't do lazy seek.
        seekResult = scanner.requestSeek(seekKey, forward, useBloom);
      } else {
        seekResult = NonLazyKeyValueScanner.doRealSeek(
            scanner, seekKey, forward);
      }

      if (!seekResult) {
        scanner.close();
      } else {
        heap.add(scanner);
      }

If there is an infinite loop, that means seekResult will always return
true, why is it possible?  what happen if the seek reaches end?

Tnanks
Chang

Reply via email to