Skip to content

branch-4.1: [fix](cache) fix NPE when a partition of olap table has been dropped #65889 - #67124

Merged
yiguolei merged 1 commit into
branch-4.1from
auto-pick-65889-branch-4.1
Aug 26, 2026
Merged

branch-4.1: [fix](cache) fix NPE when a partition of olap table has been dropped #65889#67124
yiguolei merged 1 commit into
branch-4.1from
auto-pick-65889-branch-4.1

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Cherry-picked from #65889

…65889)

Issue Number: close #65886

Problem Summary:

`CacheAnalyzer.buildCacheTableForOlapScanNode` iterates over the
`selectedPartitionIds` of an `OlapScanNode` and calls
`olapTable.getPartition(partitionId)` for each id. If a partition is
dropped between query planning and cache building (e.g. a concurrent
`DROP PARTITION`), `getPartition` returns `null`, and the subsequent
`partition.getVisibleVersionTime()` throws a `NullPointerException`,
aborting the cache update for the query.

Root cause: the loop had no null-check on the partition returned by
`getPartition`.

Fix: skip partitions that are already null (`if (partition == null)
continue;`). A dropped partition can no longer contribute to the cache,
so it is skipped and the remaining partitions are still processed. The
end-to-end effect is that the SQL cache update no longer crashes when a
partition races with the cache build; the cache is built from the
still-existing partitions instead.
@github-actions
github-actions Bot requested a review from yiguolei as a code owner August 25, 2026 09:41
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@hello-stephen

Copy link
Copy Markdown
Contributor

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 100.00% (5/5) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 0.00% (0/5) 🎉
Increment coverage report
Complete coverage report

@yiguolei
yiguolei merged commit 115ef95 into branch-4.1 Aug 26, 2026
30 of 32 checks passed
@github-actions

Copy link
Copy Markdown
Contributor Author

PR approved by anyone and no changes requested.

@github-actions github-actions Bot added the approved Indicates a PR has been approved by one committer. label Aug 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor Author

PR approved by at least one committer and no changes requested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants