Your browser was unable to load all of the resources. They may have been blocked by your firewall, proxy or browser configuration.
Press Ctrl+F5 or Ctrl+Shift+R to have your browser try again.

File corrupted while reading record: #1985

satyam ·
Hi Robin,

I am getting below error when I am clicking on some of the builds.
Seems to be DB issue.

Can you please tell the reason.
Below is the ful log.

====================================================================
Error Details:

Message: java.lang.reflect.InvocationTargetException

Root cause:

org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "3654621 of 3654615". Possible solution: use the recovery tool [90030-159]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.store.PageStore.readPage(PageStore.java:1250)
at org.h2.store.PageStore.getPage(PageStore.java:707)
at org.h2.index.PageDataIndex.getPage(PageDataIndex.java:225)
at org.h2.index.PageDataNode.getLastKey(PageDataNode.java:208)
at org.h2.index.PageDataIndex.<init>(PageDataIndex.java:82)
at org.h2.table.RegularTable.<init>(RegularTable.java:92)
at org.h2.store.PageStore.addMeta(PageStore.java:1594)
at org.h2.store.PageStore.readMetaData(PageStore.java:1525)
at org.h2.store.PageStore.recover(PageStore.java:1329)
at org.h2.store.PageStore.openExisting(PageStore.java:349)
at org.h2.store.PageStore.open(PageStore.java:273)
at org.h2.engine.Database.getPageStore(Database.java:2049)
at org.h2.engine.Database.open(Database.java:553)
at org.h2.engine.Database.openDatabase(Database.java:220)
at org.h2.engine.Database.<init>(Database.java:215)
at org.h2.engine.Engine.openSession(Engine.java:56)
at org.h2.engine.Engine.openSession(Engine.java:159)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:138)
at org.h2.engine.Engine.createSession(Engine.java:121)
at org.h2.engine.Engine.createSession(Engine.java:28)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:285)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.pmease.quickbuild.plugin.report.engine.datastore.ConnectionManager.getConnection(ConnectionManager.java:23)
at com.pmease.quickbuild.plugin.report.engine.datastore.DbStore.getConnection(DbStore.java:344)
at com.pmease.quickbuild.plugin.report.engine.datastore.DbStore.open(DbStore.java:305)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.loadReport(ReportCategory.java:314)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.loadReport(ReportCategory.java:328)
at com.pmease.quickbuild.plugin.report.changes.migration.ChangesMigrator.migrateBuildReport1(ChangesMigrator.java:82)
at com.pmease.quickbuild.plugin.report.changes.migration.ChangesMigrator.migrate1(ChangesMigrator.java:221)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.pmease.quickbuild.migration.MigrationHelper.migrate(MigrationHelper.java:156)
at com.pmease.quickbuild.plugin.report.engine.migration.MigrationExecutor.doUpgrade(MigrationExecutor.java:81)
at com.pmease.quickbuild.plugin.report.engine.migration.MigrationExecutor.upgrade(MigrationExecutor.java:96)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.upgrade(ReportCategory.java:786)
at com.pmease.quickbuild.plugin.report.changes.ChangesCategory.getCategoryDirOfBuild(ChangesCategory.java:102)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.getReportSetsOfBuild(ReportCategory.java:510)
at com.pmease.quickbuild.plugin.report.changes.ChangesCategory.getReportSetsOfBuild(ChangesCategory.java:121)
at com.pmease.quickbuild.plugin.report.engine.contribution.web.CategoryBuildTab.getTabs(CategoryBuildTab.java:66)
at com.pmease.quickbuild.web.page.build.BuildPage.onInitialize(BuildPage.java:720)
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)
at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at com.pmease.quickbuild.web.WebServlet.service(WebServlet.java:123)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:78)
at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:131)
at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
at com.pmease.quickbuild.web.HttpServiceProvider$1$1.service(HttpServiceProvider.java:87)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:76)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:317)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:924)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)


Complete stack:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.pmease.quickbuild.bootstrap.BootstrapUtils.wrapAsUnchecked(BootstrapUtils.java:58)
at com.pmease.quickbuild.util.ExceptionUtils.wrapAsUnchecked(ExceptionUtils.java:82)
at com.pmease.quickbuild.migration.MigrationHelper.migrate(MigrationHelper.java:158)
at com.pmease.quickbuild.plugin.report.engine.migration.MigrationExecutor.doUpgrade(MigrationExecutor.java:81)
at com.pmease.quickbuild.plugin.report.engine.migration.MigrationExecutor.upgrade(MigrationExecutor.java:96)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.upgrade(ReportCategory.java:786)
at com.pmease.quickbuild.plugin.report.changes.ChangesCategory.getCategoryDirOfBuild(ChangesCategory.java:102)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.getReportSetsOfBuild(ReportCategory.java:510)
at com.pmease.quickbuild.plugin.report.changes.ChangesCategory.getReportSetsOfBuild(ChangesCategory.java:121)
at com.pmease.quickbuild.plugin.report.engine.contribution.web.CategoryBuildTab.getTabs(CategoryBuildTab.java:66)
at com.pmease.quickbuild.web.page.build.BuildPage.onInitialize(BuildPage.java:720)
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)

