<< Back to previous view |
[QB-3336] H2 database opening failed with: The database is read only
|
|
Status: | Closed |
Project: | QuickBuild |
Component/s: | None |
Affects Version/s: | None |
Fix Version/s: | None |
Type: | Bug | Priority: | Major |
Reporter: | AlSt | Assigned To: | Steve Luo |
Resolution: | Cannot Reproduce | Votes: | 0 |
Remaining Estimate: | Unknown | Time Spent: | Unknown |
Original Estimate: | Unknown |
Description |
com.pmease.quickbuild.plugin.report.engine.exception.DatabaseException: Open database [/opt/quickbuild/buildagent/temp/abstractpublisherdc7149f7-b1f2-4343-95a3-3566f47d6f93/DEFAULT] failed. Database status [No active connections].
Caused by: com.pmease.quickbuild.plugin.report.engine.exception.DatabaseException: Unable to get connection from database url: jdbc:h2:/opt/quickbuild/buildagent/temp/abstractpublisherdc7149f7-b1f2-4343-95a3-3566f47d6f93/DEFAULT/junit;ACCESS_MODE_DATA=r Caused by: org.h2.jdbc.JdbcSQLException: The database is read only [90097-175] at org.h2.message.DbException.getJdbcSQLException(DbException.java:332) at org.h2.message.DbException.get(DbException.java:172) at org.h2.message.DbException.get(DbException.java:149) at org.h2.message.DbException.get(DbException.java:138) at org.h2.engine.Database.checkWritingAllowed(Database.java:1784) at org.h2.store.FileStore.checkWritingAllowed(FileStore.java:156) at org.h2.store.FileStore.write(FileStore.java:314) at org.h2.store.PageStore.writePage(PageStore.java:1333) at org.h2.store.PageLog.recover(PageLog.java:298) at org.h2.store.PageStore.recover(PageStore.java:1359) at org.h2.store.PageStore.openExisting(PageStore.java:361) at org.h2.store.PageStore.open(PageStore.java:285) at org.h2.engine.Database.getPageStore(Database.java:2298) at org.h2.engine.Database.open(Database.java:626) at org.h2.engine.Database.openDatabase(Database.java:244) at org.h2.engine.Database.<init>(Database.java:239) at org.h2.engine.Engine.openSession(Engine.java:58) at org.h2.engine.Engine.openSession(Engine.java:162) at org.h2.engine.Engine.createSessionAndValidate(Engine.java:141) at org.h2.engine.Engine.createSession(Engine.java:124) at org.h2.engine.Engine.createSession(Engine.java:30) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:323) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:105) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:90) at org.h2.Driver.connect(Driver.java:73) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) The same happens then when trying to open the build overview page, but with a different path: com.pmease.quickbuild.plugin.report.engine.exception.DatabaseException: Open database [/opt/quickbuild/storage/98974/builds/b927/12250927/reports/junit/DEFAULT] failed. Database status [No active connections]. at com.pmease.quickbuild.plugin.report.engine.datastore.DbStore.open(DbStore.java:355) at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.getRowsCount(ReportCategory.java:320) at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.getRowsCount(ReportCategory.java:329) at com.pmease.quickbuild.plugin.report.engine.renderer.unprocessed.UnProcessedRenderer.isApplicable(UnProcessedRenderer.java:51) at com.pmease.quickbuild.plugin.report.engine.contribution.web.CategoryBuildTab.getTabs(CategoryBuildTab.java:77) at com.pmease.quickbuild.web.page.build.BuildPage.onInitialize(BuildPage.java:752) at org.apache.wicket.Component.fireInitialize(Component.java:924) at org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1002) at org.apache.wicket.Page.internalPrepareForRender(Page.java:278) at org.apache.wicket.Component.render(Component.java:2280) at org.apache.wicket.Page.renderPage(Page.java:1035) at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:105) at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:182) at org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:147) at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:719) at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:63) at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:210) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:253) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162) com.pmease.quickbuild.plugin.report.engine.exception.DatabaseException: Unable to get connection from database url: jdbc:h2:/opt/quickbuild/storage/98974/builds/b927/12250927/reports/junit/DEFAULT/junit;ACCESS_MODE_DATA=r at com.pmease.quickbuild.plugin.report.engine.datastore.ConnectionManager.getConnection(ConnectionManager.java:25) at com.pmease.quickbuild.plugin.report.engine.datastore.DbStore.getConnection(DbStore.java:384) at com.pmease.quickbuild.plugin.report.engine.datastore.DbStore.open(DbStore.java:322) at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.getRowsCount(ReportCategory.java:320) at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.getRowsCount(ReportCategory.java:329) at com.pmease.quickbuild.plugin.report.engine.renderer.unprocessed.UnProcessedRenderer.isApplicable(UnProcessedRenderer.java:51) at com.pmease.quickbuild.plugin.report.engine.contribution.web.CategoryBuildTab.getTabs(CategoryBuildTab.java:77) at com.pmease.quickbuild.web.page.build.BuildPage.onInitialize(BuildPage.java:752) at org.apache.wicket.Component.fireInitialize(Component.java:924) at org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1002) at org.apache.wicket.Page.internalPrepareForRender(Page.java:278) at org.apache.wicket.Component.render(Component.java:2280) at org.apache.wicket.Page.renderPage(Page.java:1035) at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:105) at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:182) at org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:147) at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:719) at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:63) at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:210) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:253) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162) I saw in com.pmease.quickbuild.plugin.report.engine/src/com/pmease/quickbuild/plugin/report/engine/datastore/DbStore.java that there is an attempt to workaround this issue. But the code for that is put into a comment. Is there any way to actually get that working everytime? |
Comments |
Comment by AlSt [ 06/May/19 07:17 AM ] |
Do you know if this problem is already fixed in the new QB version? Maybe by using a newer H2 lib version? |
Comment by Steve Luo [ 20/May/19 03:17 AM ] |
Hi, we still don't know the root cause of this issue and can't reproduce this issue, so we haven't upgraded H2 version. But if you want to try/help with new H2 to see if this error persists, you can tell me and I will help to create a new QuickBuild for you. |
Comment by AlSt [ 20/May/19 07:43 AM ] |
That's a quite good idea. Next time this happens I'll save the corrupt file and try locally with a newer h2 version.
I already built QB once via ant, so this is not a problem. I'll come back to you once I have new information. |