So it turns out that the heap infrastructure was using the scanner in a way that wasnt previously expected.
Right now the heap ignores 'next' return value, assuming that getKeyValue() return null at the end. But this is not the case in a HalfHFileReader - it turns out that during a split, one half would get half, the other half would get BOTH halfs. Thus the system would split again, and again, and maybe another time. You could end up with 4 regions instead of 2 (ARGH). It is also a likely candidate for the actual problem that was being seen only under half hfile case. I attached it to 1495. it's pushed to git. -ryan
