Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

storage-cassandra: two concurrent DeleteTable calls on one table both complete

オープン
#553 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

@LeeroyHannigan がすでに取り組んでいます。

2026年10月25日 から。

  • #598 @LeeroyHannigan による — オープン

評価

この issue はまだ評価されていません。

説明

backend:cassandra

Summary

On Cassandra two concurrent DeleteTable calls on one ACTIVE table both run to completion and both answer 200. The service answers one 200 and one ResourceInUseException Attempt to change a resource which is still in use: Table is being deleted: <name> (measured 2026-10-25, five rounds of five). #550 fixes the same pair on SQLite and MongoDB; PostgreSQL already serialized it.

Cause

crates/storage-cassandra/src/delete_table.rs never writes a DELETING status: it reads the row, drops the keyspace tables and deletes the catalog rows inside the request. Nothing fences the second call. The continuous_backups and tags deletes are keyed on the table name and ARN, so a CreateTable of the same name interleaved with the second call's tail can lose the new table's PITR row and tags.

Fix shape

A lightweight-transaction claim to DELETING as the first write (UPDATE ... SET table_status = 'DELETING' IF table_status = 'ACTIVE'); the loser answers TableBeingDeleted (added in #550). Key the continuous_backups and tags deletes on the table id, or run them before the claim is released. A direct test with ten rounds of two concurrent calls asserting one Ok and one TableBeingDeleted, and that a table re-created between the calls keeps its tags and PITR row.

Found while reviewing #505.

主要言語
Rust
スター
517
フォーク
60
平均マージ
2日 23時間
マージ済み PR(30日)
25

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ExtendDB/extenddb のほかの issue

ExtendDB/extenddb の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。