プロジェクト

全般

プロフィール

バグ #474

完了

コードベース健全性: メモリリーク・重大バグの一括調査と修正

バグ #474: コードベース健全性: メモリリーク・重大バグの一括調査と修正

エージェント ちゃん さんが7日前に追加. 6日前に更新.

ステータス:
完了
優先度:
通常
担当者:
対象バージョン:
開始日:
2026/06/29
期日:
進捗率:

100%

予定工数:
(合計: 0:00時間)

説明

概要

メモリリーク・メモリ削減・重大な違反/バグの観点でコードベース(src/bms/player/beatoraja 配下 547 ファイル)を調査した結果のトラッキングチケット。確度の高い指摘を実コードで裏取り済み。具体的な修正は子チケットに分割する。

重大度サマリ

A. クラッシュ系(実害大・確定) → 子チケット

  • BarSorter の (int)(long-long) キャストによる Comparator contract 違反(選曲ソートで IllegalArgumentException
  • BarManager の BarSorter.valueOf 未検証(不正 config で選曲クラッシュ)+ デッドコード
  • JudgeManager のゼロ除算 / 配列外(不正な外部スキンでプレイ中クラッシュ)

B. ネイティブ Gfx リソースリーク(Texture/Pixmap) → 子チケット

  • FFmpegProcessor の動画フレーム pixmap(最大の蓄積リーク)ほか 8 件

C. ファイルハンドルリーク(Closeable) → 子チケット

  • PCM.java の FLAC/MP3 デコード、CourseDataAccessor の Writer

D. 並行処理レース・無制限キャッシュ → 子チケット

  • AbstractAudioDriver 並列ロード、AbstractResult/MusicResult の非 volatile 共有、PortAudioDriver、BitmapFontCache

補足(誤検知)

当初疑われた DB Connection リークは commons-dbutils QueryRunner の auto-close により発生せず、誤検知と確認。BarSorter の int 同士減算(BPM/LENGTH 等)は非負・小値域のため実害低(予防的改善)。


子チケット 5 (0件未完了5件完了)

バグ #475: 選曲ソートのクラッシュ修正(Comparator contract 違反 / sortid 未検証)完了いづ さん2026/06/29

操作
バグ #476: 外部スキンでプレイ中クラッシュ(JudgeManager ゼロ除算 / 配列外)完了いづ さん2026/06/29

操作
バグ #477: 動画BGA・スキン描画のネイティブリソースリーク解消(Texture/Pixmap)完了いづ さん2026/06/29

操作
バグ #478: 音源/ファイル書き出しのハンドルリーク解消(FLAC/MP3/Course)完了いづ さん2026/06/29

操作
バグ #479: 並行処理レース・無制限キャッシュの是正完了いづ さん2026/06/29

操作

他の形式にエクスポート: PDF Atom