fix(core): avoid server-main error on WAL table rename race - #7046
Merged
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
WalPurgeJob can process a table token snapshot after the table has been renamed and the original name reused. Treat the resulting stale-token exception as a retryable purge race and leave the current registry state for the next purge pass. Example error: 2026-04-29T19:00:18.754926Z C server-main unhandled error [job=io.questdb.cairo.wal.WalPurgeJob@2b62442c, ex=io.questdb.cairo.sql.TableReferenceOutOfDateException: cached query plan cannot be used because table schema has changed [table=table', expectedTableId=4358, actualTableId=4360, expectedMetadataVersion=4360, actualMetadataVersion=-1]
jerrinot
force-pushed
the
jh_wal_purge_rename_error
branch
from
April 30, 2026 11:06
a5987f2 to
3edb761
Compare
Contributor
[PR Coverage check]😍 pass : 2 / 4 (50.00%) file detail
|
ideoma
approved these changes
Apr 30, 2026
nwoolmer
added a commit
that referenced
this pull request
May 6, 2026
Brings in 12 upstream commits (b6b3b15..c0c5638). Notable upstream changes: * feat(core): compact posting index for SYMBOL columns (#6861) plus follow-ups #7051 (seal indexes after WAL fast-lag commit) and #7052 (refresh covering sidecar mappings on reader reload). Adds DirectBitSet, bp_bitpack / FSST native helpers, and PostingIndexBenchmarkSuite. * fix(sql): preserve outer-join predicates, fix NOT in UNION, isolate parser state (#7027). * fix(sql): BETWEEN inside sub-expression (#7044). * fix(sql): JIT filter wrong results with UUID bind variables (#7049). * fix(core): avoid server-main error on WAL table rename race (#7046). * chore(ilp): fix QWP string-to-numeric parse status classification (#7038). * Build/CI chores: aux-job moved to Hetzner (#7054), latest IntelliJ for formatting (#7040), 'qwp' allowed as PR-title subtype, level switch added to review-pr skill (#7055). Conflict: core/src/main/resources/io/questdb/bin/linux-x86-64/libquestdb.so is a prebuilt native library; took master's version (same resolution as the prior 046c874 merge). Other native libs were updated cleanly without conflict. Auto-merged: SqlCompilerImpl.java, SqlCodeGenerator.java, SqlParser.java, SqlKeywords.java, TableColumnMetadata.java, TableWriter.java, AbstractCairoTest.java. Errand-specific files (MemFdFilesFacade, HybridCairoConfiguration, ArrowBulkExport, ArrowBulkIngest) untouched.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WalPurgeJob can process a table token snapshot after the table has been renamed and the original name reused. Treat the resulting stale-token exception as a retryable purge race and leave the current registry state for the next purge pass.
Example error: