FAIRDataTeam / FAIRDataPoint

https://www.fairdatapoint.org
MIT License
61 stars 40 forks source link

FDP in the latest (develop) docker image cannot start #581

Open mirzov opened 2 weeks ago

mirzov commented 2 weeks ago

What components are related to the issue?

Other (specify in text)

Which FDP are you using?

My local instance

Version

https://hub.docker.com/layers/fairdata/fairdatapoint/develop/images/sha256-ed38ca1f97b83bba4738c80d838259fa409fd956d17f98791f7c69196275fa1f?context=explore

What happened?

Trying to get the latest development docker image working, prepared the following docker-compose setup: https://github.com/ICOS-Carbon-Portal/meta/tree/28c90bcd2e7a417302b559f125758d6a5c98ac79/src/main/docker/fdp

FDP server startup failed, the logs complain about lack of Spring Bean definition for type org.fairdatateam.rdf.migration.database.RdfMigrationRepository. The culprit seems to be this method argument.

In addition, the fdp docker log contains many messages about Spring Data MongoDB. Should it not have been removed when moving to Postgres? The output from docker logs fdp is included.

Relevant log output

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of method rdfProductionMigrationRunner in org.fairdatapoint.config.RepositoryMigrationConfig required a bean of type 'org.fairdatateam.rdf.migration.database.RdfMigrationRepository' that could not be found.

Action:

