SQL SERVER. Al escalar de forma simultanea incrementos dio error de edeadlock. Adjunto archivo para su análisis WorkflowService_20180207.LOG (algunos códigos de flujo que se intentaron escalar en el mismo momento: 1588b03c-8d79-48c2-a114-d9d635cd87f4 ; 5a0f6f64-deda-463c-922e-021bcd999bdc ; ab5fdd24-01f5-48aa-9f51-e63f0d66bec8 ; b79446f6-e474-43dc-b4df-da0c6949fad1 ; c411f7e8-6f3a-4980-bb7e-2e89de487281)


Aseinfo.Infrastructure.Base.Exceptions.AuthorizationWorkflowException: Sucedio un error en el flujo. Se está logueando el exception interno y luego se logueará el que terminará la instancia ---> System.Data.Entity.Core.UpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Transaction (Process ID 108) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.     at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)     at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)     at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)     at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()     at System.Data.SqlClient.SqlDataReader.get_MetaData()     at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)     at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)     at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)     at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)     at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)     at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)     at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)     at System.Data.Entity.Core.Mapping.Update.Internal.DynamicUpdateCommand.Execute(Dictionary`2 identifierValues, List`1 generatedValues)     at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()     --- End of inner exception stack trace ---     at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()     at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)     at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction)     at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)     at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction)     at Aseinfo.VH4.Data.AppDataContext.SaveChanges(SaveOptions options) in C:\vh4\VH4\Data\AppDataContext.cs:line 98     at Aseinfo.Infrastructure.Base.Entity.EntityServiceBase`2.SaveChanges() in C:\vh4\Infrastructure\Base\Entity\EntityServiceBase.cs:line 563     at Aseinfo.Infrastructure.Base.Entity.EntityServiceBase`2.DoUpdate(T entity, Boolean saveChanges) in C:\vh4\Infrastructure\Base\Entity\EntityServiceBase.cs:line 996     at Aseinfo.VH4.WorkflowServices.Services.AuthorizationWorkflowService.EscalarActividad(Int32 codigoActividad) in C:\vh4\VH4\WorkflowServices\WorkflowServices\Services\AuthorizationWorkflowService.cs:line 486     at Aseinfo.VH4.WorkflowServices.Services.AuthorizationWorkflowStaticService.EscalarActividad(Int32 codigoActividad, WorkflowContext context) in C:\vh4\VH4\WorkflowServices\WorkflowServices\Services\AuthorizationWorkflowStaticService.cs:line 160     --- End of inner exception stack trace ---     at System.Activities.Statements.MethodExecutor.InvokeAndUnwrapExceptions(Func`3 func, Object targetInstance, Object[] actualParameters)     at System.Activities.Statements.MethodResolver.SyncMethodExecutor.BeginMakeMethodCall(AsyncCodeActivityContext context, Object target, AsyncCallback callback, Object state)     at System.Activities.Statements.MethodExecutor.BeginExecuteMethod(AsyncCodeActivityContext context, AsyncCallback callback, Object state)     at System.Activities.AsyncCodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)     at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

LOG DEL SQL SERVER


***UN INSTANTE ANTES
Date        2/7/2018 12:39:00 AM
Log     SQL Server (Current - 11/28/2017 1:59:00 PM)

Source Logon

****INICIO Message Login succeeded for user 'NT AUTHORITYSYSTEM'. Connection made using Windows authentication. [CLIENT: <local machine="">] Date 2/7/2018 12:39:08 AM Log SQL Server (Current - 11/28/2017 1:59:00 PM)

Source Logon

****DESPUÉS APARECEN 12 REGISTROS IDÉNTICOS COMO LOS SIGUIENTES (LOS SERVICIOS SE CONECTAN COMO LOCAL SYSTEM) Message Login succeeded for user 'evolution'. Connection made using SQL Server authentication. [CLIENT: X.XXX.XX.XXX]

Date 2/7/2018 12:39:10 AM Log SQL Server (Current - 11/28/2017 1:59:00 PM)

Source Logon

Message Login succeeded for user 'NT AUTHORITYSYSTEM'. Connection made using Windows authentication. [CLIENT: <local machine="">]

asked 15 Feb '18, 13:58

Jimy%20Tobar's gravatar image

Jimy Tobar ♦♦
(suspended)
accept rate: 56%

edited 19 Feb '18, 15:59


Pareciera que el problema sucedió porque se bloqueo la inserción sobre la tabla de los responsables de autorización de las instancia de flujo; como puede verse en el LOG, se escalaron un monton de transacciones antes que empezara a cancelar las que recibieron la instrucción de muerte que envió SQL Server, y posteriormente al problema, todo el proceso continuo trabajando normalmente.

Si revisas el LOG todas las operaciones entre las 12:39:08 y las 12:39:10 se rechazaron por el DEADLOCK. Con esta información podrías ver el LOG de SQL Server a esa hora y verificar sesiones de base de datos trabaron todo el procesamiento del Workflow. Así tendrías una explicación más certera de que sucedió y podrías prevenir que vuelva a suceder.

De todos los escalamientos procesados las que dieron error fueron únicamente nueve:

2018-02-07 12:39:08,135 [25] ERROR Aseinfo.VH4.WorkflowServices.Activities.LogException - Se dió un error en la ejecución del workflow bcb9eeed-d80b-4f7f-949d-193e9596e96c
2018-02-07 12:39:08,135 [28] ERROR Aseinfo.VH4.WorkflowServices.Activities.LogException - Se dió un error en la ejecución del workflow 99b76182-b421-4bfb-b0ba-4c11e542aa63
2018-02-07 12:39:08,135 [37] ERROR Aseinfo.VH4.WorkflowServices.Activities.LogException - Se dió un error en la ejecución del workflow c8c0467d-7657-4112-b0c0-544049a023c6
2018-02-07 12:39:08,151 [32] ERROR Aseinfo.VH4.WorkflowServices.Activities.LogException - Se dió un error en la ejecución del workflow ad2e5ceb-e973-4388-bb6b-b262f16e227b
2018-02-07 12:39:08,151 [31] ERROR Aseinfo.VH4.WorkflowServices.Activities.LogException - Se dió un error en la ejecución del workflow fd081467-ac61-42de-abd2-bd2f318d8767
2018-02-07 12:39:08,167 [29] ERROR Aseinfo.VH4.WorkflowServices.Activities.LogException - Se dió un error en la ejecución del workflow e8810f96-b626-4d9b-85e3-75be97219388
2018-02-07 12:39:08,151 [33] ERROR Aseinfo.VH4.WorkflowServices.Activities.LogException - Se dió un error en la ejecución del workflow b164b084-f6eb-45ef-96bf-2b48f417737f
2018-02-07 12:39:10,635 [35] ERROR Aseinfo.VH4.WorkflowServices.Activities.LogException - Se dió un error en la ejecución del workflow 25873c94-771b-434c-b0ff-e7a920dabcba
2018-02-07 12:39:10,635 [26] ERROR Aseinfo.VH4.WorkflowServices.Activities.LogException - Se dió un error en la ejecución del workflow 67ac8307-9457-40ca-8993-f399f5d9df9a

De todas formas gracias por el reporte, observando el fuente parece que se puede eliminar una transacción que se crea y que quizá este demás, pero esto solamente podría reducir la posibilidad que suceda de nuevo, sería mejor que identificaras en los LOGS de SQL que operación trabó todo.

Se creó el Incidente EVO-3565 para revisar si se puede eliminar la transacción sospechosa, si se logra eliminar, el arreglo se incluirá en el próximo Hotfix.

link

answered 15 Feb '18, 14:43

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

edited 15 Feb '18, 14:46

Gracias, al final te coloco lo que encontré en el LOG DE SQL SERVER. Por lo que se ve hay 12 conexiones del SYSTEM en el mismo momento.

(19 Feb '18, 11:26) Jimy Tobar ♦♦ Jimy%20Tobar's gravatar image
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Evolution en BitBucket

En este sitio puede acceder al código fuente, centro de descargas y reportar bugs, propuestas y mejoras para Evolution.

Evolution en JIRA

En este sitio puedes sugerir nueva funcionalidad para Evolution, o puedes votar por la funcionalidad ya propuesta por otros usuarios.

Tags:

×20
×2

Asked: 15 Feb '18, 13:58

Seen: 601 times

Last updated: 19 Feb '18, 15:59

[Acerca de] [Preguntas Frecuentes] [Privacidad] [Soporte] [Contacto]
Copyright 2013-2018. Asesores en Informática