Command sp_cycle_agent_errorlog is failing

 

 

Problem description: on ours SQL Server 2008, when we execute "EXECUTE msdb.[dbo].[sp_cycle_agent_errorlog] ", we got the error message below:

    Msg 22022, Level 16, State 1, Line 0
    SQLServerAgent Error: 32.

Work done:

 

Step1: We can see that the log is recycled. The file SQLAGENT.OUT contains for each execution the message below:

   [412] Errorlog has been reinitialized.  See previous log for older entries.

Step2: Inside the procmon, we can see a          SHARING VIOLATION

 

Event Class: File SystemOperation: CreateFileResult: SHARING VIOLATIONPath: H:MSSQL10.MSSQLSERVERMSSQLLogSQLAGENT.OUTDesired Access: Read Attributes, Delete, SynchronizeDisposition: OpenOptions: Synchronous IO Non-Alert, Open Reparse PointShareMode: Read, Write, Delete

Step3: With process explorer, I didn’t see that another process owns the same file SQLAGENT.OUT

 

Cause: After investigation, we can see that SQLAgent.exe is locked by himself. If you run Handle you will see that 2 handle are opened. And it should be only one. It look like a handle leak.

 

 

C:>handle.exe -a sqlagent.out

 

SQLAGENT.EXE       pid: 13196  type: File           FA4: H:MSSQL10.MSSQLSERVERMSSQLLogSQLAGENT.OUTSQLAGENT.EXE       pid: 13196  type: File          10AC: H:MSSQL10.MSSQLSERVERMSSQLLogSQLAGENT.OUT

 

C:>tasklist |findstr 13196SQLAGENT.EXE                 13196 Services                   0     52 096 K

 

 

Current workaround: Restart SQL Agent service on server.

 

 NB : currently I am investigating my colleague from Microsoft Support (3rd December 2013)

 

Regards,

Michel Degremont | Xbox Live Music - Data Engineer - SQL Server & PDW |