コンテンツ

目次

バグを報告する前に

Apache Tomcat® コミュニティは、Apache Tomcat を使用する人、ディスカッションリストで質問に答えるのを手伝う人、ドキュメントやパッチを投稿する人、そして Apache Tomcat のコードを開発および保守する人で構成されています。バグレポートの解決を日常的に手伝う人のほとんどは、さまざまな理由でこれを行っており、ほとんどすべての人が自分の時間を使っています。

報告されたバグの多くは、Apache Tomcat コードのバグではなく、構成ミス、インストールされたアプリケーション、オペレーティングシステムなどによって引き起こされた問題によるものです。

バグを報告する前に、問題を自分で解決するためにあらゆる努力を払ってください。

ヘルプが必要な場合は、users メーリングリストで質問してください。

このドキュメントの残りの部分では、発生している問題を解決するために使用できるリソースを紹介します。

Bugzilla はサポートフォーラムではありません

Bugzilla は、バグレポートと機能リクエストを追跡するためのツールです。 Apache Tomcat プロジェクトでの作業を整理するために使用され、問題が忘れられないようにし、それらがどのように解決されたかを文書化します。

Bugzilla は、独自のシステムを構成する方法や、理解できないエラーメッセージや動作を解釈する方法について質問する場所ではありません。質問がある場合は、users メーリングリストで質問してください。

問題を診断するのに十分な情報を収集し、それが実際に Apache Tomcat で修正できるバグである場合は、Bugzilla の問題を自由に作成または再開してください。 メーリングリストアーカイブでディスカッションへのリンクを見つけて、バグレポートに含めることができます。

Apache Tomcat の問題を解決するためのリソース

バグを報告する前に、発生している問題を解決するために役立つリソースをいくつか紹介します。

問題のトラブルシューティング

  • ドキュメント – 使用している Apache Tomcat のバージョンのドキュメントを確認してください。直面している問題は、ドキュメントですでに対処されている可能性があります。ドキュメントは検索可能であることに注意してください。
  • ログ – Apache Tomcat が生成するログは、問題を診断しようとするときに貴重なリソースになります。確認してください。問題の診断に役立つより多くの情報が得られるように、Apache Tomcat 構成でデバッグ出力を有効にすることができます。アクセスログ(バルブ)を構成して、Tomcat に到達したリクエストと Tomcat のそれらへの応答をログに記録することができます。
  • WikiWiki を検索してください。それは誰でも投稿できる非公式なドキュメントです。
  • FAQ – Wiki の一部である Tomcat よくある質問を検索してください。

Apache Tomcat ディスカッションリスト

あなたが問題に遭遇するのは、おそらく初めてではありません。他の人がすでに解決策を見つけている可能性があります。メーリングリストアーカイブには、問題の解決に役立つディスカッションが含まれている場合があります。

リストの詳細については、メーリングリストページを参照してください。

ヘルプを探すページも参照してください。

既知の問題

バグデータベースを検索して、見ているバグがすでに報告されているかどうかを確認してください。すでに修正されているバグについては、変更履歴ページをご覧ください。まだリリースされていない Tomcat のバージョンの変更履歴も利用できます。詳細については、以下をご覧ください。

最新バージョン

最新リリースの Apache Tomcat で問題を再現してみてください。

既知の問題を探す

バグデータベースを検索する

バグデータベースを検索して、見ているバグがすでに報告されているかどうかを確認してください。

  • バグはすでに修正されており、後のバージョンまたはナイトリービルドで利用できる可能性があります。
  • 他の誰かがバグを報告している可能性があり、バグの再現と解決に役立つ情報を追加できます。

検索ページは こちら です。 詳細検索ページもあります。

