Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flyway Sql server doesn't work in native after bump to 10.10 #39596

Closed
michalvavrik opened this issue Mar 20, 2024 · 3 comments · Fixed by #39597
Closed

Flyway Sql server doesn't work in native after bump to 10.10 #39596

michalvavrik opened this issue Mar 20, 2024 · 3 comments · Fixed by #39597
Labels
Milestone

Comments

@michalvavrik
Copy link
Contributor

Describe the bug

I have app with SQL server that doesn't work in native after #39509.

Expected behavior

Works.

Actual behavior

Exception is thrown.

reflections:

[INFO] [io.quarkus.flyway.deployment.FlywayProcessor] configuration extension added org.flywaydb.database.sqlserver.SQLServerConfigurationExtension
[INFO] [io.quarkus.flyway.deployment.FlywayProcessor] configuration extension added org.flywaydb.core.internal.command.clean.CleanModeConfigurationExtension
[INFO] [io.quarkus.flyway.deployment.FlywayProcessor] configuration extension added org.flywaydb.core.internal.proprietaryStubs.LicensingConfigurationExtensionStub
[INFO] [io.quarkus.flyway.deployment.FlywayProcessor] configuration extension added org.flywaydb.core.api.migration.baseline.BaselineMigrationConfigurationExtension
[INFO] [io.quarkus.flyway.deployment.FlywayProcessor] configuration extension added org.flywaydb.database.postgresql.PostgreSQLConfigurationExtension
[INFO] [io.quarkus.flyway.deployment.FlywayProcessor] configuration extension added org.flywaydb.database.oracle.OracleConfigurationExtension
16:25:02,602 INFO  [app] 16:24:59,698 Failed to start application (with profile [prod]): java.lang.RuntimeException: Failed to start quarkus
16:25:02,603 INFO  [app] 	at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
16:25:02,603 INFO  [app] 	at io.quarkus.runtime.Application.start(Application.java:101)
16:25:02,603 INFO  [app] 	at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:111)
16:25:02,603 INFO  [app] 	at io.quarkus.runtime.Quarkus.run(Quarkus.java:71)
16:25:02,604 INFO  [app] 	at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
16:25:02,604 INFO  [app] 	at io.quarkus.runtime.Quarkus.run(Quarkus.java:124)
16:25:02,604 INFO  [app] 	at io.quarkus.runner.GeneratedMain.main(Unknown Source)
16:25:02,604 INFO  [app] Caused by: jakarta.enterprise.inject.CreationException: Error creating synthetic bean [gDvb3qDiNBa1smOXl3eO3-4axqo]: org.flywaydb.core.api.FlywayException: No serializer found for class org.flywaydb.database.sqlserver.KerberosModel and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS). This appears to be a native image, in which case you may need to configure reflection for the class that is to be serialized (through reference chain: org.flywaydb.database.sqlserver.SQLServerConfigurationExtension["kerberos"])
16:25:02,605 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayContainer_gDvb3qDiNBa1smOXl3eO3-4axqo_Synthetic_Bean.doCreate(Unknown Source)
16:25:02,605 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayContainer_gDvb3qDiNBa1smOXl3eO3-4axqo_Synthetic_Bean.create(Unknown Source)
16:25:02,605 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayContainer_gDvb3qDiNBa1smOXl3eO3-4axqo_Synthetic_Bean.create(Unknown Source)
16:25:02,605 INFO  [app] 	at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:119)
16:25:02,606 INFO  [app] 	at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:38)
16:25:02,606 INFO  [app] 	at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
16:25:02,606 INFO  [app] 	at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:32)
16:25:02,606 INFO  [app] 	at io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69)
16:25:02,606 INFO  [app] 	at io.quarkus.arc.impl.ComputingCacheContextInstances.computeIfAbsent(ComputingCacheContextInstances.java:19)
16:25:02,607 INFO  [app] 	at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:35)
16:25:02,607 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayContainer_gDvb3qDiNBa1smOXl3eO3-4axqo_Synthetic_Bean.get(Unknown Source)
16:25:02,607 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayContainer_gDvb3qDiNBa1smOXl3eO3-4axqo_Synthetic_Bean.get(Unknown Source)
16:25:02,607 INFO  [app] 	at io.quarkus.arc.impl.ArcContainerImpl.beanInstanceHandle(ArcContainerImpl.java:559)
16:25:02,608 INFO  [app] 	at io.quarkus.arc.impl.ArcContainerImpl.beanInstanceHandle(ArcContainerImpl.java:539)
16:25:02,608 INFO  [app] 	at io.quarkus.arc.impl.ArcContainerImpl.beanInstanceHandle(ArcContainerImpl.java:572)
16:25:02,608 INFO  [app] 	at io.quarkus.arc.impl.ArcContainerImpl.instanceHandle(ArcContainerImpl.java:534)
16:25:02,608 INFO  [app] 	at io.quarkus.arc.impl.ArcContainerImpl.instance(ArcContainerImpl.java:294)
16:25:02,608 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayRecorder.doStartActions(FlywayRecorder.java:109)
16:25:02,609 INFO  [app] 	at io.quarkus.deployment.steps.FlywayProcessor$startActions2099152139.deploy_0(Unknown Source)
16:25:02,609 INFO  [app] 	at io.quarkus.deployment.steps.FlywayProcessor$startActions2099152139.deploy(Unknown Source)
16:25:02,609 INFO  [app] 	... 7 more
16:25:02,609 INFO  [app] Caused by: org.flywaydb.core.api.FlywayException: No serializer found for class org.flywaydb.database.sqlserver.KerberosModel and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS). This appears to be a native image, in which case you may need to configure reflection for the class that is to be serialized (through reference chain: org.flywaydb.database.sqlserver.SQLServerConfigurationExtension["kerberos"])
16:25:02,609 INFO  [app] 	at org.flywaydb.core.extensibility.ConfigurationExtension.copy(ConfigurationExtension.java:41)
16:25:02,610 INFO  [app] 	at java.base@21.0.2/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
16:25:02,610 INFO  [app] 	at java.base@21.0.2/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
16:25:02,610 INFO  [app] 	at java.base@21.0.2/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
16:25:02,610 INFO  [app] 	at java.base@21.0.2/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
16:25:02,611 INFO  [app] 	at java.base@21.0.2/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
16:25:02,611 INFO  [app] 	at java.base@21.0.2/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
16:25:02,611 INFO  [app] 	at java.base@21.0.2/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
16:25:02,611 INFO  [app] 	at java.base@21.0.2/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
16:25:02,611 INFO  [app] 	at java.base@21.0.2/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
16:25:02,612 INFO  [app] 	at org.flywaydb.core.internal.plugin.PluginRegister.getCopy(PluginRegister.java:96)
16:25:02,612 INFO  [app] 	at org.flywaydb.core.api.configuration.ClassicConfiguration.configure(ClassicConfiguration.java:1335)
16:25:02,612 INFO  [app] 	at org.flywaydb.core.api.configuration.ClassicConfiguration.<init>(ClassicConfiguration.java:257)
16:25:02,612 INFO  [app] 	at org.flywaydb.core.Flyway.<init>(Flyway.java:112)
16:25:02,613 INFO  [app] 	at org.flywaydb.core.api.configuration.FluentConfiguration.load(FluentConfiguration.java:61)
16:25:02,613 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayCreator.createFlyway(FlywayCreator.java:159)
16:25:02,613 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayContainerProducer.createFlyway(FlywayContainerProducer.java:53)
16:25:02,613 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayRecorder$1.apply(FlywayRecorder.java:82)
16:25:02,613 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayRecorder$1.apply(FlywayRecorder.java:62)
16:25:02,614 INFO  [app] 	at io.quarkus.flyway.runtime.FlywayContainer_gDvb3qDiNBa1smOXl3eO3-4axqo_Synthetic_Bean.createSynthetic(Unknown Source)
16:25:02,614 INFO  [app] 	... 27 more
16:25:02,614 INFO  [app] Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.flywaydb.database.sqlserver.KerberosModel and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS). This appears to be a native image, in which case you may need to configure reflection for the class that is to be serialized (through reference chain: org.flywaydb.database.sqlserver.SQLServerConfigurationExtension["kerberos"])
16:25:02,614 INFO  [app] 	at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1330)
16:25:02,614 INFO  [app] 	at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:414)
16:25:02,614 INFO  [app] 	at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:49)
16:25:02,615 INFO  [app] 	at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:30)
16:25:02,615 INFO  [app] 	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:732)
16:25:02,615 INFO  [app] 	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:770)
16:25:02,615 INFO  [app] 	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:183)
16:25:02,615 INFO  [app] 	at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:502)
16:25:02,616 INFO  [app] 	at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:341)
16:25:02,616 INFO  [app] 	at com.fasterxml.jackson.databind.ObjectMapper._writeValueAndClose(ObjectMapper.java:4799)
16:25:02,616 INFO  [app] 	at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:4040)
16:25:02,616 INFO  [app] 	at org.flywaydb.core.extensibility.ConfigurationExtension.copy(ConfigurationExtension.java:38)
16:25:02,616 INFO  [app] 	... 46 more

How to Reproduce?

Do what CI does quarkus-qe/quarkus-test-suite#1718, just checkout branch, run native mvn clean verify -Dnative -Dit.test=MysqlHandlerIT -Dreruns=0 in the quarkus-test-suite/sql-db/vertx-sql dir

Output of uname -a or ver

Fedora 38

Output of java -version

17 & 21

Quarkus version or git rev

999-SNAPSHOT

Build tool (ie. output of mvnw --version or gradlew --version)

Apache Maven 3.9.3

Additional information

No response

@quarkus-bot
Copy link

quarkus-bot bot commented Mar 20, 2024

/cc @cristhiank (flyway), @gastaldi (flyway), @geoand (flyway), @gsmet (flyway), @zakkak (native-image)

@geoand
Copy link
Contributor

geoand commented Mar 21, 2024

Interesting, although it doesn't seem like a Quarkus specific issue...

@quarkus-bot quarkus-bot bot added this to the 3.10 - main milestone Mar 21, 2024
@geoand
Copy link
Contributor

geoand commented Mar 21, 2024

Ah sorry, I didn't realize this was a native specific problem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants