After installation of a package from source, Architect updates the help index.
After that it crashes without an error.
The last message in the log is:
!MESSAGE An error occurred when exec RJ UI command 'org.eclipse.statet.r.apps.onAppStarted'.
!STACK 0
org.eclipse.statet.jcommons.status.StatusException: Unhandled RJ UI command 'org.eclipse.statet.r.apps.onAppStarted'.
at org.eclipse.statet.rj.server.client.AbstractRJComClient.handleUICallback(AbstractRJComClient.java:478)
at org.eclipse.statet.r.nico.impl.RjsController$NicoComClient.handleUICallback(RjsController.java:357)
at org.eclipse.statet.rj.server.client.AbstractRJComClient.processUICallback(AbstractRJComClient.java:454)
at org.eclipse.statet.rj.server.client.AbstractRJComClient.processMainCmd(AbstractRJComClient.java:417)
at org.eclipse.statet.rj.server.MainCmdS2CList.readExternal(MainCmdS2CList.java:80)
at java.base/java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2136)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2085)
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1594)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
at java.rmi/sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:322)
at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:174)
at java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:209)
at java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:161)
at com.sun.proxy.$Proxy25.runMainLoop(Unknown Source)
at org.eclipse.statet.rj.server.client.AbstractRJComClient.runMainLoop(AbstractRJComClient.java:905)
at org.eclipse.statet.rj.server.client.AbstractRJComClient.answerConsole(AbstractRJComClient.java:1191)
at org.eclipse.statet.r.nico.impl.RjsController.doSubmitL(RjsController.java:1127)
at org.eclipse.statet.nico.core.runtime.ToolController.submitToConsole(ToolController.java:1921)
at org.eclipse.statet.r.nico.AbstractRDbgController.submitToConsole(AbstractRDbgController.java:796)
at org.eclipse.statet.nico.core.runtime.ToolController$ConsoleCommandRunnable.run(ToolController.java:206)
at org.eclipse.statet.r.console.core.AbstractRController$RCommandRunnable.run(AbstractRController.java:68)
at org.eclipse.statet.nico.core.runtime.ToolController.loopRunTask(ToolController.java:1260)
at org.eclipse.statet.nico.core.runtime.ToolController.loopTopLevel(ToolController.java:1052)
at org.eclipse.statet.nico.core.runtime.ToolController.run(ToolController.java:623)
at org.eclipse.statet.nico.core.runtime.ToolRunner.run(ToolRunner.java:93)
at org.eclipse.statet.nico.core.runtime.ToolRunner.access$0(ToolRunner.java:91)
at org.eclipse.statet.nico.core.runtime.ToolRunner$1.run(ToolRunner.java:105)
!ENTRY org.eclipse.statet.rhelp.core 1 0 2020-06-26 15:06:48.951
!MESSAGE Indexing: 'Embedded R Server'.
!SUBENTRY 1 org.eclipse.statet.rhelp.core 1 0 2020-06-26 15:06:48.951
!MESSAGE Beginning batch (index directory= 'C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\renv\eplugin-local-eu.openanalytics.r.server\shared\index').
!SUBENTRY 1 org.eclipse.statet.rhelp.core 1 0 2020-06-26 15:06:48.951
!MESSAGE Setting doc dir to: 'C:\Users\<USER>\AppData\Local\Architect\plugins\eu.openanalytics.architect.r.server.win32.win32.x86_64_1.0.0.201911242027\R\doc'.
!SUBENTRY 1 org.eclipse.statet.rhelp.core 1 0 2020-06-26 15:06:48.952
!MESSAGE Beginning package: '<pkgNameSrc>'.
!SUBENTRY 1 org.eclipse.statet.rhelp.core 1 0 2020-06-26 15:06:48.952
!MESSAGE Finishing batch.
It then crashed again when I started it and it tried to index the help again.
And then I only see this in the log:
!ENTRY org.eclipse.statet.rhelp.core 1 0 2020-06-26 15:10:09.456
!MESSAGE Indexing: 'Embedded R Server'.
!SUBENTRY 1 org.eclipse.statet.rhelp.core 1 0 2020-06-26 15:10:09.456
!MESSAGE Beginning batch (index directory= 'C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\renv\eplugin-local-eu.openanalytics.r.server\shared\index').
!SUBENTRY 1 org.eclipse.statet.rhelp.core 1 0 2020-06-26 15:10:09.456
!MESSAGE Setting doc dir to: 'C:\Users\<USER>\AppData\Local\Architect\plugins\eu.openanalytics.architect.r.server.win32.win32.x86_64_1.0.0.201911242027\R\doc'.
!SUBENTRY 1 org.eclipse.statet.rhelp.core 1 0 2020-06-26 15:10:09.456
!MESSAGE Beginning package: '<pkgNameSrc>'.
!SUBENTRY 1 org.eclipse.statet.rhelp.core 1 0 2020-06-26 15:10:09.456
!MESSAGE Finishing batch.
So it seems to try (and fail) again.
Prior to this, this also happened with another package I installed from source as well…
By the way, this was all working fine, prior to today.
This started happening after I installed a package from source using devtools::install()
Update:
I triggered a full reindex.
And at the end it crashed again…
I see a lot of messages like this in the log and it seems to end correctly:
!MESSAGE Beginning package: 'zip'.
!SUBENTRY 1 org.eclipse.statet.rhelp.core 1 0 2020-06-26 16:04:04.726
!MESSAGE Beginning package: 'zoo'.
!SUBENTRY 1 org.eclipse.statet.rhelp.core 1 0 2020-06-26 16:04:04.726
!MESSAGE Finishing batch.
Another update:
I even renamed the index directory in:
~/.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\renv\eplugin-local-eu.openanalytics.r.server\shared
It started indexing fine, but again after it finished it crashed…
For future reference.
This started happening after I installed an internal package using devtools::install
I ended up deleting that package from the user library:
~\.architect\workspace\.metadata\.r\eplugin-local-eu.openanalytics.r.server\user-library
And then restarting Architect (making sure none openjdk or architect processes were still running).
Then I installed the package again (this time using R CMD INSTALL from Architect, although I do not think that that matters).
Afterwards I let it reindex completely again, and that seems to have resolved it.
It happened again.
This time I was more alert with looking at the logs. And I think I have seen the following error the last time as well:
java.io.EOFException: Unexpected end of ZLIB input stream
at java.base/java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:245)
at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:159)
at java.base/java.io.DataInputStream.readFully(DataInputStream.java:200)
at org.eclipse.statet.internal.rhelp.core.FIO.readString(FIO.java:502)
at org.eclipse.statet.internal.rhelp.core.SerUtil.loadPage(SerUtil.java:508)
at org.eclipse.statet.internal.rhelp.core.SerUtil.loadPackage(SerUtil.java:441)
at org.eclipse.statet.internal.rhelp.core.SerUtil.load(SerUtil.java:348)
at org.eclipse.statet.internal.rhelp.core.SerUtil.load(SerUtil.java:246)
at org.eclipse.statet.internal.rhelp.core.RHelpManagerIntern.getHelpIntern(RHelpManagerIntern.java:509)
at org.eclipse.statet.rhelp.core.RHelpManager.getHelp(RHelpManager.java:77)
at org.eclipse.statet.internal.r.core.RCorePlugin$PreloadRHelpJob.run(RCorePlugin.java:72)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
It then seems that it corrupts the package in the user library, and that makes the indexing fail.
It just happened to me again, and this time I see more useful output in the logs:
!ENTRY org.eclipse.statet.r.core 4 -1 2020-12-02 09:14:55.925
!MESSAGE An error occurred when initializing DB for model.
!STACK 1
org.eclipse.core.runtime.CoreException: An error occurred when loading embedded DB (Derby + DBCP)
DB ConnectionURL=C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\db
Driver Name=org.apache.derby.jdbc.EmbeddedDriver, Version=10.11
at org.eclipse.statet.ecommons.edb.core.EmbeddedDB$DerbyDB.createConnectionFactory(EmbeddedDB.java:125)
at org.eclipse.statet.ecommons.edb.core.EmbeddedDB$AbstractDB.createConnectionPool(EmbeddedDB.java:57)
at org.eclipse.statet.ecommons.edb.core.EmbeddedDB.createConnectionPool(EmbeddedDB.java:161)
at org.eclipse.statet.internal.r.core.sourcemodel.RModelIndex.initDB(RModelIndex.java:989)
at org.eclipse.statet.internal.r.core.sourcemodel.RModelIndex.<init>(RModelIndex.java:604)
at org.eclipse.statet.internal.r.core.sourcemodel.RModelManager.<init>(RModelManager.java:63)
at org.eclipse.statet.internal.r.core.RCorePlugin.start(RCorePlugin.java:152)
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:842)
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:834)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:791)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1015)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:365)
at org.eclipse.osgi.container.Module.doStart(Module.java:603)
at org.eclipse.osgi.container.Module.start(Module.java:467)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:493)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:571)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:346)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:425)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:171)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:620)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:196)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:929)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
at org.eclipse.core.internal.events.BuildManager.instantiateBuilder(BuildManager.java:1012)
at org.eclipse.core.internal.events.BuildManager.initializeBuilder(BuildManager.java:951)
at org.eclipse.core.internal.events.BuildManager.getBuilder(BuildManager.java:633)
at org.eclipse.core.internal.events.BuildManager.getBuilder(BuildManager.java:673)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:261)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:154)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:244)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.sql.SQLException: Failed to create database 'C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\db', 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)
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.eclipse.statet.ecommons.edb.core.EmbeddedDB$DerbyDB.createConnectionFactory(EmbeddedDB.java:118)
... 43 more
Caused by: ERROR XJ041: Failed to create database 'C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\db', see the next exception for details.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 53 more
Caused by: ERROR XBM0J: Directory C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.ecommons.edb.core\C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\db 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.base/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)
... 50 more
!SUBENTRY 1 org.eclipse.statet.ecommons.edb.core 4 -1 2020-12-02 09:14:55.927
!MESSAGE An error occurred when loading embedded DB (Derby + DBCP)
DB ConnectionURL=C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\db
Driver Name=org.apache.derby.jdbc.EmbeddedDriver, Version=10.11
!STACK 0
java.sql.SQLException: Failed to create database 'C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\db', 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)
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.eclipse.statet.ecommons.edb.core.EmbeddedDB$DerbyDB.createConnectionFactory(EmbeddedDB.java:118)
at org.eclipse.statet.ecommons.edb.core.EmbeddedDB$AbstractDB.createConnectionPool(EmbeddedDB.java:57)
at org.eclipse.statet.ecommons.edb.core.EmbeddedDB.createConnectionPool(EmbeddedDB.java:161)
at org.eclipse.statet.internal.r.core.sourcemodel.RModelIndex.initDB(RModelIndex.java:989)
at org.eclipse.statet.internal.r.core.sourcemodel.RModelIndex.<init>(RModelIndex.java:604)
at org.eclipse.statet.internal.r.core.sourcemodel.RModelManager.<init>(RModelManager.java:63)
at org.eclipse.statet.internal.r.core.RCorePlugin.start(RCorePlugin.java:152)
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:842)
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:834)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:791)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1015)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:365)
at org.eclipse.osgi.container.Module.doStart(Module.java:603)
at org.eclipse.osgi.container.Module.start(Module.java:467)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:493)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:571)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:346)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:425)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:171)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:620)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:196)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:929)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
at org.eclipse.core.internal.events.BuildManager.instantiateBuilder(BuildManager.java:1012)
at org.eclipse.core.internal.events.BuildManager.initializeBuilder(BuildManager.java:951)
at org.eclipse.core.internal.events.BuildManager.getBuilder(BuildManager.java:633)
at org.eclipse.core.internal.events.BuildManager.getBuilder(BuildManager.java:673)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:261)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:154)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:244)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: ERROR XJ041: Failed to create database 'C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\db', see the next exception for details.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 53 more
Caused by: ERROR XBM0J: Directory C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.ecommons.edb.core\C:\Users\<USER>\.architect\workspace\.metadata\.plugins\org.eclipse.statet.r.core\db 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.base/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)
... 50 more