検索のヒントをいくつか紹介します。

  1. オープンなバグだけでなく、クローズされたバグも検索してください。

    詳細検索ページでは、「ステータス」フィールドをクリアして、ステータスでフィルタリングしないようにすることができます。

  2. Tomcat の異なるバージョンを検索します。

    バグデータベースでは、Tomcat はいくつかの「製品」で表されます。同じ問題は一度だけ報告する必要がありますが、修正は異なる Tomcat バージョンに適用される場合があります。そうすることで、バグレポートは異なる製品間で移動されます。 Tomcat 9 に対して最初に報告されたバグは、Tomcat 8 に移動され、さらに Tomcat 7 に移動される可能性があります。したがって、すべてのバージョンを一度に検索することは理にかなっています。

    サポートされている製品のクイックリストを次に示します。

    • Tomcat 11Tomcat 10Tomcat 9 – Tomcat 11.0.x、10.1.x、9.0.x
    • Tomcat コネクタ – Tomcat と他の Web サーバーとの統合
    • Tomcat Native – Tomcat 用の APR ベースのネイティブ HTTP および AJP コネクタ
    • Tomcat モジュール – 追加の Tomcat コンポーネント
    • Taglibs – Apache Taglibs サブプロジェクト
  3. 概要フィールドだけでなく、コメントフィールドも検索してください。

    詳細検索ページで、「詳細なバグ情報」を開き、「コメント」フィールドにクエリを入力します。

  4. 最近変更された問題に結果を制限できます。

    詳細検索ページで、「変更履歴で検索」を開き、「between」フィールドのペアの最初のフィールドに「-2m」と入力して、過去 2 か月間に変更された問題に結果を制限します。

  5. Tomcat に属さないバグもあります。

    Tomcat は、他のいくつかのプロジェクトからのライブラリをバンドルします。詳細については、ディストリビューションの RELEASE-NOTES ファイルと NOTICE ファイルを参照してください。詳細については、以下の別のセクションをご覧ください。

変更履歴

最近修正された問題を探している場合は、いくつかの場所で確認できます。

  • リリースされたバージョンの変更履歴ファイル

    これらは Tomcat Web サイトで公開されています。

  • まだリリースされていないバージョンの変更履歴ファイル

    これらはソースコードで利用できます。

    スタイルシートが添付された XML 形式です。したがって、最新の Web ブラウザーはそれらをきれいに表示できます。

    ファイルは、ナイトリードキュメントビルドでも利用できます。詳細については、Buildbot ページをご覧ください。

リンク

製品 変更履歴(リリース済み) 変更履歴(未リリース)
Tomcat 11.0(メイン) changelog.html changelog.html - CI
Tomcat 10.1 changelog.html changelog.html - CI
Tomcat 9.0 changelog.html changelog.html - CI
Tomcat コネクタ changelog.html changelog.xml
Tomcat Native 2.0 changelog.html changelog.xml
Tomcat Native 1.2 changelog.html changelog.xml

サードパーティコンポーネント

Tomcat は、他のいくつかのプロジェクトからのライブラリをバンドルします。詳細については、ディストリビューションの RELEASE-NOTES ファイルと NOTICE ファイルを参照してください。 Tomcat のビルドに使用されたコンポーネントのバージョンは、ソースディストリビューションの build.properties.default ファイルで定義されています。

注目すべきコンポーネントは

  • Tomcat サービスランチャー – commons-daemon-*tomcatN.exetomcatNw.exe

    サービスランチャーは、Apache Commons Daemon プロジェクトによって提供されています。

    そのプロジェクトの用語を使用すると、*nixes ランチャーは jsvc と呼ばれ、Windows ランチャーは procrun と呼ばれます。 Tomcat ディストリビューションの tomcatN.exe および tomcatNw.exe プログラムは、Apache Commons Daemon バイナリディストリビューションから名前が変更された prunsrv.exe および prunmgr.exe にすぎません。

  • DBCP データベースプール実装 – tomcat-dbcp.jar

    このプール実装は、Apache Commons Pool および Apache Commons DBCP プロジェクトによって提供されています。

    これらの 2 つのプロジェクトのクラスは、Web アプリケーションで同じライブラリが使用されている場合に競合を回避するために、別のパッケージに名前が変更され、再コンパイルされて 1 つの JAR ファイルにパックされます。

  • JDBC データベースプール実装 – tomcat-jdbc.jar

    このプール実装は Tomcat 7 以降で利用可能であり、Tomcat モジュールの一部である jdbc-pool プロジェクトから提供されています。このライブラリは、メイン Tomcat と並行して開発されています。

  • Tomcat Maven プラグインサブプロジェクトは、JIRA データベースで問題を追跡します。

