You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by "BALDWIN, ALAN J [AG-Contractor/1000]" <al...@monsanto.com> on 2007/06/07 16:42:57 UTC

java.sql.SQLException: An internal error was identified by RawStore module.

Hi,

I have a client's database that I cannot connect to.  I assumed that it
was a result of a transaction log corruption or some such thing since we
have seen that in the past.  As an attempt to salvage it, I tried
deleting the two transaction logs in the log folder.  Now, I can open
it, but when I run a statement like SELECT * FROM Dealer, I first get a
NullPointerException.  Then if I execute that or any select statement
again, I get this:
java.sql.SQLException: An internal error was identified by RawStore
module.

Is there any way I'm going to be able to salvage this database?  Does
anyone have any tricks that I could try?

Regards,
-Alan Baldwin-


---------------------------------------------------------------------------------------------------------
This e-mail message may contain privileged and/or confidential information, and is intended to be received only by persons entitled to receive such information. If you have received this e-mail in error, please notify the sender immediately. Please delete it and all attachments from any servers, hard drives or any other media. Other use of this e-mail by you is strictly prohibited.


All e-mails and attachments sent and received are subject to monitoring, reading and archival by Monsanto. The recipient of this e-mail is solely responsible for checking for the presence of "Viruses" or other "Malware". Monsanto accepts no liability for any damage caused by any such code transmitted by or accompanying this e-mail or any attachment.
---------------------------------------------------------------------------------------------------------


RE: java.sql.SQLException: An internal error was identified by RawStore module.

Posted by "BALDWIN, ALAN J [AG-Contractor/1000]" <al...@monsanto.com>.
I tried connecting to the db using 10.2.2.0 with and without transaction
logs.  No luck.

The client was not following recommended backup procedures, so there
isn't much in the way of backups.  In fact, our application prompts the
user to backup their data every time they exit the app.  There isn't
much else we can do short of not allowing them to use the app unless
they have recently backed up.

I've been assured by the user that this database was the untouched
original, and that they changed nothing prior to sending it to me, but
you never know.

I can connect to the database if I remove the transaction log files, but
it won't let me select anything out of any of the tables, so mining the
data out is not an option in this case.

I guess I'm going to have to throw in the towel on this one unless you
have anything else I can try.

-Alan-

-----Original Message-----
From: Mike Matrigali [mailto:mikem_app@sbcglobal.net] 
Sent: Thursday, June 07, 2007 1:34 PM
To: Derby Discussion
Subject: Re: java.sql.SQLException: An internal error was identified by
RawStore module.

This derby.log is indeed a recovery boot error.  It has the feel of
the kind of error one would get if someone had deleted a log file
from the log directory.  I've also seen this kind of error if someone
copies an active derby database without using derby backup to insure
a consistent set of database and log files.

What is happening is that recovery is booting trying to REDO work
in the log.  The following error is the key one:
ERROR XSDB4: Page Page(1,Container(0, 560)) is at version 575, the log 
file contains change version 1,052, either there are log records of this

page missing, or this page did not get written out to disk properly.

It has found a log record with version 1,052 of the page but the page
on disk is only at version 575, so there are 577 changes to the page
missing from the recovery log files.  Given the number of missing
records for this page, there are going to be big problems with any
attempt to get this table back.

You may want to try using 10.2.2 or even a latest build of the 10.2
branch, but I would not expect it to fix
this recovery error.  It may be better at trying to access the copy
of the corrupt db with log files deleted, I thought fixes had gone
in to solve the bad error handling for null pointers which sometimes
led to the RawStore module error.

The intended solution to problems of this type is to recover from
backup.  But I assume since you are here, there is no backup.  You
can try the path you are already on and try to access a copy of
the db to data mine the corrupt the db, if there is no other way
to get the data.  You may want to post the derby.log from when
you tried to do that.


BALDWIN, ALAN J [AG-Contractor/1000] wrote:
> Yes, I have the original database with transaction logs intact.  
> 
> Attached is derby.log.  The error is what happens when I try to
connect
> using the original database with no modifications.  I'm using
cloudscape
> workbench to try to connect.  Also, the version of Derby I'm using
> 10.2.1.6, not 10.1.x as I mentioned before.  That was a typo.
> 
> Thanks,
> -Alan-
> 
> -----Original Message-----
> From: Mike Matrigali [mailto:mikem_app@sbcglobal.net] 
> Sent: Thursday, June 07, 2007 12:59 PM
> To: Derby Discussion
> Subject: Re: java.sql.SQLException: An internal error was identified
by
> RawStore module.
> 
> NEVER, NEVER, NEVER, ..... delete transaction log files from a
database
> that you ever hope to get a consistent view of again.  If you are
really
> getting a recovery error when trying to boot the database you may have
> to resort to extreme measures if you have no backup to go to, but 
> anytime you delete a file from derby data or log directly you have 
> almost always insured that the database will be corrupt.  Sometimes
you
> can get lucky and some of the tables are accessible and you can copy
> them out to a non-corrupt database.  Hopefully you
> were only acting on a copy of the real database, and were just 
> experimenting.
> 
> Were you getting recovery errors on boot when attempting to connect
> to the database?
> 
> Also the best way to get more info, is to post complete dumps of 
> derby.log for the various errors you are encountering.  Complete
> stack traces, with logStatementText enabled gives a pretty good idea
> what is going on.
> 
> Note that the "An internal error was identified by RawStore module."
> is almost always not the real error - some error before it caused
this.
> I think fixes for this went into 10.2.
> BALDWIN, ALAN J [AG-Contractor/1000] wrote:
>> Hi,
>>
>> I have a client's database that I cannot connect to.  I assumed that
> it 
>> was a result of a transaction log corruption or some such thing since
> we 
>> have seen that in the past.  As an attempt to salvage it, I tried 
>> deleting the two transaction logs in the log folder.  Now, I can open

>> it, but when I run a statement like SELECT * FROM Dealer, I first get
> a 
>> NullPointerException.  Then if I execute that or any select statement

>> again, I get this:
>>
>> java.sql.SQLException: An internal error was identified by RawStore
> module.
>> Is there any way I'm going to be able to salvage this database?  Does

>> anyone have any tricks that I could try?
>>
>> Regards,
>>
>> -Alan Baldwin-
>>
>> /This e-mail message may contain privileged and/or confidential 
>> information, and is intended to be received only by persons entitled
> to 
>> receive such information. If you have received this e-mail in error, 
>> please notify the sender immediately. Please delete it and all 
>> attachments from any servers, hard drives or any other media. Other
> use 
>> of this e-mail by you is strictly prohibited./
>>
>> /All e-mails and attachments sent and received are subject to 
>> monitoring, reading and archival by Monsanto. The recipient of this 
>> e-mail is solely responsible for checking for the presence of
> "Viruses" 
>> or other "Malware". Monsanto accepts no liability for any damage
> caused 
>> by any such code transmitted by or accompanying this e-mail or any 
>> attachment./
>>
> 
> 
>
------------------------------------------------------------------------
---------------------------------
> This e-mail message may contain privileged and/or confidential
information, and is intended to be received only by persons entitled to
receive such information. If you have received this e-mail in error,
please notify the sender immediately. Please delete it and all
attachments from any servers, hard drives or any other media. Other use
of this e-mail by you is strictly prohibited.
> 
> 
> All e-mails and attachments sent and received are subject to
monitoring, reading and archival by Monsanto. The recipient of this
e-mail is solely responsible for checking for the presence of "Viruses"
or other "Malware". Monsanto accepts no liability for any damage caused
by any such code transmitted by or accompanying this e-mail or any
attachment.
>
------------------------------------------------------------------------
---------------------------------
> 


---------------------------------------------------------------------------------------------------------
This e-mail message may contain privileged and/or confidential information, and is intended to be received only by persons entitled to receive such information. If you have received this e-mail in error, please notify the sender immediately. Please delete it and all attachments from any servers, hard drives or any other media. Other use of this e-mail by you is strictly prohibited.


All e-mails and attachments sent and received are subject to monitoring, reading and archival by Monsanto. The recipient of this e-mail is solely responsible for checking for the presence of "Viruses" or other "Malware". Monsanto accepts no liability for any damage caused by any such code transmitted by or accompanying this e-mail or any attachment.
---------------------------------------------------------------------------------------------------------


Re: java.sql.SQLException: An internal error was identified by RawStore module.

Posted by Mike Matrigali <mi...@sbcglobal.net>.
This derby.log is indeed a recovery boot error.  It has the feel of
the kind of error one would get if someone had deleted a log file
from the log directory.  I've also seen this kind of error if someone
copies an active derby database without using derby backup to insure
a consistent set of database and log files.

