稀に WsusService.exe が意図せず停止する事象について

Last Update:

みなさま、こんにちは。WSUS サポート チームです。

今回は WSUS 環境で稀に発生が報告されている、意図せず WsusService.exe が停止してしまう事象について紹介をします。この事象が発生した場合には、「%programfiles%\Update Services\LogFiles」フォルダ内に保存されている SoftwareDistribution.log もしくは SoftwareDistribution.log.old にサービスが停止したタイミングにて、以下の記録が行われます。

1
2
3
4
5
6
7
8
9
10
YYYY-MM-DD HH:MM:SS   UTC   Error  WsusService.3  ContentSyncAgent.ProcessSqlException  File RowId: de386af7-2fd1-44a6-86a8-ee4db3d571ec: ActualState: DownloadingFile; Event: FileDownloaded; SqlException.Number: 50000; SqlException.State: 1; Message: spFireStateMachineEventEx found invalid EventName: FileDownloaded, FROM State: FileReady, on StateMachineName: FileOnServerActualStateMachine
spFireStateMachineEvent got failure from spFireStateMachineEventEx for StatemachineName: FileOnServerActualStateMachine, RowID: 6f65e2a6-ffe6-40fd-ba56-925b11ef100c, EventName: FileDownloaded
   場所 Microsoft.UpdateServices.ServerSync.ContentSyncAgent.ProcessSqlException(Int32& numRetry, Int32 sqlExceptionNumber, String errorMessage)
   場所 Microsoft.UpdateServices.ServerSync.ContentSyncAgent.ContentSyncSPFireStateMachineEvent(DataAccess da, Guid rowId, String actualState, String eventToFire)
   場所 Microsoft.UpdateServices.ServerSync.ContentSyncAgent.ProcessBITSNotificationQueue()
   場所 Microsoft.UpdateServices.ServerSync.ContentSyncAgent.WakeUpWorkerThreadProc()
   場所 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   場所 System.Threading.ThreadHelper.ThreadStart()

※ このログ ファイルは UTC 時刻にて記録が行われます。

通常この事象が発生した場合でも、WsusService.exe はその直後に起動されるため、大きな影響を与えることはございません。詳細について以下にご案内していきます。

事象の概要

この事象は、WSUS サーバーが弊社サイトや上位の WSUS より、複数の更新プログラムに紐づく同一のファイルの処理のダウンロードを行った際に、内部的に更新プログラムのダウンロードの遷移を管理している処理において、意図しない遷移が稀に発生し、WsusService.exe が強制終了されてしまう事象となります。

複数の更新プログラムにて、同一のファイルが参照されることは、更新プログラムのリリース形態として起こり得るものであるにも関わらず、WSUS の製品として、このような状況を想定した処理が行われていないために、本問題が発生することがあります。

残念ながら現時点では本問題について、発生が報告されている環境においても、発生頻度も低く (数ヶ月に一度等) 問題に対する修正は行われておりません。

対処方法

上述の通り、この事象が発生した場合でも WsusService.exe はその直後に起動されるため、大きな影響を与えることはなく、通常は対処を実施していただく必要はございません。

また、この事象は、複数の更新プログラムに紐づく同一のファイルの処理のダウンロードを行った際に発生するため、リリース形態上 Windows Defender や Endpoint Protection の定義更新ファイルの自動承認、ダウンロードをしている環境にて発生し易い傾向があります。運用上可能であれば、定義更新ファイルの自動承認を停止していただくことや、最新の定義ファイルのみがダウンロードされるよう手動での承認を実施していただくことも事象の回避策として有効となります。