db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-2687) store/encryptDatabase.sql fails intermittently with ClassNotFoundException, Log Corrupted
Date Thu, 16 Feb 2012 08:39:00 GMT

    [ https://issues.apache.org/jira/browse/DERBY-2687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13209225#comment-13209225

Knut Anders Hatlen commented on DERBY-2687:

> A possible solution for the "wrong boot" issue is to rewrite this
> test to JUnit and just accept XBM0U, since we know it will happen
> sometimes.

That would silence the test, but it might alarm users if they
occasionally get "log corrupted" errors in their logs. Even though
they see that it boots fine the next time, they may lose confidence in
the integrity of the database.

> That leaves the "wrong password change" issue, of course.

Although the chances of collisions are smaller when changing boot
password, I suspect that if a collision occurs, it ends up corrupting
the database, since the input to the encryption function is not the
original secret key, so it'll save an encryption key that cannot be
used to decrypt the db pages.

That is, it saves

  encrypt(decrypt(encrypt(secretKey, "Thursday"), "thursday"), "derbypwd");

which cannot be decrypted to the original secret key using any of the
three passwords (Thursday, thursday, derbypwd).

Maybe we could start using the full digest for verification instead of
the condensed 16 bit digest? That should solve both issues, but we'll
need some extra logic to handle upgrades.
> store/encryptDatabase.sql fails intermittently with ClassNotFoundException, Log Corrupted
> -----------------------------------------------------------------------------------------
>                 Key: DERBY-2687
>                 URL: https://issues.apache.org/jira/browse/DERBY-2687
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions:,
>         Environment: Microsoft Windows XP Professional - 5.1.2600 Service Pack 2, Sun
JVM 1.4.2_08-b03,
> SUSE Linux Enterprise Server 10 (x86_64) (Linux, Sun JVM 1.6.0_01-b06,
trunk (SVN 531991).
> Solaris 10 x86, Sun JVM 1.5.0, SVN 371617 (2006-01-23).
> Solaris 9 SPARC, Sun JVM 1.5.0, SVN 169872 (2005-05-13).
> etc...
>            Reporter: John H. Embretsen
>              Labels: derby_triage10_5_2
>         Attachments: derby.log, tmp-82.zip, wombat.zip
> Failure seen in derbyall/encryptionAll run on WinXP ( So far unable to reproduce
(standalone or as part of derbyall, encryptionAll or encryptionBlowfish).
> <method>
> store/encryptDatabase.sql
> </method>
> <signature>
> Failure details:
> ********* Diff file derbyall/encryptionAll/encryptionBlowfish/encryptDatabase.diff
> *** Start: encryptDatabase jdk1.4.2_08 encryptionAll:encryptionBlowfish 2007-05-21 05:07:55
> 95 del
> < ERROR XBM06: Startup failed. An encrypted database cannot be accessed without the
correct boot password.
> 95a95
> > ERROR XJ001: Java exception: 'ERROR XBM0U: No class was registered for identifier
15009.: java.lang.ClassNotFoundException'.
> Test Failed.
> *** End:   encryptDatabase jdk1.4.2_08 encryptionAll:encryptionBlowfish 2007-05-21 05:08:12
> </signature>
> derby.log also reports "ERROR XSLA3: Log Corrupted, has invalid data in the log stream."

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message