Skip to content

Conversation

@deardeng
Copy link
Contributor

@deardeng deardeng commented Jan 15, 2026

pick from (#59489)

  1. Thread 1 executed a DROP TABLE operation, followed by a CREATE TABLE operation, initializing a dynamic partition (Partition A) in memory.
  2. Due to an optimization in the cloud, batch partition edit logs were attempted; however, the edit log for Partition A was not yet synchronized to the followers.
  3. Thread 2 began an INSERT INTO ... OVERWRITE PARTITION (*) operation, identifying Partition A in memory and writing a replace partition edit log.
  4. In follower, the replay thread attempted to replay the replace partition edit log but found a dependency on Partition A, which was absent from memory, resulting in an exception and subsequent termination.

Fix

2025-12-30 16:10:42,774 ERROR (replayer|123) [EditLog.loadJournal():1445] replay Operation Type 210, log id: 1910
java.lang.NullPointerException
        at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:906)
        at org.apache.doris.catalog.OlapTable.checkPartition(OlapTable.java:2835)
        at org.apache.doris.catalog.OlapTable.replaceTempPartitions(OlapTable.java:2799)
        at org.apache.doris.catalog.Env.replayReplaceTempPartition(Env.java:6750)
        at org.apache.doris.persist.EditLog.loadJournal(EditLog.java:986)
        at org.apache.doris.catalog.Env.replayJournal(Env.java:3100)
        at org.apache.doris.catalog.Env$4.runOneCycle(Env.java:2862)
        at org.apache.doris.common.util.Daemon.run(Daemon.java:119)
2025-12-30 16:10:42,775 INFO (Thread-0|32) [DorisFE.lambda$start$0():159] Received shutdown signal, starting graceful shutdown...
2025-12-30 16:10:42,776 INFO (Thread-0|32) [DorisFE.gracefulShutdown():639] graceful shutdown finished

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:

None

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
  • This is a refactor/code format and no logic has been changed.
    - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason

  • Behavior changed:

    • No.
    • Yes.
  • Does this need documentation?

    • No.
  • Yes.

  • Confirm the release note

  • Confirm test cases

  • Confirm document

  • Add branch pick label

What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:

Release note

None

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

…pache#59489)

1. Thread 1 executed a DROP TABLE operation, followed by a CREATE TABLE
operation, initializing a dynamic partition (Partition A) in memory.
2. Due to an optimization in the cloud, batch partition edit logs were
attempted; however, the edit log for Partition A was not yet
synchronized to the followers.
3. Thread 2 began an INSERT INTO ... OVERWRITE PARTITION (*) operation,
identifying Partition A in memory and writing a replace partition edit
log.
4. In follower, the replay thread attempted to replay the replace
partition edit log but found a dependency on Partition A, which was
absent from memory, resulting in an exception and subsequent
termination.

Fix
```
2025-12-30 16:10:42,774 ERROR (replayer|123) [EditLog.loadJournal():1445] replay Operation Type 210, log id: 1910
java.lang.NullPointerException
        at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:906)
        at org.apache.doris.catalog.OlapTable.checkPartition(OlapTable.java:2835)
        at org.apache.doris.catalog.OlapTable.replaceTempPartitions(OlapTable.java:2799)
        at org.apache.doris.catalog.Env.replayReplaceTempPartition(Env.java:6750)
        at org.apache.doris.persist.EditLog.loadJournal(EditLog.java:986)
        at org.apache.doris.catalog.Env.replayJournal(Env.java:3100)
        at org.apache.doris.catalog.Env$4.runOneCycle(Env.java:2862)
        at org.apache.doris.common.util.Daemon.run(Daemon.java:119)
2025-12-30 16:10:42,775 INFO (Thread-0|32) [DorisFE.lambda$start$0():159] Received shutdown signal, starting graceful shutdown...
2025-12-30 16:10:42,776 INFO (Thread-0|32) [DorisFE.gracefulShutdown():639] graceful shutdown finished
```

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:

None

- Test <!-- At least one of them must be included. -->
    - [x] Regression test
    - [ ] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [x] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
@deardeng deardeng requested a review from morrySnow as a code owner January 15, 2026 06:45
@Thearas
Copy link
Contributor

Thearas commented Jan 15, 2026

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?

@deardeng deardeng changed the title [fix](cloud)Fix create dynamic table race with insert overwrite (… [fix](cloud)Fix create dynamic table race with insert overwrite Jan 15, 2026
@deardeng
Copy link
Contributor Author

run buildall

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants