Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 51011 invoked from network); 6 Aug 2009 18:53:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 6 Aug 2009 18:53:38 -0000 Received: (qmail 30002 invoked by uid 500); 6 Aug 2009 18:53:45 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 29936 invoked by uid 500); 6 Aug 2009 18:53:45 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 29928 invoked by uid 99); 6 Aug 2009 18:53:45 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Aug 2009 18:53:45 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Aug 2009 18:53:36 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id EED1D234C053 for ; Thu, 6 Aug 2009 11:53:14 -0700 (PDT) Message-ID: <568186773.1249584794977.JavaMail.jira@brutus> Date: Thu, 6 Aug 2009 11:53:14 -0700 (PDT) From: "Rick Hillegas (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Updated: (DERBY-700) Derby does not prevent dual boot of database from different classloaders on Linux and Mac OS X In-Reply-To: <1202629995.1131658683294.JavaMail.jira@ajax.apache.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rick Hillegas updated DERBY-700: -------------------------------- Attachment: DualBootRepro.java It appears to me that a workaround for this bug is to upgrade to Java 6. I am attaching a slightly revised version of the repro, DualBootRepro.java (this revision contains all of the helper classes needed to create the failure scenario). I see failures on the following platforms: Apple Java 5 on Mac OS X Sun Java 5 on Ubuntu Linux IBM Java 5 on Ubuntu Linux Happily, however, the second boot fails and raises java.nio.channels.OverlappingFileLockException on the following platforms: Apple Java 6 beta on Mac OS X Sun Java 6 on Ubuntu Linux IBM Java 5 on Ubuntu Linux Admittedly, that's a graceless failure. However, I think it should prevent the database from being corrupted and it's worth recommending an upgrade to Java 6 for users who encounter this bug. > Derby does not prevent dual boot of database from different classloaders on Linux and Mac OS X > ---------------------------------------------------------------------------------------------- > > Key: DERBY-700 > URL: https://issues.apache.org/jira/browse/DERBY-700 > Project: Derby > Issue Type: Bug > Components: Store > Affects Versions: 10.0.2.0, 10.0.2.1, 10.1.1.0, 10.1.2.1, 10.1.3.1, 10.2.1.6, 10.2.2.0, 10.3.1.4, 10.4.1.3 > Environment: ava -version > java version "1.4.2_08" > Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03) > Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode) > also > java version "1.5.0_19" > Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-304) > Java HotSpot(TM) Client VM (build 1.5.0_19-137, mixed mode, sharing) > on Mac OS X 10.5.7. > Reporter: Kathey Marsden > Priority: Critical > Attachments: DERBY-700.diff, DERBY-700.stat, derby-700_06_07_07_diff.txt, derby-700_06_07_07_stat.txt, derby-700_06_19_2007, derby-700_diff.txt, derby-700_stat.txt, DERBY-700_v1_use_to_run_DualBootrepro_multithreaded.diff, DERBY-700_v1_use_to_run_DualBootrepro_multithreaded.stat, derby-700_with_NPE_fix_diff.txt, derby-700_with_NPE_fix_stat.txt, derby.log, derby700_singleproperty_v1.diff, derby700_singleproperty_v1.stat, DualBootRepro.java, DualBootRepro.java, DualBootRepro2.zip, DualBootRepro_mutltithreaded.tar.bz2, releaseNote.html, releaseNote.html > > > Derby does not prevent dual boot from two different classloaders on Linux and Mac OS X. > To reproduce run the program DualBootRepro with no derby jars in your classpath. The program assumes derby.jar is in 10.1.2.1/derby.jar, you can change the location by changing the DERBY_LIB_DIR variable. > On Linux the output is: > $java -cp . DualBootRepro > Loading derby from file:10.1.2.1/derby.jar > 10.1.2.1/derby.jar > Booted database in loader java.net.URLClassLoader@8ed465 > FAIL: Booted database in 2nd loader java.net.URLClassLoader@dc6a77 > On Windows I get the expected output. > $ java -cp . DualBootRepro > Loading derby from file:10.1.2.1/derby.jar > 10.1.2.1/derby.jar > Booted database in loader java.net.URLClassLoader@1ac04e8 > PASS: Expected exception for dualboot:Another instance of Derby may have already booted the database D:\marsden\repro\dualboot\mydb. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.