Configuration Manager 2007 : SMS_SITE_BACKUP SMS_SITE_VSS_WRITER not starting... whats my locale
This is probably one of the rare occurence but worth mentioning I thought, The SMS_SITE_BACKUP and SMS_SITE_VSS_WRITER Services are set to run under the LOCALSYSTEM.Whenever you attempt to start the service it would generate CRASHDUMP and stop with below exception, SMS Executive was not effected in this case.
===========================================
EXCEPTION INFORMATION
Time = 02/10/2009 16:54:25.183
Service name =
Thread name = Unknown
Executable = D:\Program Files\Microsoft Configuration Manager\bin\i386\smssqlbkup.exe
Process ID = 4380 (0x111c)
Thread ID = 4388 (0x1124)
Instruction address = 764342eb
Exception = e06d7363 (Unknown exception code)
Description = ""
Raised inside CService mutex = No
CService mutex description = ""
===========================================
EXCEPTION INFORMATION
Time = 02/10/2009 16:54:27.367
Service name = SMS_SITE_VSS_WRITER
Thread name = SMS_SITE_VSS_WRITER
Executable = D:\Program Files\Microsoft Configuration Manager\bin\i386\smswriter.exe
Process ID = 3456 (0xd80)
Thread ID = 4756 (0x1294)
Instruction address = 764342eb
Exception = e06d7363 (Unknown exception code)
Description = ""
Raised inside CService mutex = No
CService mutex description = ""
===========================================
Log Name: System
Source: Service Control Manager
Date: 2/25/2009 3:06:07 PM
Event ID: 7034
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: <SMSSERVER>
Description:
The SMS_SITE_VSS_WRITER service terminated unexpectedly. It has done this 27 time(s).
===========================================
Log Name: System
Source: Service Control Manager
Date: 2/25/2009 3:06:02 PM
Event ID: 7034
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: <SMSSERVER>
Description:
The SMS_SITE_SQL_BACKUP service terminated unexpectedly. It has done this 27 time(s).
===========================================
We do not get any access denied in procmon.
Based on crash dump It seemed like it was crashing on reading Locale Info
STACK TRACE FOR SMS_SITE_VSS_WRITER THREAD 348 (0x15c) AT 02/25/2009 21:22:07.940
EAX: 00c8faac CS: 001b EIP: 00000000 EFLAGS: 00000206
EBX: 00c8fe74 SS: 2c0023 ESP: 00000008
ECX: 00000000 DS: 0023 EBP: 00000000
EDX: 00000003 ES: 0023
ESI: 00c8fb34 FS: 77ec003b
EDI: 00000000 GS: 77e60000
Module Address Offset Function + Displacement # Params Possible Values Of First Four Params Decorated Function Name
===================================================================================================================================================
kernel32.dll 77e4bee7 0000bee7 RaiseException() + 60 bytes Unknown e06d7363 00000001 00000003 00c8fb28 RaiseException
MSVCR80.dll 78158e89 00028e89 CxxThrowException() + 70 bytes Unknown 00c8fb54 7c458cd4 2BAAE639 00000000 _CxxThrowException
MSVCP80.dll 7c425093 00005093 std::_Locinfo::_Locinfo() + 113 bytes Unknown 0000003f 00000000 2BAAE1B5 00000000 ??0_Locinfo@std@@QAE@HPBD@Z
MSVCP80.dll 7c425433 00005433 std::locale::locale() + 102 bytes
Unknown 00000000 00c8fc8c 78138CED 53795290 ??0locale@std@@QAE@PBDH@Z
Unknown 00c8fc08 Unknown Unknown
We attempted to test reading Locale outside SCCM
https://msdn.microsoft.com/en-us/library/x99tb11d(VS.71).aspx
==========================================
#include "stdafx.h"
#include <iostream>
#include <locale.h>
int _tmain(int argc, _TCHAR* argv[])
{
char* Loc;
using std::locale;
Loc=setlocale(LC_ALL, "");
if(Loc==NULL)
{
try{
locale OSLocale(Loc);
}catch(...){printf("Exception ");}
printf("\locale returned NULL\n");
}
else
{
printf("\nLocale Set to %s\n",Loc);
}
return 0;
}
=================================
## Compile on Visual Studio 2005 (VCRT8.0)
Condition1:
========
Ran the sample.exe (locale test program) it ran fine
Condition2:
========
Ran the same program with System context (using AT command) it threw exception as excepted
Collected the procmon trace with both conditions
Procmon with Condition2 had addtional reference to locale hi-in
17 10:53:00.0498428 AM vc8.exe 10296 RegOpenKey HKLM\System\CurrentControlSet\Control\Nls\CustomLocale SUCCESS Desired Access: Read
18 10:53:00.0498601 AM vc8.exe 10296 RegQueryValue HKLM\System\CurrentControlSet\Control\Nls\CustomLocale\hi-IN NAME NOT FOUND Length: 532
The Locale was set to US-English everywhere but system seems to be picking hi-in
Solution
=========
Since it was running with User profile
We went to Regional and Language Options (everything was US-English)
> Clicked on the Administrative TAB
> Clicked Copy to Reserved Accounts
> Selected Check box System account (Local System, Local Service, and network service)
We ran the sample.exe from above code, this time it worked with System Credentials
So did the SMS_SITE_BACKUP and SMS_SITE_VSS_WRITER Services.
I hope you find this post useful
Jeevan Bisht | Support Escalation Engineer