db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <rick.hille...@gmail.com>
Subject Re: Derby on a docker bind mount
Date Sat, 01 Dec 2018 17:21:41 GMT
You can maximize the verbosity of error logging by setting the following 
system property (see 
http://db.apache.org/derby/docs/10.14/ref/rrefproper26985.html):

   derby.stream.error.logSeverityLevel=0

You can also set the following system property in order to help diagnose 
which statement triggers the error (see 
http://db.apache.org/derby/docs/10.14/ref/rrefproper43517.html):

   derby.language.logStatementText=true

It looks to me as though Derby has filled up a recovery log file and 
needs to create a new recovery log file. So the actual triggering 
statement will probably be a red herring. But when Derby tries to create 
this new recovery log file, it gets a FileNotFoundException complaining 
that Derby doesn't have permission to access the following file:

   <pathtodb>/log/log2.dat

To my eyes, that's a very strange file name. Did you really create a 
database called <pathtodb>? Does the following file exist:

   <pathtodb>/log/log1.dat

The inability to continue writing recovery log records sounds like a 
fatal condition, so I am not surprised that Derby fails to boot.

Thanks,
-Rick


On 12/1/18 7:18 AM, Java CodeSmith wrote:
> Hello,
>
> I'm running a derby database and application in a docker container.
>
> The derby version is 10.14.1.  The derby db comes up fine and works 
> fine for about 1 hour.
>  I can insert, delete, read, etc.  All is well until this error pops 
> up.  The database is on a docker bind mount..
>
> Windows Dockers version:  Docker Desktop version Version 2.0.0.0-win78 
> (28905)
>
> Restarting everything does not resolve the issue.  At that point it 
> seems that the database is corrupted and will not start.
>
> When the database is on a docker volume the problem does not occur.
>
> Any ideas?  Can I put derby into a more verbose method to see exactly 
> what is going wrong?
>
> Thank you,
> Paul
>
>
> Wed Nov 28 00:06:10 UTC 2018 : Apache Derby Network Server - 10.14.1.0 
> - (180882
> 0) started and ready to accept connections on port 1527
> ----------------------------------------------------------------
> Wed Nov 28 00:06:24 UTC 2018:
> Booting Derby version The Apache Software Foundation - Apache Derby - 
> 10.14.1.0
> - (1808820): instance a816c00e-0167-57a3-2982-ffff81b94b19
> on database directory <pathtodb> with class loader sun.misc.Launch
> er$AppClassLoader@3764951d
> Loaded from file:<pathtodbbinaries>/db-derby-10.14.1.0-bin/lib/derby.
> jar
> java.vendor=Oracle Corporation
> java.runtime.version=1.8.0_111-8u111-b14-2~bpo8+1-b14
> os.name <http://os.name/>=Linux
> os.arch=amd64
> os.version=4.9.125-linuxkit
> derby.system.home=../derby
> Database Class Loader started - derby.database.classpath=''
> ------------  Begin Error Message -------------
> *
> *
> *Cannot create a new log file <pathtodb>/log/log2.dat due to java.i*
> *o.FileNotFoundException: <pathtodb>/log/log2.dat (Permission denie*
> *d)*
> ------------  End Error Message -------------
>
>
> ------------  Begin Shutdown Error Stack -------------
>
> ERROR XSLA2: System will shutdown, got I/O Exception while accessing 
> log file.
>         at 
> org.apache.derby.iapi.error.StandardException.newException(Unknown So
> urce)
>         at 
> org.apache.derby.impl.store.raw.log.LogToFile.switchLogFile(Unknown S
> ource)



Mime
View raw message