Sql-server – SSIS ETLs deadlocking

sql serversql-server-2008-r2ssis

We have an SSIS package in our SQL Server 2008 server to load data onto our system every night. The SSIS package consists of several ETLs (around 20) that are currently run sequentially.

On some nights it spits out below deadlock messages for certain ETLs.
Some nights pass with no errors at all. Every night what's run on the server is the same.

The specific ETLs deadlocking are not the same. For instance,

  • Monday it'll be ETL1, ETL3, ETL9.
  • Tuesday & Wednesday – all OK.
  • Thursday – ETL2, ETL5, ETL6, ETL7.
  • Friday – all OK.

Below is the 19th night's error message in SQL Server Agent:

Executed as user: localhost. Microsoft (R) SQL Server Execute Package Utility Version 10.0.5500.0 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 04:26:33 Error: 2016-11-19 04:31:00.39 Code: 0xC0202009 Source: DFT_Extract_ETL1 OLE_DST_ETL_Destination [68] Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft OLE DB Provider for SQL Server" Hresult: 0x80004005 Description: "Transaction (Process ID 65) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.". End Error Error: 2016-11-19 04:31:00.61 Code: 0xC0209029 Source: DFT_Extract_ETL1 OLE_DST_ETL_Destination [68] Description: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "input "RC_Rows_Inserted_Output_OLE_DST_ACTIVITY" (81)" failed because error code 0xC020907B occurred, and the error row disposition on "input "RC_Rows_Inserted_Output_OLE_DST_ACTIVITY" (81)" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure. End Error Error: 2016-11-19 04:31:00.84 Code: 0xC0047022 Source: DFT_Extract_ETL1 SSIS.Pipeline Description: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE_DST_ETL_Destination" (68) failed with error code 0xC0209029 while processing input "RC_Rows_Inserted_Output_OLE_DST_ACTIVITY" (81). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure. End Error Error: 2016-11-19 04:31:01.11 Code: 0xC02020C4 Source: DFT_Extract_ETL1 OLE_SRC_ETL1[1] Description: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020. End Error Error: 2016-11-19 04:31:01.31 Code: 0xC0047038 Source: DFT_Extract_ETL1 SSIS.Pipeline Description: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "OLE_SRC_ETL1" (1) returned error code 0xC02020C4. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 04:26:33 Finished: 04:41:09 Elapsed: 875.54 seconds. The package execution failed. The step failed.

Best Answer

Check out this link. It has clear explanation of digging down the issue.

https://stackoverflow.com/questions/8390322/cause-of-a-process-being-a-deadlock-victim