Apache Tomcat のバグの報告

問題が Apache Tomcat のバグであり、Web アプリケーションのバグではないことを確認してください。

セキュリティ関連の問題は、Bugzilla を介して報告するべきではありません

バグ報告の書き方

できるだけ多くの情報を提供してください。問題を調べている人がそれを再現できない場合、バグを修正するのは非常に困難です。バグの書き方ガイドラインも参照してください。

バグの送信はこちらから始まります。バグレポートには次の情報を含める必要があります

  • 製品。サポートされている製品のリストを次に示します

    • Tomcat 11 – Tomcat 11.1.x および tomcat.apache.org Web サイト
    • Tomcat 10 – Tomcat 10.1.x
    • Tomcat 9 – Tomcat 9.0.x
    • Tomcat コネクタ – Tomcat と他の Web サーバーとの統合。 Apache HTTPD およびその他の Web サーバー用の mod_jk モジュール。
    • Tomcat Native – ネイティブコードを使用し、Apache APR および OpenSSL ライブラリとリンクされた Tomcat 用の HTTP および AJP コネクタ
    • Tomcat モジュールjdbc-pool などの追加の Tomcat コンポーネント
    • Taglibs – Apache Taglibs サブプロジェクト
  • バージョン – Apache Tomcat バージョン。

    リストから選択するだけでなく、テキストでも言及してください。バグの説明は更新できるため、テキストでバージョンについて言及することも重要です。

  • コンポーネント – バグがあるコンポーネント。

    わからない場合は、推測してください。

  • プラットフォームOS – Tomcat が実行されているハードウェアプラットフォームとオペレーティングシステム。

  • 重要度 – これは通常、通常のバグレポートの場合は normal で、機能拡張リクエストの場合は enhancement です。

    critical としてマークする傾向がある場合は、おそらく間違っています。問題はすでに認識されており、修正されているか、そもそも問題ではない可能性があります。

  • 構成の詳細

    テキストでこれらについて言及してください

    • Java バージョン – Tomcat の実行に使用される Java Runtime Environment のベンダーとバージョン。
    • Tomcat が Apache HTTPD または他の Web サーバーの背後で使用されている場合 – そのバージョンと構成方法。
    • 使用されている Tomcat コネクタ。 Tomcat にはコネクタの実装がいくつかあります。使用されているコネクタは、Tomcat の起動時にログに表示されます。
  • 添付ファイル

    バグの追跡に役立つ場合は、構成ファイルと Tomcat ログファイルを添付してください。

  • 再現手順

    クリーンな Tomcat インストールで問題を再現する方法を説明してください。可能な場合は、問題を示す簡単なサンプル Web アプリケーションを提供してください。

パッチと機能拡張リクエストの送信方法

Tomcat の機能拡張リクエストは、バグレポートと同じ手順で送信されますが、重要度フィールドで値「enhancement」を選択します。

GitHub 経由で利用できるコンポーネントの場合は、プルリクエストとして提案されたパッチを提供できます。または、提案されたパッチを Bugzilla の問題に添付することもできます。パッチを提供する場合は、ソースコードのどのバージョンに適用されるかを明記してください。パッチは歓迎されますが、Unified Diff 形式を使用するパッチを推奨します。これらは、diff -u コマンドまたは svn diff または git diff コマンドを使用して生成できます。

Apache Tomcat にパッチを適用してビルドするには、次の参照を参照してください

ドキュメントパッチを準備するには

ソースディストリビューションの BUILDING.txt ファイルのドキュメントのビルドに関するセクションをお読みください。通常、Tomcat のバージョンのドキュメントは、ソースコードの webapps/docs/ ディレクトリにあり、ant build-docs コマンドでビルドできます。

ドキュメントをビルドするには、Java ランタイムと Apache Ant のコピーがあれば十分です。 Tomcat コードのコンパイルは不要です。

一般的な参考文献

セキュリティ問題

セキュリティ関連のバグは特に注意が必要です。報告する検証済みのセキュリティバグがある場合は、公開メールリストに投稿したり、バグレポートを送信したりしないでください。報告方法については、セキュリティレポートページをご覧ください。