Search before asking
Paimon version
master @ 54e64e3 (2.1-SNAPSHOT)
Compute Engine
Flink lookup join; the defect is in paimon-service-client.
Minimal reproduce step
- Run a lookup join on the primary keys with a query service running (
LOOKUP_CACHE_MODE=AUTO selects the remote path).
- Stop the query service job — its sockets close and its service files are removed.
- Issue a lookup.
What doesn't meet your expectations?
Expected: the lookup fails with the location error. Actual: RemoteTableQuery.lookup() blocks forever on its untimed Future.get(), so the subtask hangs — no failure, no log, no restart, and checkpoints time out.
Anything else?
KvQueryClient.getResponse() calls QueryLocation#getLocation(...) unguarded. The first attempt fails to connect, so executeActionAsync() retries with forceUpdate=true inside a whenCompleteAsync callback whose derived stage is discarded. QueryLocationImpl then throws RuntimeException("Cannot find address for table path: ..."); the discarded stage swallows it, so the future returned by getValues() is never completed.
Are you willing to submit a PR?
Search before asking
Paimon version
master @ 54e64e3 (2.1-SNAPSHOT)
Compute Engine
Flink lookup join; the defect is in
paimon-service-client.Minimal reproduce step
LOOKUP_CACHE_MODE=AUTOselects the remote path).What doesn't meet your expectations?
Expected: the lookup fails with the location error. Actual:
RemoteTableQuery.lookup()blocks forever on its untimedFuture.get(), so the subtask hangs — no failure, no log, no restart, and checkpoints time out.Anything else?
KvQueryClient.getResponse()callsQueryLocation#getLocation(...)unguarded. The first attempt fails to connect, soexecuteActionAsync()retries withforceUpdate=trueinside awhenCompleteAsynccallback whose derived stage is discarded.QueryLocationImplthen throwsRuntimeException("Cannot find address for table path: ..."); the discarded stage swallows it, so the future returned bygetValues()is never completed.Are you willing to submit a PR?