Consider defining a bean of type 'org.fairdatateam.rdf.migration.database.RdfMigrationRepository' in your configuration.
click to see full logs ```none INFO StatusConsoleListener jar:nested:/fdp/app.jar/!BOOT-INF/classes/!/log4j2.xml does not support dynamic reconfiguration 2024-11-07 13:16:04,933 1067 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final 2024-11-07 13:16:05,014 1148 [main] INFO org.fairdatapoint.Application - Starting Application v1.17.1 using Java 21.0.5 with PID 1 (/fdp/app.jar started by root in /fdp) 2024-11-07 13:16:05,017 1151 [main] INFO org.fairdatapoint.Application - The following 1 profile is active: "production" 2024-11-07 13:16:06,352 2486 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode 2024-11-07 13:16:06,354 2488 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2024-11-07 13:16:06,490 2624 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 130 ms. Found 22 JPA repository interfaces. 2024-11-07 13:16:06,502 2636 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode 2024-11-07 13:16:06,502 2636 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data MongoDB repositories in DEFAULT mode. 2024-11-07 13:16:06,512 2646 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.ResourceDefinitionRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,512 2646 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.SearchSavedQueryRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,513 2647 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.MetadataSchemaVersionRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,513 2647 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.ResourceDefinitionChildRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,513 2647 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.ResourceDefinitionLinkRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,513 2647 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.ApiKeyRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,513 2647 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.ResourceDefinitionChildMetadataRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,513 2647 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.IndexWebhookRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,514 2648 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.MembershipRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,514 2648 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.MetadataSchemaRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,514 2648 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.SettingsSearchFilterItemRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,514 2648 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.UserAccountRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,514 2648 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.IndexSettingsRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,514 2648 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.SettingsMetricRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,515 2649 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.MetadataSchemaUsageRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,515 2649 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.MetadataSchemaExtensionRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,515 2649 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.SettingsSearchFilterRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,515 2649 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.SettingsAutocompleteSourceRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,515 2649 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.MembershipPermissionRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,515 2649 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.IndexEventRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,515 2649 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.IndexEntryRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,516 2650 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport - Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface org.fairdatapoint.database.db.repository.SettingsRepository; If you want this repository to be a MongoDB repository, consider annotating your entities with one of these annotations: org.springframework.data.mongodb.core.mapping.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.mongodb.repository.MongoRepository 2024-11-07 13:16:06,516 2650 [main] INFO org.springframework.data.repository.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 0 MongoDB repository interfaces. 2024-11-07 13:16:07,056 3190 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari' of type [org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,068 3202 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration' of type [org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,071 3205 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'stringOrNumberMigrationVersionConverter' of type [org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$StringOrNumberToMigrationVersionConverter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,091 3225 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties' of type [org.springframework.boot.autoconfigure.jdbc.DataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,096 3230 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$PooledDataSourceConfiguration' of type [org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$PooledDataSourceConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,098 3232 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'jdbcConnectionDetails' of type [org.springframework.boot.autoconfigure.jdbc.PropertiesJdbcConnectionDetails] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,114 3248 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dataSource' of type [com.zaxxer.hikari.HikariDataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,127 3261 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'aclConfig' of type [org.fairdatapoint.config.AclConfig$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,131 3265 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'cacheConfig' of type [org.fairdatapoint.config.CacheConfig$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,135 3269 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'cacheManager' of type [org.springframework.cache.concurrent.ConcurrentMapCacheManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,138 3272 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'permissionGrantingStrategy' of type [org.springframework.security.acls.domain.DefaultPermissionGrantingStrategy] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,142 3276 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'aclAuthorizationStrategy' of type [org.springframework.security.acls.domain.AclAuthorizationStrategyImpl] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,144 3278 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'aclCache' of type [org.springframework.security.acls.domain.SpringCacheBasedAclCache] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,157 3291 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'lookupStrategy' of type [org.springframework.security.acls.jdbc.BasicLookupStrategy] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,161 3295 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'aclService' of type [org.springframework.security.acls.jdbc.JdbcMutableAclService] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,165 3299 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'defaultMethodSecurityExpressionHandler' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,168 3302 [main] WARN org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'aclMethodSecurityConfiguration' of type [org.fairdatapoint.config.AclMethodSecurityConfiguration$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [healthEndpointGroupsBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies. 2024-11-07 13:16:07,446 3580 [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 80 (http) 2024-11-07 13:16:07,456 3590 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-80"] 2024-11-07 13:16:07,457 3591 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] 2024-11-07 13:16:07,457 3591 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.20] 2024-11-07 13:16:07,485 3619 [main] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext 2024-11-07 13:16:07,486 3620 [main] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 2388 ms 2024-11-07 13:16:07,732 3866 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... 2024-11-07 13:16:07,949 4083 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@41289e88 2024-11-07 13:16:07,951 4085 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. 2024-11-07 13:16:08,062 4196 [main] INFO org.flywaydb.core.internal.license.VersionPrinter - Flyway Community Edition 9.22.3 by Redgate 2024-11-07 13:16:08,062 4196 [main] INFO org.flywaydb.core.internal.license.VersionPrinter - See release notes here: https://rd.gt/416ObMi 2024-11-07 13:16:08,062 4196 [main] INFO org.flywaydb.core.internal.license.VersionPrinter - 2024-11-07 13:16:08,080 4214 [main] INFO org.flywaydb.core.FlywayExecutor - Database: jdbc:postgresql://postgres:5432/fdp (PostgreSQL 15.8) 2024-11-07 13:16:08,128 4262 [main] INFO org.flywaydb.core.internal.command.DbValidate - Successfully validated 1 migration (execution time 00:00.028s) 2024-11-07 13:16:08,138 4272 [main] INFO org.flywaydb.core.internal.command.DbMigrate - Current version of schema "public": 0001.0 2024-11-07 13:16:08,140 4274 [main] INFO org.flywaydb.core.internal.command.DbMigrate - Schema "public" is up to date. No migration necessary. 2024-11-07 13:16:08,252 4386 [main] INFO org.hibernate.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] 2024-11-07 13:16:08,310 4444 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.4.4.Final 2024-11-07 13:16:08,345 4479 [main] INFO org.hibernate.cache.internal.RegionFactoryInitiator - HHH000026: Second-level cache disabled 2024-11-07 13:16:08,477 4611 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) 2024-11-07 13:16:08,639 4773 [main] INFO org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer 2024-11-07 13:16:09,943 6077 [main] INFO org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 2024-11-07 13:16:09,945 6079 [main] INFO org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' 2024-11-07 13:16:10,557 6691 [main] INFO org.fairdatapoint.config.RepositoryConfig - Setting up InMemory Store 2024-11-07 13:16:10,571 6705 [main] INFO org.fairdatapoint.config.RepositoryConfig - Successfully configure a RDF repository 2024-11-07 13:16:10,626 6760 [main] INFO org.fairdatapoint.config.RepositoryConfig - Setting up InMemory Store 2024-11-07 13:16:10,626 6760 [main] INFO org.fairdatapoint.config.RepositoryConfig - Successfully configure a RDF repository 2024-11-07 13:16:10,986 7120 [main] INFO org.springframework.data.jpa.repository.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. 2024-11-07 13:16:11,477 7611 [main] INFO org.fairdatapoint.service.openapi.OpenApiService - Initializing OpenAPI with generic paths 2024-11-07 13:16:11,477 7611 [main] INFO org.fairdatapoint.service.openapi.OpenApiService - Removing OpenAPI paths: [] 2024-11-07 13:16:11,479 7613 [main] INFO org.fairdatapoint.service.openapi.OpenApiService - Adding OpenAPI paths: [] 2024-11-07 13:16:11,782 7916 [fdp-task-1] INFO org.fairdatapoint.service.index.event.EventService - Resuming unfinished events 2024-11-07 13:16:11,789 7923 [fdp-task-1] INFO org.fairdatapoint.service.index.event.EventService - Finished unfinished events 2024-11-07 13:16:12,064 8198 [main] WARN org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'rdfProductionMigrationRunner' defined in class path resource [org/fairdatapoint/config/RepositoryMigrationConfig.class]: Unsatisfied dependency expressed through method 'rdfProductionMigrationRunner' parameter 0: No qualifying bean of type 'org.fairdatateam.rdf.migration.database.RdfMigrationRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 2024-11-07 13:16:12,070 8204 [main] INFO org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' 2024-11-07 13:16:12,072 8206 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... 2024-11-07 13:16:12,074 8208 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. 2024-11-07 13:16:12,077 8211 [main] INFO org.apache.catalina.core.StandardService - Stopping service [Tomcat] 2024-11-07 13:16:12,097 8231 [main] INFO org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger - Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-11-07 13:16:12,121 8255 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of method rdfProductionMigrationRunner in org.fairdatapoint.config.RepositoryMigrationConfig required a bean of type 'org.fairdatateam.rdf.migration.database.RdfMigrationRepository' that could not be found. Action: Consider defining a bean of type 'org.fairdatateam.rdf.migration.database.RdfMigrationRepository' in your configuration. ```
dennisvang commented 1 week ago

