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