Skip to content

StoreException: could not connect to database - After upgrade to 3.8.0 #2262

@LGJLI

Description

@LGJLI

Issue description

If you found a bug or want to have a new feature implemented, please take your time and look whether this issue has been discussed in another issue or on our mailing list already.

SCM-Manager is open source. If you have any knowledge of programming, maybe you can help. We would love to support you.

Bug Report

Describe how to reproduce the bug

When upgrading using apt repos from 3.7.3 to 3.8.0 the server hangs with the following error:

om.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/ErrorInjectingConstructor]: StoreException: could not connect to database
  at SQLiteQueryableStoreFactory.<init>(SQLiteQueryableStoreFactory.java:64)
  at SQLiteQueryableStoreFactory.class(SQLiteQueryableStoreFactory.java:47)
  while locating SQLiteQueryableStoreFactory
  at RepositoryQueryableStoreExporter.<init>(RepositoryQueryableStoreExporter.java:53)
      \_ for 2nd parameter
  at RemainingQueryableStoreImporter.<init>(RemainingQueryableStoreImporter.java:45)
      \_ for 2nd parameter
  while locating RemainingQueryableStoreImporter

Learn more:
  https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR

1 error

Revering back to 3.7.3 fixes the issue

Describe your SCM-Manager setup

Ubuntu 22.04 server - running SCM-manager 3.8.0

Which operating system, browser and versions do you use?

Firefox browser on Windows.

Log of the bug

  com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/ErrorInjectingConstructor]: StoreException: could not connect to database
  at SQLiteQueryableStoreFactory.<init>(SQLiteQueryableStoreFactory.java:64)
  at SQLiteQueryableStoreFactory.class(SQLiteQueryableStoreFactory.java:47)
  while locating SQLiteQueryableStoreFactory
  at RepositoryQueryableStoreExporter.<init>(RepositoryQueryableStoreExporter.java:53)
      \_ for 2nd parameter
  at RemainingQueryableStoreImporter.<init>(RemainingQueryableStoreImporter.java:45)
      \_ for 2nd parameter
  while locating RemainingQueryableStoreImporter

Learn more:
  https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR

1 error

======================
Full classname legend:
======================
RemainingQueryableStoreImporter:  "sonia.scm.importexport.RemainingQueryableStoreImporter"
RepositoryQueryableStoreExporter: "sonia.scm.importexport.RepositoryQueryableStoreExporter"
SQLiteQueryableStoreFactory:      "sonia.scm.store.sqlite.SQLiteQueryableStoreFactory"
StoreException:                   "sonia.scm.store.StoreException"
========================
End of classname legend:
========================

	at com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:251)
	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1151)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
	at sonia.scm.lifecycle.BootstrapContextListener.processUpdates(BootstrapContextListener.java:176)
	at sonia.scm.lifecycle.BootstrapContextListener.startEitherMigrationOrApplication(BootstrapContextListener.java:134)
	at sonia.scm.lifecycle.BootstrapContextListener.createMigrationOrNormalModuleProvider(BootstrapContextListener.java:125)
	at sonia.scm.lifecycle.BootstrapContextListener.createStageTwoInjector(BootstrapContextListener.java:118)
	at sonia.scm.lifecycle.BootstrapContextListener.getInjector(BootstrapContextListener.java:90)
	at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:45)
	at sonia.scm.lifecycle.BootstrapContextListener.contextInitialized(BootstrapContextListener.java:68)
	at sonia.scm.lifecycle.BootstrapContextFilter.initializeContext(BootstrapContextFilter.java:57)
	at sonia.scm.lifecycle.BootstrapContextFilter.init(BootstrapContextFilter.java:48)
	at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:133)
	at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$2(ServletHandler.java:725)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:749)
	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1305)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:902)
	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:533)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.server.Server.start(Server.java:470)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
	at org.eclipse.jetty.server.Server.doStart(Server.java:415)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at sonia.scm.server.ScmServer.init(ScmServer.java:65)
	at sonia.scm.server.ScmServer.run(ScmServer.java:36)
	at sonia.scm.server.ScmServerDaemon.main(ScmServerDaemon.java:34)
Caused by: sonia.scm.store.StoreException: could not connect to database
	at sonia.scm.store.sqlite.SQLiteQueryableStoreFactory.openDefaultConnection(SQLiteQueryableStoreFactory.java:114)
	at sonia.scm.store.sqlite.SQLiteQueryableStoreFactory.<init>(SQLiteQueryableStoreFactory.java:91)
	at sonia.scm.store.sqlite.SQLiteQueryableStoreFactory.<init>(SQLiteQueryableStoreFactory.java:64)
	at sonia.scm.store.sqlite.SQLiteQueryableStoreFactory$$FastClassByGuice$$1350ea2.GUICE$TRAMPOLINE(<generated>)
	at sonia.scm.store.sqlite.SQLiteQueryableStoreFactory$$FastClassByGuice$$1350ea2.apply(<generated>)
	at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
	at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:60)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
	... 35 more
Caused by: org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked)
	at org.sqlite.core.DB.newSQLException(DB.java:1179)
	at org.sqlite.core.DB.newSQLException(DB.java:1190)
	at org.sqlite.core.DB.execute(DB.java:985)
	at org.sqlite.core.CoreStatement.exec(CoreStatement.java:91)
	at org.sqlite.jdbc3.JDBC3Statement.lambda$execute$0(JDBC3Statement.java:56)
	at org.sqlite.jdbc3.JDBC3Statement.withConnectionTimeout(JDBC3Statement.java:458)
	at org.sqlite.jdbc3.JDBC3Statement.execute(JDBC3Statement.java:44)
	at org.sqlite.SQLiteConfig.apply(SQLiteConfig.java:220)
	at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:70)
	at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:28)
	at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:19)
	at org.sqlite.JDBC.createConnection(JDBC.java:106)
	at org.sqlite.SQLiteDataSource.getConnection(SQLiteDataSource.java:473)
	at org.sqlite.SQLiteDataSource.getConnection(SQLiteDataSource.java:465)
	at sonia.scm.store.sqlite.SQLiteQueryableStoreFactory.openDefaultConnection(SQLiteQueryableStoreFactory.java:110)
	... 58 more

Further information like screenshots

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpinnedPinnend issues are not touched by the stale bot

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions