@Override
  public boolean processTakeSnapshot(File snapshotDir) throws TException, IOException {
    File snapshotFile = new File(snapshotDir, SNAPSHOT_FILENAME);
    if (snapshotFile.exists() && snapshotFile.isFile()) {
      LOGGER.error(
          "Failed to take snapshot, because snapshot file [{}] is already exist.",
          snapshotFile.getAbsolutePath());
      return false;
    }

    acquireTriggerTableLock();
    try (FileOutputStream fileOutputStream = new FileOutputStream(snapshotFile)) {

      serializeExistedJarToMD5(fileOutputStream);

      triggerTable.serializeTriggerTable(fileOutputStream);

      // fsync
      fileOutputStream.getFD().sync();
      return true;
    } finally {
      releaseTriggerTableLock();
    }
  }
Validate whether the trigger can be dropped.
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/TriggerInfo.java