Re: strange permissions errors - memory corruption?

  • From: Henry Poras <henry@xxxxxxxxxxxxxxx>
  • To: Tanel Poder <tanel@xxxxxxxxxx>
  • Date: Tue, 26 Oct 2010 12:23:46 -0400

Tanel,

Thanks for the reply. I forgot all about that paper. I need to wait for the problem to return (which it probably will in the next day or two) and I will go poking around in v$rowcache_parent. However, there still seems to be a mismatch, at least to me, about what I am seeing and what is discussed in your paper.

From one session:
- desc dbms_aqadm is successful (the recursive permissions query uses the correct user_id to search for permissions) - plsql loop calling (loop dbms_aqadm.start_queue) fails with PLS-00201 (the recursive permissions query uses the incorrect user_id to search for permissions)

Where does Oracle grab the grantee# (role or user) to use as a bind value? Since there is no recursive SQL doing this it must be from some memory structure. Why a different grantee#/user# when looking for permissions on desc vs plsql loop?

Thanks again.

Henry


On 10/25/2010 4:56 PM, Tanel Poder wrote:
It may be that negative existence records get created in dictionary cache (or remain there when they shouldn't stay there):

I once wrote a paper about it and you can use v$rowcache_parent to check this:

http://www.tanelpoder.com/files/oracle_rowcache.pdf

--
Tanel Poder
New online seminars!
http://tech.e2sn.com/oracle-training-seminars


On Mon, Oct 25, 2010 at 10:12 PM, Henry Poras <henry@xxxxxxxxxxxxxxx <mailto:henry@xxxxxxxxxxxxxxx>> wrote:

    We are getting some very odd permissions errors on our development
    databases. Things run smoothly for a while, but when the errors
    appear, the appear for all new schema until we flush the shared pool.

    Our environment consists of developers each creating their own
    schema, with each schema looking fairly identical to each other
    schema. On completion of work, the schema is dropped.

    Every so often we see

       dbms_aqadm.start_queue
       *
    ERROR at line 10:
    ORA-06550: line 10, column 5:
    PLS-00201: identifier 'DBMS_AQADM' must be declared
    ORA-06550: line 10, column 5:
    PL/SQL: Statement ignored

Other related posts: