Skip to content

[Bug] [Core] Released 2.3.13 --check is a no-op stub: invalid configs exit 0 (dev fixed by #10763, needs backport or release-note warning) #11511

Description

@SEZ9

Search before asking

  • I had searched in the issues and found no similar issues.

What happened

In the released 2.3.13 (including the official Docker image apache/seatunnel:latest), seatunnel.sh --check accepts any config — including configs with a non-existent connector and missing required options — and exits 0.

The cause: in the released source, SeaTunnelConfValidateCommand.execute() is an empty stub:

@Override
public void execute() throws ConfigCheckException {
    Path configPath = FileUtils.getConfigPath(clientCommandArgs);
    // TODO: validate config using new api
}

The real validation (--dry-run static: plugin loadability, OptionRule required/unknown keys, option types, DAG topology) was implemented on dev in #10763, but has not been released.

This is a silent correctness trap: users (and tooling) that run --check as a pre-flight gate get a false "valid" signal. We hit this while building an automated benchmark that used --check as an engine-level validation gate — it reported a 100% pass rate for configs that were provably invalid (e.g. source { NoSuchConnector { ... } } → exit 0).

What you expected to happen

Either of:

  1. Backport [Feature][Zeta] Implement proper dry-run mode with progressive validation layer0 #10763's validation to the 2.3.x line so --check actually validates, or
  2. Make released --check fail fast with "not implemented in this version", and/or document the limitation in the 2.3.x user-command docs — anything but silently returning success.

How to reproduce

cat > /tmp/bad.conf <<'CONF'
env { job.mode = "BATCH" }
source { NoSuchConnector { totally_fake_option = "x" } }
sink { Console {} }
CONF
docker run --rm -v /tmp/bad.conf:/t.conf apache/seatunnel:latest \
  bash -c '/opt/seatunnel/bin/seatunnel.sh --check --config /t.conf; echo exit=$?'
# -> exit=0

SeaTunnel Version

2.3.13 (released); dev is fixed by #10763

SeaTunnel Config

See above.

Running Command

seatunnel.sh --check --config /t.conf

Error Exception

No error — that is the bug: exit code 0 for an invalid config.

Zeta or Flink or Spark Version

Zeta

Java or Scala Version

openjdk 1.8.0_342 (bundled in image)

Screenshots

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

Labels

bugfixed-in-devFix has landed in dev branch and will be available in a future release.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions