@Override
  public void acquireLocks(QueryPlan plan, Context ctx, String username) throws LockException {
    try {
      acquireLocksWithHeartbeatDelay(plan, ctx, username, 0);
    }
    catch(LockException e) {
      if (e.getCause() instanceof TxnAbortedException) {
        resetTxnInfo();
      }
      throw e;
    }
  }
we don't expect multiple threads to call this method concurrently but {@link #lockMgr} will
be read by a different threads than one writing it, thus it's {@code volatile}
ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java