El ¿auto deadlock?


¡Últimamente me pasan unas cosas muy curiosas!

¿Qué puede causar que una sesión aparezca en la vista DBA_WAITERS como bloqueadora y como en espera? Fernando García sabe la respuesta, pues él “estaba allí” cuando sucedió.

Se trata de la sesión 80 y, como podéis ver, los bloqueos son todos sobre el objeto 524308 (una tabla).

Se admiten apuestas!!! La base de datos es una Oracle12c y hay tres sesiones en el juego.
PISTA: No hay, ni hubo, ni habrá en este ejemplo un deadlock ORA-00060.

PDB1@ORCL> select * from dba_waiters;

WAITING_SESSION HOLDING_SESSION LOCK_TYPE
————— ————— ————————–
MODE_HELD
—————————————-
MODE_REQUESTED   LOCK_ID1   LOCK_ID2
—————————————- ———- ———-
    80     44 Transaction
Exclusive
Exclusive     524308  2374

    72     44 Transaction
Exclusive
Share     524308  2374

    80     80 Transaction
None
Exclusive     524308  2374

    72     80 Transaction
None
Share     524308  2374

Comments

  1. Javier Morales
    • 1 mayo, 2014
    • 11:17 pm
    • Reply

    PISTA: parece que los tipos de bloqueos no son la clave…

    PDB1@ORCL> select * from dba_waiters;

    WAITING_SESSION HOLDING_SESSION LOCK_TYPE
    ————— ————— ————————–
    MODE_HELD
    —————————————-
    MODE_REQUESTED LOCK_ID1 LOCK_ID2
    —————————————- ———- ———-
    80 44 Transaction
    Exclusive
    Exclusive 393235 2397

    72 44 Transaction
    Exclusive
    Share 393235 2397

    80 72 Transaction
    None
    Exclusive 393235 2397

    72 72 Transaction
    None
    Share 393235 2397

  2. Tony Doval
    • 2 mayo, 2014
    • 1:28 pm
    • Reply

    Foreing keys y tablas vacías?

  3. Javier Morales
    • 2 mayo, 2014
    • 2:06 pm
    • Reply

    Frío, frío……. 😛

  4. Pedro Marco Ortega
    • 5 mayo, 2014
    • 6:55 pm
    • Reply

    ¿Intentos de Conexión? ¿La tabla 393235 es la v$_user?

  5. Javier Morales
    • 7 mayo, 2014
    • 2:36 pm
    • Reply

    Frío Fríoooo…

    La tabla tiene una fila.
    Una sesión hace UPDATE sobre esa fila.
    Otra sesión hace un DELETE sobre esa fila (waiting).
    Una tercera sesión hace un ALTER TABLE ADD column.

    Curioso, no??? :))))))

  6. bukerleon
    • 7 agosto, 2014
    • 4:25 am
    • Reply

    EL UNDO ESTA GARANTIZADO TARDARÁ EL TIEMPO NECESARIO

  7. bukerleon
    • 7 agosto, 2014
    • 4:28 am
    • Reply

    Este comentario ha sido eliminado por el autor.

  8. bukerleon
    • 7 agosto, 2014
    • 4:29 am
    • Reply

    Este comentario ha sido eliminado por el autor.

  9. bukerleon
    • 7 agosto, 2014
    • 4:29 am
    • Reply

    Este comentario ha sido eliminado por el autor.

  10. bukerleon
    • 7 agosto, 2014
    • 4:29 am
    • Reply

    Este comentario ha sido eliminado por el autor.

Deja un comentario