Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Object locked in v$locked_object but can't find session/process blocking

DroidDrSep 5 2012 — edited Sep 10 2012
Hi,

I am on database 10.2.0.5, windows x64.

A developer calls me and tells me there are locks on 3 tables, and the locks are not released.
So I run this to see which objects are locked by which session
select vlo.object_id, vlo.session_id, vlo.oracle_username, vlo.process
  , DECODE(vlo.LOCKED_MODE, 0,'NONE', 1,'NULL', 2,'ROW SHARE', 3,'ROW EXCLUSIVE', 4,'SHARE', 5,'SHARE ROW EXCLUSIVE', 6,'EXCLUSIVE', NULL) LOCK_MODE 
  , do.owner, do.object_name, do.object_type
  , vs.saddr, vs.serial#, vs.paddr, vs.username, vs.ownerid, vs.status, vs.server, vs.schemaname, vs.osuser, vs.machine, vs.program, vs.type, vs.logon_time, vs.last_call_et
  , vs.blocking_session_status, vs.event#, vs.event, vs.wait_class#, vs.wait_class, vs.wait_time, vs.seconds_in_wait, vs.state
  from v$locked_object vlo
    inner join dba_objects do on (vlo.object_id = do.object_id)
    left outer join v$session vs on (vlo.session_id = vs.sid)
-----------
I get (after finding out my table locks come from SID 514)
OBJECT_ID              SESSION_ID             ORACLE_USERNAME                PROCESS      LOCK_MODE           OWNER                          OBJECT_NAME                                                                                                                      OBJECT_TYPE         SADDR            SERIAL#                PADDR            USERNAME                       OWNERID                STATUS   SERVER    SCHEMANAME                     OSUSER                         MACHINE                                                          PROGRAM                                                          TYPE       LOGON_TIME                LAST_CALL_ET           BLOCKING_SESSION_STATUS EVENT#                 EVENT                                                            WAIT_CLASS#            WAIT_CLASS                                                       WAIT_TIME              SECONDS_IN_WAIT        STATE               
---------------------- ---------------------- ------------------------------ ------------ ------------------- ------------------------------ -------------------------------------------------------------------------------------------------------------------------------- ------------------- ---------------- ---------------------- ---------------- ------------------------------ ---------------------- -------- --------- ------------------------------ ------------------------------ ---------------------------------------------------------------- ---------------------------------------------------------------- ---------- ------------------------- ---------------------- ----------------------- ---------------------- ---------------------------------------------------------------- ---------------------- ---------------------------------------------------------------- ---------------------- ---------------------- ------------------- 
373122                 514                    IRMFIN                         22AB7298     ROW EXCLUSIVE       IRMFIN                         IC_PRODUCT_STATUS                                                                                                                TABLE               000007FF3E1A9070 1301                   000007FF3E639120 IRMFIN                         2147483644             INACTIVE DEDICATED IRMFIN                         IRMTEST                        IRM                                                              DSA0:[GEMBASE730.][RUN]GEM.EXE                                   USER       2012/09/05 13:55:51       702                    NO HOLDER               263                    SQL*Net message from client                                      6                      Idle                                                             0                      702                    WAITING             
373025                 514                    IRMFIN                         22AB7298     ROW EXCLUSIVE       IRMFIN                         IC_BIN_DETAIL_STATUS                                                                                                             TABLE               000007FF3E1A9070 1301                   000007FF3E639120 IRMFIN                         2147483644             INACTIVE DEDICATED IRMFIN                         IRMTEST                        IRM                                                              DSA0:[GEMBASE730.][RUN]GEM.EXE                                   USER       2012/09/05 13:55:51       702                    NO HOLDER               263                    SQL*Net message from client                                      6                      Idle                                                             0                      702                    WAITING             
373055                 514                    IRMFIN                         22AB7298     ROW EXCLUSIVE       IRMFIN                         IC_LOT_STATUS                                                                                                                    TABLE               000007FF3E1A9070 1301                   000007FF3E639120 IRMFIN                         2147483644             INACTIVE DEDICATED IRMFIN                         IRMTEST                        IRM                                                              DSA0:[GEMBASE730.][RUN]GEM.EXE                                   USER       2012/09/05 13:55:51       702                    NO HOLDER               263                    SQL*Net message from client                                      6                      Idle                                                             0                      702                    WAITING             
-----------
I run it again and I get something different, this time the lock is still there, but no session. select * from v$session where sid= 514 returns nothing.
I get
OBJECT_ID              SESSION_ID             ORACLE_USERNAME                PROCESS      LOCK_MODE           OWNER                          OBJECT_NAME                                                                                                                      OBJECT_TYPE         SADDR            SERIAL#                PADDR            USERNAME                       OWNERID                STATUS   SERVER    SCHEMANAME                     OSUSER                         MACHINE                                                          PROGRAM                                                          TYPE       LOGON_TIME                LAST_CALL_ET           BLOCKING_SESSION_STATUS EVENT#                 EVENT                                                            WAIT_CLASS#            WAIT_CLASS                                                       WAIT_TIME              SECONDS_IN_WAIT        STATE               
---------------------- ---------------------- ------------------------------ ------------ ------------------- ------------------------------ -------------------------------------------------------------------------------------------------------------------------------- ------------------- ---------------- ---------------------- ---------------- ------------------------------ ---------------------- -------- --------- ------------------------------ ------------------------------ ---------------------------------------------------------------- ---------------------------------------------------------------- ---------- ------------------------- ---------------------- ----------------------- ---------------------- ---------------------------------------------------------------- ---------------------- ---------------------------------------------------------------- ---------------------- ---------------------- ------------------- 
373122                 514                                                                ROW EXCLUSIVE       IRMFIN                         IC_PRODUCT_STATUS                                                                                                                TABLE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
373025                 514                                                                ROW EXCLUSIVE       IRMFIN                         IC_BIN_DETAIL_STATUS                                                                                                             TABLE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
373055                 514                                                                ROW EXCLUSIVE       IRMFIN                         IC_LOT_STATUS                                                                                                                    TABLE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
When I run the query later, I sometimes get another session, but the lock stays. It seems here, that I am catching the same SID on new sessions, but it is probably a different serial # than the original session locking the table rows.

I get nothing from
select * from dba_waiters;
select * from dba_blockers;

Now why are those 3 tables row locked on some rows and I can't find the session responsible? The developer tells me his application crashed and the rows are locked since.

So far ( keep in mind I am not a locking expert) the only way I found to release the locks is a DB bounce, its a test DB so no biggy.

Is this a bug? Am I missing something?
This is the second time this has happened. How can I solve this issue?


Best wishes to all.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 8 2012
Added on Sep 5 2012
18 comments
18,415 views