After we checkpoint the history store we don't bump the checkpoint_generation. The checkpoint generation controls whether we include the checkpoint transaction in our calculations of the pinned and oldest_ids for a given btree.
But because we release the checkpoint_timestamp and checkpoint_txn_shared.pinned_id almost immediately after finishing checkpointing the history store as such it shouldn't have that big of an impact.
The fix should be:
diff --git a/src/txn/txn_ckpt.c b/src/txn/txn_ckpt.c
index d9a15ed06..dd959c2eb 100644
--- a/src/txn/txn_ckpt.c
+++ b/src/txn/txn_ckpt.c
@@ -899,6 +899,7 @@ __txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[])
time_start_hs = __wt_clock(session);
WT_WITH_DHANDLE(session, hs_dhandle, ret = __wt_checkpoint(session, cfg));
WT_ERR(ret);
+ __checkpoint_update_generation(session);
time_stop_hs = __wt_clock(session);
hs_ckpt_duration_usecs = WT_CLOCKDIFF_US(time_stop_hs, time_start_hs);
WT_STAT_CONN_SET(session, txn_hs_ckpt_duration, hs_ckpt_duration_usecs);