Running out of file descriptors on recovery can give NullPointerException. Should give clearer message ------------------------------------------------------------------------------------------------------ Key: DERBY-3976 URL: https://issues.apache.org/jira/browse/DERBY-3976 Project: Derby Issue Type: Bug Components: Store Affects Versions: 10.4.2.0, 10.3.3.0, 10.2.2.0, 10.1.3.1, 10.5.0.0 Reporter: Kathey Marsden Priority: Minor Running out of file descriptors on recovery can cause a NullPointerException. It should give a clearer message. To reproduce 1) Run attached program with create argument java ReproNPEOnLowFD create 2) Set ulimit low ulimit -n 100 3) Run the program again with no argements java ReproNPEOnLowFD # java ReproNPEOnLowFD create Creating database # ulimit -n 100 # java ReproNPEOnLowFD java.lang.NullPointerException at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(BaseDataFileFactory.java:558) at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openDroppedContainer(BaseDataFileFactory.java:514) at org.apache.derby.impl.store.raw.xact.Xact.openDroppedContainer(Xact.java:1298) at org.apache.derby.impl.store.raw.data.ContainerBasicOperation.findContainer(ContainerBasicOperation.java:144) at org.apache.derby.impl.store.raw.data.ContainerBasicOperation.needsRedo(ContainerBasicOperation.java:201) at org.apache.derby.impl.store.raw.log.FileLogger.redo(FileLogger.java:1394) at org.apache.derby.impl.store.raw.log.LogToFile.recover(LogToFile.java:802) at org.apache.derby.impl.store.raw.RawStore.boot(RawStore.java:327) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1999) at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:290) at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:539) at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java:418) at org.apache.derby.impl.store.access.RAMAccessManager.boot(RAMAccessManager.java:994) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1999) at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:290) at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:539) at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java:418) at org.apache.derby.impl.db.BasicDatabase.bootStore(BasicDatabase.java:758) at org.apache.derby.impl.db.BasicDatabase.boot(BasicDatabase.java:179) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1999) at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:290) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1846) at org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(BaseMonitor.java:1712) at org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(BaseMonitor.java:1591) at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(BaseMonitor.java:996) at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(BaseMonitor.java:988) at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Monitor.java:533) at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:1555) at org.apache.derby.impl.jdbc.EmbedConnection.(EmbedConnection.java:200) at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Driver30.java:73) at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:187) at java.sql.DriverManager.getConnection(DriverManager.java:562) at java.sql.DriverManager.getConnection(DriverManager.java:208) at ReproNPEOnLowFD.main(ReproNPEOnLowFD.java:11) Exception in thread "main" SQL Exception: Failed to start database 'wombat', see the next exception for details. at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:80) at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:166) at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(EmbedConnection.java:1912) at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:1572) at org.apache.derby.impl.jdbc.EmbedConnection.(EmbedConnection.java:200) at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Driver30.java:73) at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:187) at java.sql.DriverManager.getConnection(DriverManager.java:562) at java.sql.DriverManager.getConnection(DriverManager.java:208) at ReproNPEOnLowFD.main(ReproNPEOnLowFD.java:11) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.