Unix Technical Forum

Help: infinite loop creating trace file hangs database

This is a discussion on Help: infinite loop creating trace file hangs database within the Oracle Database forums, part of the Database Server Software category; --> I have an Oracle 8.1.7.4 server. Occasionally ( usually once every few months, but twice in the last week ...


Go Back   Unix Technical Forum > Database Server Software > Oracle Database

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 02-23-2008, 05:55 AM
Malcolm Dunnett
 
Posts: n/a
Default Help: infinite loop creating trace file hangs database


I have an Oracle 8.1.7.4 server.

Occasionally ( usually once every few months, but twice in
the last week ) one of the foreground server processes will
crash. When it does it creates a trace file which says it
is doing a "Dump of buffer cache at level 9". This creates
a trace file of about 5MB. The problem is that at the point
where 5MB of trace information is created the process appears
to go into an infinite CPU loop ( in one instance it was still
running 14 hours later ). The process appears to be holding
some locks as when it goes into this loop all the other server
processes eventually hang. Killing the process doing the
dump causes all the other server processes to resume normally.

While there is clearly some bug that is causing the server
process to crash the more immediate problem is that the cpu
loop/locks cause it to effectively hang the entire database
when it does. Is there a way to prevent this dying process from
taking this buffer dump ( or to prevent the buffer dump from
going into an infinite loop )?

There are no error reported in the alert log when this occurs.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 02-23-2008, 05:55 AM
Sybrand Bakker
 
Posts: n/a
Default Re: Help: infinite loop creating trace file hangs database

On 13 Jan 2004 13:00:10 -0700, nothome@spammers.are.scum (Malcolm
Dunnett) wrote:

>
> I have an Oracle 8.1.7.4 server.
>
> Occasionally ( usually once every few months, but twice in
>the last week ) one of the foreground server processes will
>crash. When it does it creates a trace file which says it
>is doing a "Dump of buffer cache at level 9". This creates
>a trace file of about 5MB. The problem is that at the point
>where 5MB of trace information is created the process appears
>to go into an infinite CPU loop ( in one instance it was still
>running 14 hours later ). The process appears to be holding
>some locks as when it goes into this loop all the other server
>processes eventually hang. Killing the process doing the
>dump causes all the other server processes to resume normally.
>
> While there is clearly some bug that is causing the server
>process to crash the more immediate problem is that the cpu
>loop/locks cause it to effectively hang the entire database
>when it does. Is there a way to prevent this dying process from
>taking this buffer dump ( or to prevent the buffer dump from
>going into an infinite loop )?
>
> There are no error reported in the alert log when this occurs.


To me it looks like you have max_dump_file_size set to 5M. Try setting
it to unlimited and check whether the dump completes.


--
Sybrand Bakker, Senior Oracle DBA
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 02-23-2008, 05:55 AM
Malcolm Dunnett
 
Posts: n/a
Default Re: Help: infinite loop creating trace file hangs database

In article <l8p800hb2t1lj4ms901bh7b59tkmdqaeps@4ax.com>,

Sybrand Bakker <gooiditweg@sybrandb.demon.nl> writes:

>>
>> There are no error reported in the alert log when this occurs.

>
> To me it looks like you have max_dump_file_size set to 5M. Try setting
> it to unlimited and check whether the dump completes.
>


That appears to be why it is stopping at 5MB. I don't understand
why it goes into an infinite CPU loop at that point, rather than just
ending the trace file with a notice message as it's supposed to.

I can try increasing the file size ( to say 200MB ), but I'm afraid
to make it unlimited. If it is indeed an infinite loop writing to the
file it would then fill my disk up, which would presumably cause lots
of other grief.

I was hoping for a setting which would say "don't create trace files",
or "don't do a buffer dump".

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 02-23-2008, 06:00 AM
Jonathan Lewis
 
Posts: n/a
Default Re: Help: infinite loop creating trace file hangs database


Buffer Cache at level 9 is a peculiar value.
It's trying to dump a full description of every
used buffer in your buffer cache, which is
why it is running up CPU so aggressively,
and since you stop writing trace file at 5M,
there's nothing stopping it swamping your
system.

The only thing I can think of that would do
this is an event set in your init.ora that was
put there to trace some old problem and
has been forgotten about.

Check for lines like:

event ='mmm trace name buffers level 9'

(I've probably got the syntax wrong - but
the general idea should be close enough).


--
Regards

Jonathan Lewis
http://www.jlcomp.demon.co.uk

The educated person is not the person
who can answer the questions, but the
person who can question the answers -- T. Schick Jr


Next public appearance2:
March 2004 Hotsos Symposium - Keynote
March 2004 Charlotte NC - OUG Tutorial
April 2004 Iceland


One-day tutorials:
http://www.jlcomp.demon.co.uk/tutorial.html


Three-day seminar:
see http://www.jlcomp.demon.co.uk/seminar.html
____UK___February


The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html


> On 13 Jan 2004 13:00:10 -0700, nothome@spammers.are.scum (Malcolm
> Dunnett) wrote:
>
> >
> > I have an Oracle 8.1.7.4 server.
> >
> > Occasionally ( usually once every few months, but twice in
> >the last week ) one of the foreground server processes will
> >crash. When it does it creates a trace file which says it
> >is doing a "Dump of buffer cache at level 9". This creates
> >a trace file of about 5MB. The problem is that at the point
> >where 5MB of trace information is created the process appears
> >to go into an infinite CPU loop ( in one instance it was still
> >running 14 hours later ). The process appears to be holding
> >some locks as when it goes into this loop all the other server
> >processes eventually hang. Killing the process doing the
> >dump causes all the other server processes to resume normally.
> >
> > While there is clearly some bug that is causing the server
> >process to crash the more immediate problem is that the cpu
> >loop/locks cause it to effectively hang the entire database
> >when it does. Is there a way to prevent this dying process from
> >taking this buffer dump ( or to prevent the buffer dump from
> >going into an infinite loop )?
> >
> > There are no error reported in the alert log when this occurs.



Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 09:43 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com