private void handleSnapshotTimeout() {
        this.writeLock.lock();
        try {
            if (!this.state.isActive()) {
                return;
            }
        } finally {
            this.writeLock.unlock();
        }
        // do_snapshot in another thread to avoid blocking the timer thread.
        ThreadPoolsFactory.runInThread(this.groupId, () -> doSnapshot(null, false));
    }
Invoked when this node becomes the leader, write a configuration change log as the first log.
jraft-core/src/main/java/com/alipay/sofa/jraft/core/NodeImpl.java