What is happening is that recovery is booting trying to REDO work
in the log.  The following error is the key one:
ERROR XSDB4: Page Page(1,Container(0, 560)) is at version 575, the log 
file contains change version 1,052, either there are log records of this 
page missing, or this page did not get written out to disk properly.

It has found a log record with version 1,052 of the page but the page
on disk is only at version 575, so there are 577 changes to the page
missing from the recovery log files.  Given the number of missing
records for this page, there are going to be big problems with any
attempt to get this table back.

You may want to try using 10.2.2 or even a latest build of the 10.2
branch, but I would not expect it to fix
this recovery error.  It may be better at trying to access the copy
of the corrupt db with log files deleted, I thought fixes had gone
in to solve the bad error handling for null pointers which sometimes
led to the RawStore module error.

The intended solution to problems of this type is to recover from
backup.  But I assume since you are here, there is no backup.  You
can try the path you are already on and try to access a copy of
the db to data mine the corrupt the db, if there is no other way
to get the data.  You may want to post the derby.log from when
you tried to do that.


BALDWIN, ALAN J [AG-Contractor/1000] wrote:
> Yes, I have the original database with transaction logs intact.  
> 
> Attached is derby.log.  The error is what happens when I try to connect
> using the original database with no modifications.  I'm using cloudscape
> workbench to try to connect.  Also, the version of Derby I'm using
> 10.2.1.6, not 10.1.x as I mentioned before.  That was a typo.
> 
> Thanks,
> -Alan-
> 
> -----Original Message-----
> From: Mike Matrigali [mailto:mikem_app@sbcglobal.net] 
> Sent: Thursday, June 07, 2007 12:59 PM
> To: Derby Discussion
> Subject: Re: java.sql.SQLException: An internal error was identified by
> RawStore module.
> 
> NEVER, NEVER, NEVER, ..... delete transaction log files from a database
> that you ever hope to get a consistent view of again.  If you are really
> getting a recovery error when trying to boot the database you may have
> to resort to extreme measures if you have no backup to go to, but 
> anytime you delete a file from derby data or log directly you have 
> almost always insured that the database will be corrupt.  Sometimes you
> can get lucky and some of the tables are accessible and you can copy
> them out to a non-corrupt database.  Hopefully you
> were only acting on a copy of the real database, and were just 
> experimenting.
> 
> Were you getting recovery errors on boot when attempting to connect
> to the database?
> 
> Also the best way to get more info, is to post complete dumps of 
> derby.log for the various errors you are encountering.  Complete
> stack traces, with logStatementText enabled gives a pretty good idea
> what is going on.
> 
> Note that the "An internal error was identified by RawStore module."
> is almost always not the real error - some error before it caused this.
> I think fixes for this went into 10.2.
> BALDWIN, ALAN J [AG-Contractor/1000] wrote:
>> Hi,
>>
>> I have a client's database that I cannot connect to.  I assumed that
> it 
>> was a result of a transaction log corruption or some such thing since
> we 
>> have seen that in the past.  As an attempt to salvage it, I tried 
>> deleting the two transaction logs in the log folder.  Now, I can open 
>> it, but when I run a statement like SELECT * FROM Dealer, I first get
> a 
>> NullPointerException.  Then if I execute that or any select statement 
>> again, I get this:
>>
>> java.sql.SQLException: An internal error was identified by RawStore
> module.
>> Is there any way I'm going to be able to salvage this database?  Does 
>> anyone have any tricks that I could try?
>>
>> Regards,
>>
>> -Alan Baldwin-
>>
>> /This e-mail message may contain privileged and/or confidential 
>> information, and is intended to be received only by persons entitled
> to 
>> receive such information. If you have received this e-mail in error, 
>> please notify the sender immediately. Please delete it and all 
>> attachments from any servers, hard drives or any other media. Other
> use 
>> of this e-mail by you is strictly prohibited./
>>
>> /All e-mails and attachments sent and received are subject to 
>> monitoring, reading and archival by Monsanto. The recipient of this 
>> e-mail is solely responsible for checking for the presence of
> "Viruses" 
>> or other "Malware". Monsanto accepts no liability for any damage
> caused 
>> by any such code transmitted by or accompanying this e-mail or any 
>> attachment./
>>
> 
> 
> ---------------------------------------------------------------------------------------------------------
> This e-mail message may contain privileged and/or confidential information, and is intended to be received only by persons entitled to receive such information. If you have received this e-mail in error, please notify the sender immediately. Please delete it and all attachments from any servers, hard drives or any other media. Other use of this e-mail by you is strictly prohibited.
> 
> 
> All e-mails and attachments sent and received are subject to monitoring, reading and archival by Monsanto. The recipient of this e-mail is solely responsible for checking for the presence of "Viruses" or other "Malware". Monsanto accepts no liability for any damage caused by any such code transmitted by or accompanying this e-mail or any attachment.
> ---------------------------------------------------------------------------------------------------------
> 

