-
Type: Task
-
Resolution: Done
-
Priority: Minor - P4
-
Affects Version/s: None
-
Component/s: None
-
None
The wt_txn_recover function doesn't open an internal session, it opens a normal session:
/* We need a real session for recovery. */ WT_RET(__wt_open_session(conn, NULL, NULL, true, &session)); F_SET(session, WT_SESSION_NO_LOGGING); r.session = session;
I was looking at this in the context of WT-2140: that ticket concerns freeing temporary allocated memory after an application thread does reconciliation, and the obvious way to do that is based on the WT_SESSION_INTERNAL flag, which recovery won't set. Depending on how many blocks recovery writes, this could potentially slow down recovery.
If this code is correct, I think it deserves a comment, it's the only place in WiredTiger where an internal action opens a "normal" session.