Monday, 11 August 2014

enq: DD - contention while adding ASM disk and ASM command hangs

Adding ASM disk:

SQL>alter diskgroup ASM_DATA01 add disk '/dev/oracleasm/disks/ASM_DATA05';

This statement hangs for hour's
So i have check wait events by login in as using sqlplus 
And the statement is with wait event enq: DD - contention

By taking hanganalyze and systemstate

Error:
Chains most likely to have caused the hang:
 [a] Chain 1 Signature: 'dbms_file_transfer I/O'<='enq: DD - contention'
     Chain 1 Signature Hash: 0xe4516dcb
              blocking: 0 sessions
             current sql: alter diskgroup ASM_DATA01 add disk '/dev/oracleasm/disks/ASM_DATA05'
             short stack: ksedsts()+461<-ksdxfstk()+32<-ksdxcb()+1900<-sspuser()+112<-__sighandler()<-semtimedop()+10<-skgpwwait()+160<-ksliwat()+1865<-kslwaitctx()+163<-ksqcmi()+2956<-ksqgtlctx()+3810<-ksqgelctx()+561<-kfgscAcquireLcl()+1492<-kfgUpgradeLcl()+767<-kfgUseGrp()+294<-kfgUseNum()+167<-kfdAdd()+2216<-kfgDiskAdd()+753<-kfxdrvDiskAdd()+170<-kfxdrvFailAddOne()+676<-kfxdrvFailAdd()+626<-kfxdrvAlterOne()+920<-kfxdrvAlter()+2287<-kfxdrvEntry()+1306<-opiexe()+20028<-opiosq0()+3993<-kpooprx()+274<-kpoal8()+800<-opiodr()+910<-ttcpip()+2
            wait history:
              * time between current wait and wait #1: 0.000016 sec
              1.       event: 'ASM file metadata operation'
                 time waited: 0.000048 sec (last interval)
                 time waited: 0.011621 sec (total)
                     wait id: 11              p1: 'msgop'=0x0
                                              p2: 'locn'=0x4
              * time between wait #1 and #2: 0.000000 sec
              2.       event: 'DFS lock handle'


Solution:

Ctrl+C the sql statement and restart the ASM instance then again execute the add diskgroup command.



No comments: