Before durable history, we store the stable version in the disk image. The transaction read only traverse the update chain and the upper level search logic has the assumption that if nothing is found by transaction read, we should return the onpage value.
This is no longer true in history store as we store the newest committed value on disk. To change that, we have modified transaction read to traverse the update chain, onpage value, then the update chain. However, we haven't removed the assumption in the upper level search logic that the onpage value should be visible if nothing is found. This problem is causing test_hs02 to fail.