Skip to Main Content
  • Questions
  • Invalid rowid in deadlock trace file...I must be missing something

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Brien.

Asked: July 26, 2016 - 1:48 pm UTC

Last updated: July 28, 2016 - 7:34 pm UTC

Version: 11.2.0.4

Viewed 1000+ times

You Asked

Hi!
We recently had an event where a trigger was changed by only a few lines resulting in hundreds of deadlocks a minute. We changed it back and all is well. I'm trying to figure out what happened though. The change in the trigger was if inserting select sequence.nextval into a variable. Anyway, When I look at the deadlock trace files they all look a lot like the snippet below. I can identify the tables involved (data_object_id = 144568,144724), but the rowid is all A's. Every trace file I've looked at is like this. I can't find anything on what this means. Can you please provide some guidance?

Thanks!
Brien

Deadlock graph:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TM-000234b8-00000000 1803 1711 SX 1796 1311 S
TM-00023554-00000000 1796 1311 SX 743 1487 SSX
TM-00023554-00000000 743 1487 SSX 1097 2617 SX
TM-000234b8-00000000 1097 2617 SX 1386 2692 S
TM-000234b8-00000000 1386 2692 S 1803 1711 SX

session 1711: DID 0001-070B-00000009 session 1311: DID 0001-0704-0000000F
session 1311: DID 0001-0704-0000000F session 1487: DID 0001-02E7-000003F5
session 1487: DID 0001-02E7-000003F5 session 2617: DID 0001-0449-00000040
session 2617: DID 0001-0449-00000040 session 2692: DID 0001-056A-00000019
session 2692: DID 0001-056A-00000019 session 1711: DID 0001-070B-00000009

Rows waited on:
Session 1711: obj - rowid = 000234B8 - AAAAAAAAAAAAAAAAAA
(dictionary objn - 144568, file - 0, block - 0, slot - 0)
Session 1311: obj - rowid = 000234B8 - AAAAAAAAAAAAAAAAAA
(dictionary objn - 144568, file - 0, block - 0, slot - 0)
Session 1487: obj - rowid = 00023554 - AAAAAAAAAAAAAAAAAA
(dictionary objn - 144724, file - 0, block - 0, slot - 0)
Session 2617: obj - rowid = 00023554 - AAAAAAAAAAAAAAAAAA
(dictionary objn - 144724, file - 0, block - 0, slot - 0)
Session 2692: obj - rowid = 000234B8 - AAAAAAAAAAAAAAAAAA
(dictionary objn - 144568, file - 0, block - 0, slot - 0)


and Chris said...

These are indeed invalid rowids. File 0 doesn't exist! They start at 1 in Oracle Database.

I'm struggling to understand how changing a reference to a sequence in a trigger causes deadlock. So I suspect you're hitting some kind of bug. Which is why you have invalid rowids.

Contact with support to see if they can help you.

Rating

  (1 rating)

Is this answer out of date? If it is, please let us know via a Comment

Comments

Thank you!

A reader, July 28, 2016 - 8:04 pm UTC

Thank you for taking the time to review this and verify I'm not losing my mind. I'll contact Oracle support.

More to Explore

PL/SQL demos

Check out more PL/SQL tutorials on our LiveSQL tool.

PL/SQL docs

PL/SQL reference manual from the Oracle documentation library