Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 481342 - Performance tests: Can not create data base
Summary: Performance tests: Can not create data base
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 4.6   Edit
Hardware: PC Linux
: P3 blocker (vote)
Target Milestone: 4.6 M4   Edit
Assignee: David Williams CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 454921
  Show dependency tree
 
Reported: 2015-11-03 13:12 EST by David Williams CLA
Modified: 2015-11-03 14:05 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Williams CLA 2015-11-03 13:12:59 EST
Yesterday I removed (renamed) previous database in order to get a "clean start" on data. 

Last night's nightly, and today's I-build say "can not create database", database (or, directory?) already exists." 

= = = = 

This is what "unit test console log" looks like: 

Trying to connect over network with // jdbc protocol;  org.apache.derby.jdbc.ClientDriver to //172.25.25.57:1527/perfDB ...
SQLException: java.sql.SQLNonTransientConnectionException: DERBY SQL error: ERRORCODE: 40000, SQLSTATE: XJ041, SQLERRMC: Failed to create database 'perfDB', see the next exception for details.::SQLSTATE: XBM0J

!ENTRY org.eclipse.test.performance 4 1 2015-11-03 10:40:07.408
!MESSAGE DERBY SQL error: ERRORCODE: 40000, SQLSTATE: XJ041, SQLERRMC: Failed to create database 'perfDB', see the next exception for details.::SQLSTATE: XBM0J
Scenario 'org.eclipse.ant.tests.ui.editor.performance.OpenAntEditorTest#testOpenAntEditor1()' (average over 15 samples):
  System Time:            1.64s         (95% in [942ms, 2.34s])        Measurable effect: 1.31s (1.0 SDs) (required sample size for an effect of 5% of mean: 3796)
  Used Java Heap:         4.07M         (95% in [-13.72M, 21.86M])     Measurable effect: 33.18M (1.0 SDs) (required sample size for an effect of 5% of stdev: 6400)
  Working Set:            4.51M         (95% in [1.85M, 7.17M])        Measurable effect: 4.96M (1.0 SDs) (required sample size for an effect of 5% of stdev: 6400)
  Elapsed Process:        1.64s         (95% in [942ms, 2.34s])        Measurable effect: 1.31s (1.0 SDs) (required sample size for an effect of 5% of mean: 3796)
  Kernel time:              60ms        (95% in [31ms, 89ms])          Measurable effect: 53ms (1.0 SDs) (required sample size for an effect of 5% of mean: 4707)
  CPU Time:               1.61s         (95% in [913ms, 2.3s])         Measurable effect: 1.29s (1.0 SDs) (required sample size for an effect of 5% of mean: 3877)
  Hard Page Faults:          0          (95% in [0, 0])               
  Soft Page Faults:       2.12K         (95% in [625, 3.6K])           Measurable effect: 2.78K (1.0 SDs) (required sample size for an effect of 5% of stdev: 6400)
  Text Size:                 0          (95% in [0, 0])               
  Data Size:                 0          (95% in [0, 0])               
  Library Size:         646.13K         (95% in [-385.51K, 1.64M])     Measurable effect: 1.88M (1.0 SDs) (required sample size for an effect of 5% of stdev: 6400)


= = = = = =

The "derby.log" looks like this: 




    1 Mon Nov 02 21:43:57 EST 2015 : Could not listen on port 1527 on host 172.25.25.57: 
    2  java.net.SocketException: Address already in use 
    3 Mon Nov 02 21:43:57 EST 2015 : Apache Derby Network Server - 10.11.1.1 - (1616546) started and ready to accept connections on port 1527 
    4 An exception was thrown during network server startup. DRDA_ListenPort.S:Could not listen on port 1527 on host 172.25.25.57: 
    5  java.net.SocketException: Address already in use 
    6 java.lang.reflect.InvocationTargetException 
    7         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    8         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    9         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
   10         at java.lang.reflect.Method.invoke(Method.java:497) 
   11         at org.apache.derby.iapi.jdbc.DRDAServerStarter.run(Unknown Source) 
   12         at java.lang.Thread.run(Thread.java:745) 
   13 Caused by: java.lang.Exception: DRDA_ListenPort.S:Could not listen on port 1527 on host 172.25.25.57: 
   14  java.net.SocketException: Address already in use 
   15         at org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessageWork(Unknown Source) 
   16         at org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessage(Unknown Source) 
   17         at org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(Unknown Source) 
   18         ... 6 more 
   19 Mon Nov 02 21:48:40 EST 2015 Thread[DRDAConnThread_2,5,main] Cleanup action starting 
   20 ERROR XBM0J: Directory /shared/eclipse/databases//opt/public/eclipse/databases/perfDB already exists. 
   21         at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
   22         at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
   23         at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source) 
   24         at java.security.AccessController.doPrivileged(Native Method) 
   25         at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source) 
   26         at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source) 
   27         at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source) 
   28         at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(Unknown Source) 
   29         at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source) 
   30         at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source) 
   31         at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) 
   32         at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source) 
   33         at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
   34         at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
   35         at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source) 
   36         at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source) 
   37         at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown Source) 
   38         at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source) 
   39         at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source) 
   40         at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source) 
   41         at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) 
   42         at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) 
   43 Cleanup action completed 
   44 Mon Nov 02 21:48:40 EST 2015 Thread[DRDAConnThread_2,5,main] Cleanup action starting 
   45 java.sql.SQLException: Failed to create database 'perfDB', see the next exception for details. 
   46         at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) 
   47         at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) 
   48         at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source) 
   49         at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source) 
   50         at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) 
   51         at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source) 
   52         at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
   53         at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
   54         at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source) 
   55         at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source) 
   56         at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown Source) 
   57         at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source) 
   58         at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source) 
   59         at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source) 
   60         at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) 
   61         at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) 
   62 Caused by: ERROR XJ041: Failed to create database 'perfDB', see the next exception for details. 
   63         at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
   64         at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source) 
   65         ... 16 more 
   66 Caused by: ERROR XBM0J: Directory /shared/eclipse/databases//opt/public/eclipse/databases/perfDB already exists. 
   67         at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
   68         at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
   69         at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source) 
   70         at java.security.AccessController.doPrivileged(Native Method) 
   71         at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source) 
   72         at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source) 
   73         at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source) 
   74         at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(Unknown Source) 
   75         at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source) 
   76         ... 13 more 
   77 ============= begin nested exception, level (1) =========== 
   78 java.sql.SQLException: Directory /shared/eclipse/databases//opt/public/eclipse/databases/perfDB already exists. 
   79         at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) 
   80         at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) 
   81         at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) 
   82         at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) 
   83         at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) 
   84         at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source) 
   89         at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source) 
   90         at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source) 
   91         at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown Source) 
   92         at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source) 
   93         at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source) 
   94         at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source) 
    1 Mon Nov 02 21:43:57 EST 2015 : Could not listen on port 1527 on host 172.25.25.57:
    2  java.net.SocketException: Address already in use
    3 Mon Nov 02 21:43:57 EST 2015 : Apache Derby Network Server - 10.11.1.1 - (1616546) started and ready to accept connections on port 1527
    4 An exception was thrown during network server startup. DRDA_ListenPort.S:Could not listen on port 1527 on host 172.25.25.57:
