Problemi di LOCK su RAC

venerdì 25 maggio 2007 alle 25:30 | Pubblicato su Diario, Installation and Configuration, RAC | Lascia un commento

DATABASE HANG BECAUSE OF GES: POTENTIAL BLOCKER (PID=25760) ON RESOURCE

tempo fa ho riscontrato su RAC un problema che mi è apparso strano. Al tempo ho anche provato a chiedere aiuto nel gruppo di discussione comp.databases.oracle.server

L’applicazione utilizza i record di una particolare tabella per serializzare certe operazioni, un task fa un UPDATE su un preciso record all’inizio, fa tutte le cose che deve fare e poi fa il commit. Se lo stesso task viene lanciato contemporaneamente da un’altra sessione, viene messo in attesa nel momento in cui fa l’update sullo stesso record in quel momento “lockato” dall’altra sessione. Quindi la situazione che si presenta è:

SQL> select sid,type,id1,id2,lmode,request,block from  v$lock where type in ('TM','TX')
        order by sid,type;

       SID TYPE          ID1        ID2      LMODE    REQUEST      BLOCK
---------- ------ ---------- ---------- ---------- ---------- ----------
       122 TM          13945          0          3          0          0
       122 TX         393259      10351          0          6          0
       133 TM          13945          0          3          0          0
       133 TX         393259      10351          6          0          1

Cioè una sessione detiene il lock (quella con LMODE=6) e l’altra aspetta (quella con REQUEST=6). Nel caso anomalo invece non si riusciva ad individuare quale fosse la sessione bloccante.

Oggi dando un’occhiata alle patch uscite per la versione 10.2.0.3 di Oracle ho incontrato la patch numero 5898210 con descrizione “DATABASE HANG BECAUSE OF GES: POTENTIAL BLOCKER (PID=25760) ON RESOURCE” scaricabile solo con password fornita dopo apertura di SR.

Ultimamente ho l’impressione che il motore di ricerca del metalink non funzioni come un tempo perché quella volta non trovai menzione di tale baco cercando con la stringa “GES: Potential blocker” . In realtà, da non so quando, la ricerca per default va solo sulla “Knoledge Base”, quindi è più ristretta.

Andando a vedere la descrizione del bug sul Metalink ho notato un’impressionante somiglianza al mio caso. Solo che io sono stato più fortunato, è bastato riavviare l’applicazione per sbloccare tutti. Infatti era come se più sessioni avessero un lock sullo stesso record e si bloccassero fra loro, una situazione assurda.

Lascia un commento »

RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Blog su WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: