10.1.500.26 - LaborDtl Deadlock Issues?

Does anyone have Deadlock Issues on .26 / .27 with LaborDtl. Logs are daily filled with Deadlocks on .26. Typically around Lunch Time, AM and PM Clockouts.

   at Erp.Triggers.LaborDtl.WriteTrigger.SelectLaborDtlWithUpdLockForceSeek(String company, Int32 parentLaborDtlSeq, Boolean postedToGL) in C:\_Releases\ERP\UD10.1.500.26\Source\Server\Db\Triggers\LaborDtl\Write.Queries.cs:line 721
   at Erp.Triggers.LaborDtl.WriteTrigger.UpdateChildStatus(String laborDtlCompany, Int32 laborDtlSeq, String laborDtlTimeStatus) in C:\_Releases\ERP\UD10.1.500.26\Source\Server\Db\Triggers\LaborDtl\Write.cs:line 1801

Perhaps less than helpful but we don’t see those issues in 10.1.500.19 BUT we don’t clock in\out in E10

@Chris_Conn in .19 atleast we had and still have MRP / Scheduling Deadlocks on JobAsmbl and JobMtl when doing Multi-Job (Job 2 Job) Jobs and Pull as Assembly. Working with Epicor to resolve it we have an unofficial fix we are testing with them.

You might want to enable all the T-Flags in SQL that the Performance and Diagnostic Tools tells you to enable and glance at your SQL ErrorLog once in a while - you might have alot of deadlocks you dont know about.

Just an Internal Email I sent:

I glanced at the SQL Error Logs yesterday and notice that for the past 7 days there are some weird deadlocks on LaborDtl and then I looked at all the AppServer log files going back 14 days and starting last Wednesday – Today. The deadlocks are consistent with times of Clock In/Clock Out or Perhaps Start/End Activity (AM, Lunch, PM). The odd part is that Monday, Tuesday there was no issue(s) yet we were on .26 long before that. It started on Wednesday+.

I couldn’t replicate it in TST I grabbed a bunch of random Employee Numbers and started hammering Clock In / Clock Out, Start / End Activity – Could be a special Job that somehow has Children or some loop.

I didn’t notice any data corruption or gaps, however I could be missing something and that is what worries me what does this deadlock do if left unfixed. I enabled SQL Profiler Tracer and I am in the process of collecting the proper information to send to our Deadlock Expert at Epicor to find out what is going on and are we causing data corruption.

It doesn’t seem to happen for every user 5 / 90. I can’t pinpoint exactly who and what Job #. All I know it seems to happen at:

at Erp.Triggers.LaborDtl.WriteTrigger.SelectLaborDtlWithUpdLockForceSeek(String company, Int32 parentLaborDtlSeq, Boolean postedToGL) in C:_Releases\ERP\UD10.1.500.26\Source\Server\Db\Triggers\LaborDtl\Write.Queries.cs:line 721

at Erp.Triggers.LaborDtl.WriteTrigger.UpdateChildStatus(String laborDtlCompany, Int32 laborDtlSeq, String laborDtlTimeStatus) in C:_Releases\ERP\UD10.1.500.26\Source\Server\Db\Triggers\LaborDtl\Write.cs:line 1801

Something about SelectLaborDtlWithUpdLockForceSeek and UpdateChildStatus (I think this one is causing the deadlock)

If anyone has any pointers or hints as to what to look into or at, or what happened on Wednesday – any help is appreciated.

Thanks for the info. @tfenwick11 Good stuff here.

@Chris_Conn Nice. putting in my log