In KVCatalog::_findEntry we have:
boost::scoped_ptr<Lock::ResourceLock> rLk;
if (!_isRsThreadSafe)
rLk.reset(new Lock::ResourceLock(opCtx->lockState(), catalogRID));
But during KVStorageEngine::finishInit(), opCtx->lockState() is null, so we crash.
I think the right thing to do is not take a lock at all in this case because if we don't have a lock state we're probably in startup (or other inherently single-threaded block)