Closed vladimirfx closed 2 months ago
/cc @Karm (mandrel), @andrejpetras (liquibase), @galderz (mandrel), @geoand (liquibase), @gsmet (liquibase), @zakkak (mandrel)
@gcw-it would you be interested in having a look? looks like we need to add more reflection but it would be nice to understand if it’s all that’s needed or if we missed something else?
@gsmet I'll have a look.
Since there seems to be no plan by the liquibase team, to support GraalVM directly for the foreseeable future, there is no other way, than to keep supporting native images containing liquibase downstream for the time being.
There is a json file in a PR in the graalvm-support branch that lists the classes that should be registered for reflection.
I'll compare it to what we already have, to determine, what we possibly need to register beyond that.
@gcw-it I had a quick look as it's a bit time sensitive and I would like it to be fixed for 3.14.2 (and I need the fix merged by tomorrow evening).
My current line of thinking is that it's related to https://github.com/quarkusio/quarkus/pull/42308/files and that before this patch, we were registering all the services for constructors AND methods and now we only do it for constructors (because that what the service provider does).
So I think we need to do something similar to what we do with Precondition
but I think only registering methods should be enough.
Do you think you can get a fix by tomorrow? If not, I'll push a quick fix. I perfectly understand if not, I just don't want to step on your toes.
@gsmet The culprit is the autoincrement
attribute of the BigIntType
. The liquibase data types are all registered via the service providers, but only for the constructors. Additionally registering the methods for reflection solves this issue.
I already have locally a fixed version, I'm just running a couple of tests, to verify all is working properly. You'll have a PR today.
Oh, that's awesome, thanks! Let's make sure we add the autoIncrement
thing to the IT!
Already done.
I'm evaluating, if similar tests can be included for the remaining data types.
@vladimirfx thanks for the report, this will get fixed in 3.14.2 that we will release tomorrow.
Describe the bug
Liquibase crashed at runtime after the upgrade from 3.13.3 to 3.14.1.
Expected behavior
Libquibase changes should applied normally.
Actual behavior
Changeset fragment:
Stacktrace:
How to Reproduce?
No response
Output of
uname -a
orver
K8s 1.30.1
Output of
java -version
21.0.4+7-LTS
Mandrel or GraalVM version (if different from Java)
Mandrel-23.1.4.0-Final
Quarkus version or git rev
3.14.1
Build tool (ie. output of
mvnw --version
orgradlew --version
)Gradle 8.10
Additional information
Workaround: