メインコンテンツまでスキップ
バージョン: 3.14

ScalarDL 3.14 リリースノート

注記

このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。

このページには、ScalarDL 3.14 のリリースノートのリストが含まれています。

v3.14.1​

発売日: 2026年09月08日

まとめ​

このリリースには、いくつかの改善点、バグの修正、および脆弱性の修正が含まれています。詳細な変更については、以下を参照してください。

破壊的変更

コントラクト実行リクエストのノンスは、正規形式の UUID でなければならなくなりました。 ノンスが正規形式の UUID ではないリクエスト (ハイフンで区切られた 8-4-4-4-12 形式の 36 文字。16 進数の大文字と小文字の両方を受け付けます) は、拒否されるようになりました。クライアント SDK はこれまで常に UUID ノンスを生成しているため、これはノンス引数を受け取る非推奨の executeContract メソッドを通じて独自のノンスを渡すアプリケーションにのみ影響します。該当する場合は、ノンスを渡さずに SDK に生成させるか、渡す値が正規形式の UUID であることを確認してください。 (#662)

Community と Enterprise editions​

改善点​

  • コントラクト実行リクエストのノンスが正規形式の UUID であることを検証するようにしました。サーバーのエントリポイントで不正な形式のノンスを拒否することで、後続の管理情報が破損することを防ぎます。 (#662)
  • ScalarDB を 3.19.1 にアップグレードしました。 (#687)

バグの修正​

Enterprise edition​

バグの修正​

  • 下位のストレージで条件付き書き込みの失敗が継続する場合に、リードロックリリースの再試行が StackOverflowError で失敗したり、待機時間なしで再試行されたりする問題を修正しました。
  • 同時リカバリーによってロックが既にリリースされている場合に、クリーンアップ中のライトロックのリリースで誤解を招く INCONSISTENT_STATES エラーがスローされたり、別のトランザクションのライトロックがリリースされたりする問題を修正しました。
  • リードロックのリリースによって、ロック所有者リストとロック数の整合性が失われる問題を修正しました。

v3.14.0​

発売日: 2026年08月05日

まとめ​

このリリースでは、トランザクション状態のパージ機能を導入し、残存するトランザクション状態を回収します。また、いくつかの改善点とバグの修正が含まれています。詳細な変更については、以下を参照してください。

Community と Enterprise editions​

機能強化​

  • トランザクション状態のパージ機能を追加しました。これにより、データベースに残存する Coordinator/トランザクション状態を回収します。トランザクションの完了時、定期的なバックグラウンドスキャン、または新しい purge-state CLI コマンドでオンデマンドにパージできます。 (#552, #555, #564, #579, #583, #623)

改善点​

  • ScalarDL クリーンアップツール用のアセットロックリカバリー RPC を追加しました。 (#543)
  • ScalarDB を 3.19.0 にアップグレードしました。 (#638)

バグの修正​

  • コントラクトが JDBC データベース (例: PostgreSQL) にアクセスできない問題を修正しました。 (#558)
  • Ledger が、サポートされていない ScalarDB トランザクションマネージャーをサイレント受け入れする代わりに、スタートアップ時に拒否するように修正しました。 (#585)
  • 関数実行を制限し、デフォルト以外の名前空間に登録された関数が、そのコンテキスト名前空間と同じ名前の ScalarDB 名前空間、またはコンテキスト名前空間に続くアンダースコアで始まる名前を持つ名前空間にのみアクセスできるようにしました。 (#570)
  • ScalarDL が ScalarDB マルチストレージ設定で実行される場合、必須のサンドボックス許可を設定されたストレージタイプに関わらず付与することで、コントラクト実行が AccessControlException で失敗する問題を修正しました。 (#588)
  • grpc-health-probe のいくつかの脆弱性を修正しました。 (#589)
  • SecurityManager が有効な状態で、データベース接続を再確立する必要がある場合 (例: データベース再起動またはアイドル タイムアウト後) にコントラクト実行が失敗する問題を修正しました。 (#621)
  • トップレベル create-namespace コマンドを削除しました。代わりに他の名前空間コマンド (scalardl drop-namespace, scalardl list-namespaces) と一貫性のある scalardl create-namespace を使用してください。 (#622)
  • Ledger (または Auditor/Gateway) サーバーのポーズが成功を報告しながらサーバーがポーズされたままになるレース条件を修正しました。 (#637)

Enterprise edition​

バグの修正​

  • 同時リカバリーによるリードロック数の破損を修正し、複数のリードロックノンスのリカバリー時の不要な CAS 失敗を排除しました。
  • Auditor の Ledger コール失敗がアセットロックリカバリー中にクライアントに一般的なランタイムエラーとして報告されたり、未知のトランザクション状態として扱われて原因が失われたりする問題を修正しました。
  • Auditor が JDBC データベース (Oracle) でコントラクト実行が DL-COMMON-305001 エラーで失敗する問題を修正しました。このエラーは NULL として保存されたアセットロックエントリを読み取ることが原因でした。
  • Gateway ログ行が間違ったロガーカテゴリーの下に記録される問題を修正しました。
  • SecurityManager が有効な状態で、データベース接続を再確立する必要がある場合 (例: データベース再起動またはアイドルタイムアウト後) に Auditor でのコントラクト実行が失敗する問題を修正しました。
  • 同時リカバリーによってロックが既にリリースされている場合に、リードロックリリースの再試行が誤解を招く INCONSISTENT_STATES エラーで失敗する可能性がある問題を修正しました。