SNMP サービスの停止時にアプリケーションエラーが発生することがある

適用対象: Windows Server 2008 Service Pack 2Windows Server 2008 R2 StandardWindows Server 2008 R2 Datacenter

現象


以下のシナリオを考えます。
- MIB2 のアクセスを数秒間隔で連続的に実施する。
- 任意のタイミングで SNMP サービスを再起動する。

このシナリオで運用している環境で、SNMP サービスの停止、または再起動を伴う操作を行った際に、アプリケーション エラーが発生することがあります。
アプリケーション イベントログに以下のような内容が記録されます。
ソース:           Application Error
イベント ID:      1000
タスクのカテゴリ: アプリケーション クラッシュ イベント
レベル:           エラー
説明:
障害が発生しているアプリケーション snmp.exe
バージョン 6.0.6001.18000、タイム スタンプ 0x47919ac1
障害が発生しているモジュール unknown、バージョン 0.0.0.0
タイム スタンプ 0x00000000、例外コード 0xc0000005
障害オフセット 0x0000000000000018


原因


MIB2 のアクセス中に SNMP サービスの停止や、再起動を行った場合に SNMP サービス (snmp.exe) でアプリケーションエラーが発生することがあります。
この現象は、SNMPサービスが終了するときに利用しているプログラムのスタック領域が、受信処理の情報に書き換えられてしまうことが原因で発生します。

解決方法


本現象は、SNMP サービスがメッセージを受信する処理の実装上発生しうる問題ですが、サードパーティ製の拡張エージェントが導入されていない場合、この問題が発生した後の OS が提供している MIB2 の情報や、SNMP サービス起動後の動作に影響を与えることはないため、修正プログラムは用意されておりません。

サードパーティ製品の SNMP 拡張エージェントが導入されている場合、SNMP サービスがアプリケーション エラーを発生した場合の影響については、製品開発元へお問い合わせください。

状況


マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

詳細


当現象は、Windows Server 2008 以降の OS にて発生することを確認しています。