RE: java.sql.SQLException: An internal error was identified by RawStore module.

Posted by "BALDWIN, ALAN J [AG-Contractor/1000]" <al...@monsanto.com>.
Yes, I have the original database with transaction logs intact.  

Attached is derby.log.  The error is what happens when I try to connect
using the original database with no modifications.  I'm using cloudscape
workbench to try to connect.  Also, the version of Derby I'm using
10.2.1.6, not 10.1.x as I mentioned before.  That was a typo.

Thanks,
-Alan-

-----Original Message-----
From: Mike Matrigali [mailto:mikem_app@sbcglobal.net] 
Sent: Thursday, June 07, 2007 12:59 PM
To: Derby Discussion
Subject: Re: java.sql.SQLException: An internal error was identified by
RawStore module.

NEVER, NEVER, NEVER, ..... delete transaction log files from a database
that you ever hope to get a consistent view of again.  If you are really
getting a recovery error when trying to boot the database you may have
to resort to extreme measures if you have no backup to go to, but 
anytime you delete a file from derby data or log directly you have 
almost always insured that the database will be corrupt.  Sometimes you
can get lucky and some of the tables are accessible and you can copy
them out to a non-corrupt database.  Hopefully you
were only acting on a copy of the real database, and were just 
experimenting.

Were you getting recovery errors on boot when attempting to connect
to the database?

Also the best way to get more info, is to post complete dumps of 
derby.log for the various errors you are encountering.  Complete
stack traces, with logStatementText enabled gives a pretty good idea
what is going on.

Note that the "An internal error was identified by RawStore module."
is almost always not the real error - some error before it caused this.
I think fixes for this went into 10.2.
BALDWIN, ALAN J [AG-Contractor/1000] wrote:
> Hi,
> 
> I have a client's database that I cannot connect to.  I assumed that
it 
> was a result of a transaction log corruption or some such thing since
we 
> have seen that in the past.  As an attempt to salvage it, I tried 
> deleting the two transaction logs in the log folder.  Now, I can open 
> it, but when I run a statement like SELECT * FROM Dealer, I first get
a 
> NullPointerException.  Then if I execute that or any select statement 
> again, I get this:
> 
> java.sql.SQLException: An internal error was identified by RawStore
module.
> 
> Is there any way I'm going to be able to salvage this database?  Does 
> anyone have any tricks that I could try?
> 
> Regards,
> 
> -Alan Baldwin-
> 
> /This e-mail message may contain privileged and/or confidential 
> information, and is intended to be received only by persons entitled
to 
> receive such information. If you have received this e-mail in error, 
> please notify the sender immediately. Please delete it and all 
> attachments from any servers, hard drives or any other media. Other
use 
> of this e-mail by you is strictly prohibited./
> 
> /All e-mails and attachments sent and received are subject to 
> monitoring, reading and archival by Monsanto. The recipient of this 
> e-mail is solely responsible for checking for the presence of
"Viruses" 
> or other "Malware". Monsanto accepts no liability for any damage
caused 
> by any such code transmitted by or accompanying this e-mail or any 
> attachment./
> 


---------------------------------------------------------------------------------------------------------
This e-mail message may contain privileged and/or confidential information, and is intended to be received only by persons entitled to receive such information. If you have received this e-mail in error, please notify the sender immediately. Please delete it and all attachments from any servers, hard drives or any other media. Other use of this e-mail by you is strictly prohibited.


All e-mails and attachments sent and received are subject to monitoring, reading and archival by Monsanto. The recipient of this e-mail is solely responsible for checking for the presence of "Viruses" or other "Malware". Monsanto accepts no liability for any damage caused by any such code transmitted by or accompanying this e-mail or any attachment.
---------------------------------------------------------------------------------------------------------