java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor477.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.pmease.quickbuild.migration.MigrationHelper.migrate(MigrationHelper.java:156)
at com.pmease.quickbuild.plugin.report.engine.migration.MigrationExecutor.doUpgrade(MigrationExecutor.java:81)
at com.pmease.quickbuild.plugin.report.engine.migration.MigrationExecutor.upgrade(MigrationExecutor.java:96)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.upgrade(ReportCategory.java:786)
at com.pmease.quickbuild.plugin.report.changes.ChangesCategory.getCategoryDirOfBuild(ChangesCategory.java:102)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.getReportSetsOfBuild(ReportCategory.java:510)
at com.pmease.quickbuild.plugin.report.changes.ChangesCategory.getReportSetsOfBuild(ChangesCategory.java:121)
at com.pmease.quickbuild.plugin.report.engine.contribution.web.CategoryBuildTab.getTabs(CategoryBuildTab.java:66)
at com.pmease.quickbuild.web.page.build.BuildPage.onInitialize(BuildPage.java:720)
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:/home/pbsadmin/pbs_storage/configurations/299/reports/scm_activity/DEFAULT/scm_activity;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:344)
at com.pmease.quickbuild.plugin.report.engine.datastore.DbStore.open(DbStore.java:305)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.loadReport(ReportCategory.java:314)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.loadReport(ReportCategory.java:328)
at com.pmease.quickbuild.plugin.report.changes.migration.ChangesMigrator.migrateBuildReport1(ChangesMigrator.java:82)
at com.pmease.quickbuild.plugin.report.changes.migration.ChangesMigrator.migrate1(ChangesMigrator.java:221)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.pmease.quickbuild.migration.MigrationHelper.migrate(MigrationHelper.java:156)
at com.pmease.quickbuild.plugin.report.engine.migration.MigrationExecutor.doUpgrade(MigrationExecutor.java:81)
at com.pmease.quickbuild.plugin.report.engine.migration.MigrationExecutor.upgrade(MigrationExecutor.java:96)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.upgrade(ReportCategory.java:786)
at com.pmease.quickbuild.plugin.report.changes.ChangesCategory.getCategoryDirOfBuild(ChangesCategory.java:102)
at com.pmease.quickbuild.plugin.report.engine.metadata.ReportCategory.getReportSetsOfBuild(ReportCategory.java:510)
at com.pmease.quickbuild.plugin.report.changes.ChangesCategory.getReportSetsOfBuild(ChangesCategory.java:121)
at com.pmease.quickbuild.plugin.report.engine.contribution.web.CategoryBuildTab.getTabs(CategoryBuildTab.java:66)
at com.pmease.quickbuild.web.page.build.BuildPage.onInitialize(BuildPage.java:720)
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)
====================================================================
  • replies 3
  • views 3626
  • stars 0
steveluo ADMIN ·
Seems your changes data file is corrupted. Please use h2 recovery tool to see whether you can recover it or not. Below link is how to use the tool:
http://www.h2database.com/html/advanced ... cover_tool

Your changes data file can be located on:
${quickbuild-data-dir}/configurations/${configuration-id}/reports/scm_activity/DEFAULT/scm_activity.h2.db

Let me know your result.
satyam ·
Hello Steve,

The sql file is generated but RunScript is not able to find the driver.

I am inside the dir:
user:~/storage/configurations/299/reports/scm_activity/DEFAULT$ ls
latest.id scm_activity.h2.db

First I executed:
user:~/storage/configurations/299/reports/scm_activity/DEFAULT$ java -cp /<parent>/quickbuild-4.0.20/framework/configuration/org.eclipse.osgi/bundles/7/1/.cp/lib/h2-1.3.159.jar org.h2.tools.Recover

Now I got sql file:
user:~/storage/configurations/299/reports/scm_activity/DEFAULT$ ls
latest.id scm_activity.h2.db scm_activity.h2.sql

After this I executed:
user:~/storage/configurations/299/reports/scm_activity/DEFAULT$ java -cp /<parent>/quickbuild-4.0.20/framework/configuration/org.eclipse.osgi/bundles/7/1/.cp/lib/h2-1.3.159.jar org.h2.tools.RunScript -url jdbc:mysql://localhost:3306/quickbuild -user root -script scm_activity.h2.sql
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/quickbuild
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at org.h2.tools.RunScript.process(RunScript.java:307)
at org.h2.tools.RunScript.runTool(RunScript.java:139)
at org.h2.tools.RunScript.main(RunScript.java:67)

Here: "jdbc:mysql://localhost:3306/quickbuild" is the one given in hibernate.properties file under hibernate.connection.url

Did I do something wrong
steveluo ADMIN ·
Below are steps to recover the corrupted report h2 data:
1. Go to your h2 data file directory
2. java -cp h2-1.3.159.jar org.h2.tools.Recover
3. mkdir old
4. mv scm_activity.h2.db scm_activity.trace.db old
5. java -cp h2-1.2.131.jar org.h2.tools.RunScript -url jdbc:h2:./scm_activity -user sa -script scm_activity.h2.sql

So, your only wrong is the last step.