Mon Nov 02 21:43:57 EST 2015 : Could not listen on port 1527 on host 172.25.25.57:
 java.net.SocketException: Address already in use 
Mon Nov 02 21:43:57 EST 2015 : Apache Derby Network Server - 10.11.1.1 - (1616546) started and ready to accept connections on port 1527
An exception was thrown during network server startup. DRDA_ListenPort.S:Could not listen on port 1527 on host 172.25.25.57:
 java.net.SocketException: Address already in use 
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.derby.iapi.jdbc.DRDAServerStarter.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.Exception: DRDA_ListenPort.S:Could not listen on port 1527 on host 172.25.25.57:
 java.net.SocketException: Address already in use 
        at org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessageWork(Unknown Source)
        at org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessage(Unknown Source)
        at org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(Unknown Source)
        ... 6 more
Mon Nov 02 21:48:40 EST 2015 Thread[DRDAConnThread_2,5,main] Cleanup action starting
ERROR XBM0J: Directory /shared/eclipse/databases//opt/public/eclipse/databases/perfDB already exists.
        at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
        at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
        at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source)
        at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source)
        at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source)
        at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(Unknown Source)
        at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
        at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source)
        at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
        at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
        at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source)
        at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source)
        at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown Source)
        at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source)
        at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source)
        at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source)
        at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
        at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
Cleanup action completed
Mon Nov 02 21:48:40 EST 2015 Thread[DRDAConnThread_2,5,main] Cleanup action starting
java.sql.SQLException: Failed to create database 'perfDB', see the next exception for details.
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
        at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source)
Comment 1 David Williams CLA 2015-11-03 13:17:18 EST
The "Address already in use" messages are disturbing, but I think might be "normal". 

I am going to cancel currently running performance jobs. 

Then delete the perfDB directory. (When I deleted previous one, I did recreate the directory, thinking that was needed ... but, might be NOT needed.). 

Then will leave the database "not started" (so port not in use) ant then restart the performance test from I-build.
Comment 2 David Williams CLA 2015-11-03 14:05:14 EST
Appears to be fixed. 

I did have to delete the 'perfDB' directory, and the performance tests will create it itself (if does not exist). 

BUT, when using the network driver method of access (at least -- might be different with embedded?) it is necessary to have already "started" the derby database. 

Even then there is an "address already in use" message in derby log. But, as the test began to run, I could see it create the database, and the test log said 

Trying to connect over network with // jdbc protocol;  org.apache.derby.jdbc.ClientDriver to //172.25.25.57:1527/perfDB ...
connect succeeded!

= = = = = 

When I had not started the DB ahead of time, message was 

Trying to connect over network with // jdbc protocol;  org.apache.derby.jdbc.ClientDriver to //172.25.25.57:1527/perfDB ...
SQLException: java.sql.SQLNonTransientConnectionException: java.net.ConnectException : Error connecting to server 172.25.25.57 on port 1,527 with message Connection refused.

!ENTRY org.eclipse.test.performance 4 1 2015-11-03 13:42:11.875
!MESSAGE No suitable driver found for jdbc:cloudscape://172.25.25.57:1527/perfDB
= = = = 

It just mentions 'couldscape' since that is a built-in fallback. 
I have opened bug 481346 to remove the references to cloudscape.