Today I’ve run into a deadlock on my test 11gR2 database. The deadlock wasn’t something peculiar, but generated trace file was.
Here what I’ve got in Cursor dump:
Cursor#6(0x350ed0) state=BOUND curiob=0x12d7980 curflg=c5 fl2=0 par=(nil) ses=0x3ffc13e8 ----- Dump Cursor sql_id=6ju4ghfvgj73a xsc=0x12d7980 cur=0x350ed0 ----- LibraryHandle: Address=3b1771cc Hash=b6f89c6a LockMode=N PinMode=0 LoadLockMode=0 Status=VALD ObjectName: Name=UPDATE T SET ID = ID+1 WHERE ID = :B1 FullHashValue=37b79ec71944feb068e88f83b6f89c6a Namespace=SQL AREA(00) Type=CURSOR(00) Identifier=3069746282 OwnerIdn=60 Statistics: InvalidationCount=0 ExecutionCount=3 LoadCount=2 ActiveLocks=2 TotalLockCount=3 TotalPinCount=1 Counters: BrokenCount=1 RevocablePointer=1 KeepDependency=1 KeepHandle=1 BucketInUse=2 HandleInUse=2 Concurrency: DependencyMutex=3b177234(0, 3, 0, 0) Mutex=3b177280(1, 31, 0, 6) Flags=RON/PIN/TIM/PN0/DBN/[10012841] WaitersLists: Lock=3b177224[3b177224,3b177224] Pin=3b17722c[3b177214,3b177214] Timestamp: Current=12-08-2009 23:18:30 LibraryObject: Address=38f71f7c HeapMask=0000-0001-0001 Flags=EXS[0000] Flags2=[0000] PublicFlags=[0000] ChildTable: size='16' Child: id='0' Table=38f72ef8 Reference=38f72584 Handle=3f9da650 Children: Child: childNum='0' LibraryHandle: Address=3f9da650 Hash=0 LockMode=N PinMode=S LoadLockMode=0 Status=VALD Name: Namespace=SQL AREA(00) Type=CURSOR(00) Statistics: InvalidationCount=0 ExecutionCount=3 LoadCount=1 ActiveLocks=2 TotalLockCount=3 TotalPinCount=4 Counters: BrokenCount=1 RevocablePointer=1 KeepDependency=0 KeepHandle=0 BucketInUse=0 HandleInUse=0 Concurrency: DependencyMutex=3f9da6b8(0, 0, 0, 0) Mutex=3b177280(1, 31, 0, 6) Flags=RON/PIN/PN0/EXP/[10012111] WaitersLists: Lock=3f9da6a8[3f9da6a8,3f9da6a8] Pin=3f9da6b0[3f9da698,3f9da698] LibraryObject: Address=38f70f7c HeapMask=0000-0001-0001 Flags=EXS[0000] Flags2=[0000] PublicFlags=[0000] DataBlocks: Block: #='0' name=CCUR^b6f89c6a pins=0 Change=NONE Heap=3f9da5e4 Pointer=38f71000 Extent=38f70f64 Flags=I/-/P/A/-/- FreedLocation=0 Alloc=2.640625 Size=3.964844 LoadTime=4295513410 Block: #='6' name=SQLA^b6f89c6a pins=0 Change=NONE Heap=38f7242c Pointer=3959afe4 Extent=3959a1fc Flags=I/-/P/A/-/E FreedLocation=0 Alloc=6.687500 Size=7.945312 LoadTime=0 NamespaceDump: Child Cursor: Heap0=0x38f71000 Heap6=0x3959afe4 Heap0 Load Time=12-08-2009 23:18:30 Heap6 Load Time=12-08-2009 23:18:30 NamespaceDump: Parent Cursor: sql_id=6ju4ghfvgj73a parent=0x38f72000 maxchild=1 plk=y ppn=n kkscs=0x38f7236c nxt=(nil) flg=18 cld=0 hd=0x3f9da650 par=0x38f72000 Mutex 0x38f7236c(0, 0) idn 0 ct=0 hsh=0 unp=(nil) unn=0 hvl=38f72f44 nhv=0 ses=(nil) hep=0x38f723c0 flg=80 ld=1 ob=0x38f70f7c ptr=0x3959afe4 fex=0x3959a1fc cursor instantiation=0x12d7980 used=1260303716 exec_id=16777218 exec=1 child#0(0x3f9da650) pcs=0x38f7236c clk=0x3b251e04 ci=0x38f71000 pn=0x3fa2d4c0 ctx=0x3959afe4 kgsccflg=1 llk[0x12d7984,0x12d7984] idx=1006b xscflg=c0110676 fl2=d120000 fl3=422a2188 fl4=100
Looks familiar, but is different from 10g, no doubt. I can’t compare it with 10g trace today, will do tomorrow.
PS. Obviously a .NET developer has done AllThatStuff 😀 Java man would do something similar too, but obviouslyNotLikeThat. I guess I should be thankful to not see CrEePyStYlE.