Re: java.sql.SQLException: An internal error was identified by RawStore module.

Posted by Mike Matrigali <mi...@sbcglobal.net>.
NEVER, NEVER, NEVER, ..... delete transaction log files from a database
that you ever hope to get a consistent view of again.  If you are really
getting a recovery error when trying to boot the database you may have
to resort to extreme measures if you have no backup to go to, but 
anytime you delete a file from derby data or log directly you have 
almost always insured that the database will be corrupt.  Sometimes you
can get lucky and some of the tables are accessible and you can copy
them out to a non-corrupt database.  Hopefully you
were only acting on a copy of the real database, and were just 
experimenting.

Were you getting recovery errors on boot when attempting to connect
to the database?

Also the best way to get more info, is to post complete dumps of 
derby.log for the various errors you are encountering.  Complete
stack traces, with logStatementText enabled gives a pretty good idea
what is going on.

Note that the "An internal error was identified by RawStore module."
is almost always not the real error - some error before it caused this.
I think fixes for this went into 10.2.
BALDWIN, ALAN J [AG-Contractor/1000] wrote:
> Hi,
> 
> I have a client's database that I cannot connect to.  I assumed that it 
> was a result of a transaction log corruption or some such thing since we 
> have seen that in the past.  As an attempt to salvage it, I tried 
> deleting the two transaction logs in the log folder.  Now, I can open 
> it, but when I run a statement like SELECT * FROM Dealer, I first get a 
> NullPointerException.  Then if I execute that or any select statement 
> again, I get this:
> 
> java.sql.SQLException: An internal error was identified by RawStore module.
> 
> Is there any way I'm going to be able to salvage this database?  Does 
> anyone have any tricks that I could try?
> 
> Regards,
> 
> -Alan Baldwin-
> 
> /This e-mail message may contain privileged and/or confidential 
> information, and is intended to be received only by persons entitled to 
> receive such information. If you have received this e-mail in error, 
> please notify the sender immediately. Please delete it and all 
> attachments from any servers, hard drives or any other media. Other use 
> of this e-mail by you is strictly prohibited./
> 
> /All e-mails and attachments sent and received are subject to 
> monitoring, reading and archival by Monsanto. The recipient of this 
> e-mail is solely responsible for checking for the presence of "Viruses" 
> or other "Malware". Monsanto accepts no liability for any damage caused 
> by any such code transmitted by or accompanying this e-mail or any 
> attachment./
> 

RE: java.sql.SQLException: An internal error was identified by RawStore module.

Posted by "BALDWIN, ALAN J [AG-Contractor/1000]" <al...@monsanto.com>.
I should note that we are using derby 10.1.6.

		-----Original Message-----
		From: BALDWIN, ALAN J [AG-Contractor/1000] 
		Sent: Thursday, June 07, 2007 9:43 AM
		To: 'Derby Discussion'
		Subject: java.sql.SQLException: An internal error was
identified by RawStore module.

		Hi,

		I have a client's database that I cannot connect to.  I
assumed that it was a result of a transaction log corruption or some
such thing since we have seen that in the past.  As an attempt to
salvage it, I tried deleting the two transaction logs in the log folder.
Now, I can open it, but when I run a statement like SELECT * FROM
Dealer, I first get a NullPointerException.  Then if I execute that or
any select statement again, I get this:
		java.sql.SQLException: An internal error was identified
by RawStore module.

		Is there any way I'm going to be able to salvage this
database?  Does anyone have any tricks that I could try?

		Regards,
		-Alan Baldwin-


---------------------------------------------------------------------------------------------------------
This e-mail message may contain privileged and/or confidential information, and is intended to be received only by persons entitled to receive such information. If you have received this e-mail in error, please notify the sender immediately. Please delete it and all attachments from any servers, hard drives or any other media. Other use of this e-mail by you is strictly prohibited.


All e-mails and attachments sent and received are subject to monitoring, reading and archival by Monsanto. The recipient of this e-mail is solely responsible for checking for the presence of "Viruses" or other "Malware". Monsanto accepts no liability for any damage caused by any such code transmitted by or accompanying this e-mail or any attachment.
---------------------------------------------------------------------------------------------------------