サポートアドバイザリ:非常に長いメソッド署名を持つアプリケーションが 4.3.0 または 4.3.1.0 でクラッシュする場合がある

このドキュメントでは、AppDynamics 製品のサポートアドバイザリについて説明します。

概要

AppDynamics では、インストルメント化されたアプリケーションが 2048 文字より長い署名を持つメソッドを呼び出すときにトリガーされる問題を発見しました。この場合、アプリケーションは管理対象外の例外をスローしてクラッシュします。このクラッシュは、4.3 の新しいプロファイラ ロギング メカニズムが、十分なバッファが割り当てられていないプロファイラログファイルに文字列を書き込もうとした結果です。

影響を受けるソフトウェア

この問題は、.NET エージェントバージョン 4.3.0.x および 4.3.1.0。に影響します。

影響

インストルメント化されたアプリケーションが 2048 文字より長い署名を持つメソッドを呼び出すと、 Windows イベントログに示されている次のような例外でアプリケーションがクラッシュします。

Faulting application name: w3wp.exe, version: 8.5.7656.xxxxxxx, time stamp: 0x3xxxxxx
Faulting module name: MSVCR120.dll, version: 12.0.21005.1, time stamp: 0x524f83ff
Exception code: 0xxxxxxxxxx
Fault offset: 0x00000000000xxxxx
Faulting process id: 0xef36
Faulting application start time: 0x0xxxxxxx
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Windows\system32\MSVCR120.dll

解像度

この問題は 4.3.1.3 で解決されています。.NET エージェントの 4.3.0.x または 4.3.1.0 バージョンを実行しているお客様は以下を実行する必要があります。

  • 4.3 の最新バージョンへのアップグレード、または
  • 以下のように、認識されないメソッドとプロファイリングロギングのインストルメンテーションを中止するように .NET エージェントを設定します。
    1. AppDynamics インストールフォルダで、AppDynamicsAgentLog.config を編集し、次の行を削除するかコメントアウトします。

      <target name="Profiler" xsi:type="File" archiveAboveSize="12000000" maxArchiveFiles="2" createDirs="True" fileName="C:\ProgramData\AppDynamics\DotNetAgent\Logs\Profiler" layout="${longdate} ${processid} ${appdomainid} ${threadid} ${level} ${logger:shortName=True} ${message}" />
      ..and…
      <logger name="com.appdynamics.profiler.*" minLevel="Info" writeTo="Profiler" />
    2. AppDynamics 構成フォルダ内の config.xml ファイルを編集して、<app-agents> タグを追加します。

      <profiler>
      <assembly-white-list use-default="true">
      </assembly-white-list>
      </profiler>