@mirzov Thanks for the detailed report. I'm trying to pick up some of the slack while familiarizing myself with the FDP codebase, so let's see if we can figure this out.

On my system the develop branch runs without issue if I run the FDP from source using the development profile:

mvn spring-boot:run -Dspring-boot.run.profiles=development

(with postgres in a docker container)

Tests also pass, so it looks like this case slipped through the cracks of the test suite.

Looking more closely, the rdfProductionMigrationRunner (from the error message) is only used when the production profile is active:

https://github.com/FAIRDataTeam/FAIRDataPoint/blob/d0ca93f0ab993450a53f47bd3fd57270180c24f6/src/main/java/org/fairdatapoint/config/RepositoryMigrationConfig.java#L37-L38

Sure enough, the error can be reproduced on a local system, running the FDP from source, by activating the production profile:

mvn spring-boot:run -Dspring-boot.run.profiles=production

At least this indicates that the issue is not limited to the Docker image.

While I'm looking for a solution or workaround, perhaps @MarekSuchanek could tell us whether this part is still under development?

dennisvang commented 1 week ago

Just for reference:

https://github.com/FAIRDataTeam/FAIRDataPoint/blob/d0ca93f0ab993450a53f47bd3fd57270180c24f6/.github/workflows/build.yml#L173

https://github.com/FAIRDataTeam/FAIRDataPoint/blob/d0ca93f0ab993450a53f47bd3fd57270180c24f6/Dockerfile.build#L42

dennisvang commented 1 week ago

In addition, the fdp docker log contains many messages about Spring Data MongoDB. Should it not have been removed when moving to Postgres? The output from docker logs fdp is included.

It turns out the org.fairdatateam.rdf.migration.database.RdfMigrationRepository from the error message, which is part of the FAIRDataTeam/spring-rdf-migration dependency, is still configured to use MongoDB (source):

public interface RdfMigrationRepository extends MongoRepository<RdfMigration, String> {

}
mirzov commented 1 week ago

Hi Dennis,

Nice that there is someone working on the codebase now! I later found that just deleting the file with RdfMigrationRepository class did not prevent the project from building, and the server could start then. However, after packaging and "dockerizing" it, attempts to use the resulting container together with matching Postgres and latest published FDP client were not successful (login with the default credentials was rejected, front page was showing 404 message from a REST call).

dennisvang commented 1 week ago

[...] just deleting the file with RdfMigrationRepository class did not prevent the project from building, and the server could start then.

By removing the config file, the server will indeed start. However, this causes the rdf migration steps to be skipped, so the triple store will not be populated with initial data.

However, after packaging and "dockerizing" it, attempts to use the resulting container together with matching Postgres and latest published FDP client were not successful (login with the default credentials was rejected [...]

Setting up the postgres db, FDP, and FDP client, with the proper ports, I can get the login to work (user data are stored in postgres).

[...] front page was showing 404 message from a REST call).

I suppose the status 404 is expected, because there is no data in the triple store, since the migrations have not been executed. As a result, we see messages like

ERROR org.fairdatapoint.api.controller.exception.ExceptionControllerAdvice - No metadata found for the uri 'http://localhost:8080'

Apparently, the development profile uses a different migration runner, viz. RdfDevelopmentMigrationRunner, which does work with postgres, whereas the production profile relies on the external RdfProductionMigrationRunner from the spring-rdf-migration dependency, which has not been adapted to postgres yet.

The first priority would then be to adapt the RdfProductionMigrationRunner to support postgres. If I understand correctly, it only uses the db to keep track of the RDF migrations that have been executed.

In addition, if we look at the production rdf migrations for the develop branch, it looks like those have not been fully adapted to postgres yet. Compare, e.g. with the production migrations for v1.17.2.

It would be great if @MarekSuchanek could shed some light on this.

dennisvang commented 5 days ago

@mirzov Although I'm working on the current issue, the develop branch (and corresponding Docker image) remains a work-in-progress, so it is likely to contain additional loose ends.

For this reason it is probably safer to stick to one of the supported releases for now.