Postpone-bucket getWriteId misparses the write id when data-file.prefix or the commit user contains the -s- separator
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- java
調査の方向性
PostponeBucketFileStoreWrite.getWriteId から始め、-s- を含む data-file.prefix または commit user を使って postpone-bucket のパスを再現します。-w- marker 周辺のファイル名解析を追跡し、その後、抽出された write id が getWriteId(...) % parallelism を通じてファイルを正しく振り分けることと、不正な形式の名前が引き続き想定どおり失敗することを確認します。
索引モデルが issue の本文から書いたものです。
説明
Search before asking
- I searched in the issues and found no similar issues.
Paimon version
master (1.5-SNAPSHOT)
Compute Engine
Flink (postpone-bucket write path).
Minimal reproduce step
- Create a postpone-bucket table and set
data-file.prefixto a value that contains the-s-separator (for examplea-s-b). - Write data so postpone-bucket data files are produced. Each file name is
{data-file.prefix}-u-{commitUser}-s-{writeId}-w-{uuid}-{count}. - Read or compact the table, which routes splits by
getWriteId(fileName) % parallelism.
What doesn't meet your expectations?
PostponeBucketFileStoreWrite.getWriteId recovered the write id by splitting on the first -s- in the file name. When data-file.prefix (or a custom commit user) already contains -s-, the first -s- is not the writer's separator, so the parse either throws Data file name ... does not match the pattern or returns a wrong write id. A wrong id then routes the split to the wrong reader under getWriteId(...) % parallelism.
Anything else?
The correct anchor is the -w- writer marker that always terminates the interpolated prefix, so the write id is the segment between the last -s- before -w- and -w- itself.
Are you willing to submit a PR?
- I'm willing to submit a PR!
- 主要言語
- Java
- スター
- 3.4k
- フォーク
- 1.4k
- 平均マージ
- 1日 11時間
- マージ済み PR(30日)
- 490
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/paimon のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
REST Catalog alterTable silently reports success when the server returns a non-table/column 404オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
redhat-developer/intellij-quarkus#1626 ·
-
Type/Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
wso2/product-integrator-mi#5061 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
quarkiverse/quarkus-roq#1277 ·
メンテナーはふだん 1 日以内に返信
-
Typos in page footerオープン
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
apache/logging-site#48 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/maven-surefire#3496 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信