DiffDaily Deep & Concise - OSS変更の定点観測
トップに戻る

puma/puma

https://github.com/puma/puma

`above_http_content_limit` の重複コードを1つのメソッドに集約

puma/pumaにて、[#3582](https://github.com/puma/puma/pull/3582) で導入された重複コードを整理するリファクタリングが行われました。`setup_body` と `write_chunk` の2箇所に存在した「バッファクリア・ステータスコード設定・例外送出」の重複処理が、新設の `raise_above_http_content_limit` メソッドに一本化されています。

2026年03月24日 Claude Sonnet 4.6

フェーズドリスタート時にstaleなワーカー0からforkしてしまうバグを修正

`fork_worker`モードでワーカー0が事前に再起動された状態でフェーズドリスタートを行うと、staleなワーカー0からforkが連鎖し古いコードが残り続けるバグを修正。`@workers`配列へのワーカー追加を末尾追記(`<<`)からインデックス指定挿入(`Array#insert`)に変えるだけの1行修正で、配列の順序とワーカーインデックスの整合性を保証します。

2026年03月09日 Claude Sonnet 4.6

`shutdown_debug` に `on_force` オプションを追加し、強制シャットダウン時のみバックトレースを出力可能に

Pumaのシャットダウンデバッグ機能 `shutdown_debug` に `on_force: true` オプションが追加されました。従来はシャットダウン開始直後に全スレッドをダンプしていましたが、新オプションを使うと `force_shutdown_after` のタイムアウト超過後に残存するスレッドのみをダンプするため、シャットダウンをブロックしている原因スレッドを特定しやすくなります。あわせてバックトレースダンプの責務が `Server` から `ThreadPool` に移管されるリファクタリングも行われています。

2026年03月09日 Claude Sonnet 4.6

`env["puma.mark_as_io_bound"]` によるIO待ちスレッドのプール分離機能を実装

Pumaのスレッドプールに「IOバウンドスレッド」という概念を導入し、`env["puma.mark_as_io_bound"].call` でリクエストをIO待ち専用スレッドとしてマークできるようになりました。IOバウンドスレッドは `max_threads` のカウントから外れ、新たな `max_io_threads` 設定でその上限を管理できます。ストリーミングやプロキシのような長時間IO待ちが発生するリクエストが通常のCPUバウンドなリクエストのスループットを圧迫しなくなります。

2026年03月08日 Claude Sonnet 4.6

シングルモードとクラスタモードの設定フックを追加

Pumaに `single` と `cluster` 設定フックが追加され、実行モードに応じた条件分岐が可能になりました。フォーク非対応のJVMなどのライブラリ初期化を、単一の設定ファイル内でモード別に記述できます。

2026年02月23日 Claude Sonnet 4.5

リクエスト処理コードをclient_env.rbに集約

client.rbとrequest.rbに分散していたリクエストのenv処理コードをclient_env.rbに集約。ClientEnvモジュールとして切り出すことで、リクエスト検証ロジックを一箇所にまとめ、コードの責務を明確化しました。

2026年02月23日 Claude Sonnet 4.5

pumactlテスト用ヘルパーメソッドの整理とポート・パス変数の統一

pumactlテスト用に設定ファイルベースのヘルパーメソッド `set_pumactl_config` を追加し、バインディングとコントロール用のポート・パス変数の命名を統一。Windows環境でのサーバー停止処理の制約も明示的にエラー化されました。

2026年02月23日 Claude Sonnet 4.5

テストにおける環境変数の一時的な上書きを共通ヘルパーに集約

テストにおける環境変数の保存・復元パターンを `with_temp_env` ヘルパーに集約。`temp_env` と `del_env` の2つのパラメータで「値の一時変更」と「キーの一時追加」に対応し、コードの重複を解消。

2026年02月23日 Claude Sonnet 4.5

スレッドプール設定の動的更新APIを追加

Pumaに、サーバー稼働中にスレッド数の最小値・最大値を動的に変更できる新しいAPIが追加されました。既存のスレッド管理ロジックを活用し、最小限の変更で動的調整機能の基盤を提供しています。

2026年02月18日 Claude Sonnet 4.5
前へ 1 2

© 2026 DiffDaily - Powered by AI

タケユー・ウェブ