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 ...
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| 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. |
| |||
| 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 |
| |||
| 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". |
| ||||
| 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. |