openrewrite / rewrite-maven-plugin

OpenRewrite's Maven plugin.
https://openrewrite.github.io/rewrite-maven-plugin/plugin-info.html
Apache License 2.0
141 stars 73 forks source link

Mac M1 dies with JNI linking error #302

Closed mpatnode closed 2 years ago

mpatnode commented 2 years ago

It's possible this will be fixed with https://github.com/openrewrite/rewrite-maven-plugin/pull/293. Works fine on Intel Linux, though I think I rolled back to 4.17 for another known issue there. 4.17 had the same problem on Mac

[ERROR] Failed to execute goal org.openrewrite.maven:rewrite-maven-plugin:4.19.0:run (default-cli) on project websocket-service: Execution default-cli of goal org.openrewrite.maven:rewrite-maven-plugin:4.19.0:run failed: An API incompatibility was encountered while executing org.openrewrite.maven:rewrite-maven-plugin:4.19.0:run: java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/_d/xsp2j6s900bfk9lb7c2s9y8m0000gn/T/librocksdbjni7753247910459942908.jnilib [ERROR] ----------------------------------------------------- [ERROR] realm = plugin>org.openrewrite.maven:rewrite-maven-plugin:4.19.0 [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy [ERROR] urls[0] = file:/Users/mike/.m2/repository/org/openrewrite/maven/rewrite-maven-plugin/4.19.0/rewrite-maven-plugin-4.19.0.jar [ERROR] urls[1] = file:/Users/mike/.m2/repository/org/openrewrite/recipe/rewrite-testing-frameworks/1.17.0/rewrite-testing-frameworks-1.17.0.jar [ERROR] urls[2] = file:/Users/mike/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.5.21/kotlin-stdlib-jdk8-1.5.21.jar [ERROR] urls[3] = file:/Users/mike/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.5.21/kotlin-stdlib-1.5.21.jar [ERROR] urls[4] = file:/Users/mike/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.21/kotlin-stdlib-common-1.5.21.jar [ERROR] urls[5] = file:/Users/mike/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.5.21/kotlin-stdlib-jdk7-1.5.21.jar [ERROR] urls[6] = file:/Users/mike/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.13.1/jackson-core-2.13.1.jar [ERROR] urls[7] = file:/Users/mike/.m2/repository/org/openrewrite/rewrite-java/7.18.1/rewrite-java-7.18.1.jar [ERROR] urls[8] = file:/Users/mike/.m2/repository/org/openrewrite/rewrite-core/7.18.1/rewrite-core-7.18.1.jar [ERROR] urls[9] = file:/Users/mike/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.13.1/jackson-databind-2.13.1.jar [ERROR] urls[10] = file:/Users/mike/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.13.1/jackson-module-parameter-names-2.13.1.jar [ERROR] urls[11] = file:/Users/mike/.m2/repository/com/fasterxml/jackson/module/jackson-module-kotlin/2.13.1/jackson-module-kotlin-2.13.1.jar [ERROR] urls[12] = file:/Users/mike/.m2/repository/org/jetbrains/kotlin/kotlin-reflect/1.5.30/kotlin-reflect-1.5.30.jar [ERROR] urls[13] = file:/Users/mike/.m2/repository/org/graalvm/sdk/graal-sdk/22.0.0.2/graal-sdk-22.0.0.2.jar [ERROR] urls[14] = file:/Users/mike/.m2/repository/org/apache/commons/commons-compress/1.21/commons-compress-1.21.jar [ERROR] urls[15] = file:/Users/mike/.m2/repository/org/jetbrains/annotations/23.0.0/annotations-23.0.0.jar [ERROR] urls[16] = file:/Users/mike/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.13.1/jackson-annotations-2.13.1.jar [ERROR] urls[17] = file:/Users/mike/.m2/repository/org/antlr/antlr4/4.9.3/antlr4-4.9.3.jar [ERROR] urls[18] = file:/Users/mike/.m2/repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar [ERROR] urls[19] = file:/Users/mike/.m2/repository/org/antlr/ST4/4.3.1/ST4-4.3.1.jar [ERROR] urls[20] = file:/Users/mike/.m2/repository/org/abego/treelayout/org.abego.treelayout.core/1.0.3/org.abego.treelayout.core-1.0.3.jar [ERROR] urls[21] = file:/Users/mike/.m2/repository/org/glassfish/javax.json/1.0.4/javax.json-1.0.4.jar [ERROR] urls[22] = file:/Users/mike/.m2/repository/com/ibm/icu/icu4j/69.1/icu4j-69.1.jar [ERROR] urls[23] = file:/Users/mike/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar [ERROR] urls[24] = file:/Users/mike/.m2/repository/io/github/classgraph/classgraph/4.8.138/classgraph-4.8.138.jar [ERROR] urls[25] = file:/Users/mike/.m2/repository/org/xerial/snappy/snappy-java/1.1.8.4/snappy-java-1.1.8.4.jar [ERROR] urls[26] = file:/Users/mike/.m2/repository/org/ow2/asm/asm/9.2/asm-9.2.jar [ERROR] urls[27] = file:/Users/mike/.m2/repository/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar [ERROR] urls[28] = file:/Users/mike/.m2/repository/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar [ERROR] urls[29] = file:/Users/mike/.m2/repository/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar [ERROR] urls[30] = file:/Users/mike/.m2/repository/org/openrewrite/rewrite-java-8/7.18.1/rewrite-java-8-7.18.1.jar [ERROR] urls[31] = file:/Users/mike/.m2/repository/org/openrewrite/rewrite-java-11/7.18.1/rewrite-java-11-7.18.1.jar [ERROR] urls[32] = file:/Users/mike/.m2/repository/org/openrewrite/rewrite-xml/7.18.1/rewrite-xml-7.18.1.jar [ERROR] urls[33] = file:/Users/mike/.m2/repository/org/openrewrite/rewrite-maven/7.18.1/rewrite-maven-7.18.1.jar [ERROR] urls[34] = file:/Users/mike/.m2/repository/com/github/ben-manes/caffeine/caffeine/2.9.3/caffeine-2.9.3.jar [ERROR] urls[35] = file:/Users/mike/.m2/repository/org/checkerframework/checker-qual/3.19.0/checker-qual-3.19.0.jar [ERROR] urls[36] = file:/Users/mike/.m2/repository/io/github/resilience4j/resilience4j-retry/1.7.0/resilience4j-retry-1.7.0.jar [ERROR] urls[37] = file:/Users/mike/.m2/repository/io/vavr/vavr/0.10.2/vavr-0.10.2.jar [ERROR] urls[38] = file:/Users/mike/.m2/repository/io/vavr/vavr-match/0.10.2/vavr-match-0.10.2.jar [ERROR] urls[39] = file:/Users/mike/.m2/repository/io/github/resilience4j/resilience4j-core/1.7.0/resilience4j-core-1.7.0.jar [ERROR] urls[40] = file:/Users/mike/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.13.1/jackson-dataformat-xml-2.13.1.jar [ERROR] urls[41] = file:/Users/mike/.m2/repository/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar [ERROR] urls[42] = file:/Users/mike/.m2/repository/com/fasterxml/woodstox/woodstox-core/6.2.7/woodstox-core-6.2.7.jar [ERROR] urls[43] = file:/Users/mike/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.13.1/jackson-dataformat-smile-2.13.1.jar [ERROR] urls[44] = file:/Users/mike/.m2/repository/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.13.1/jackson-module-jaxb-annotations-2.13.1.jar [ERROR] urls[45] = file:/Users/mike/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar [ERROR] urls[46] = file:/Users/mike/.m2/repository/jakarta/activation/jakarta.activation-api/1.2.1/jakarta.activation-api-1.2.1.jar [ERROR] urls[47] = file:/Users/mike/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.13.1/jackson-datatype-jdk8-2.13.1.jar [ERROR] urls[48] = file:/Users/mike/.m2/repository/guru/nidi/graphviz-java/0.18.1/graphviz-java-0.18.1.jar [ERROR] urls[49] = file:/Users/mike/.m2/repository/org/webjars/npm/viz.js-graphviz-java/2.1.3/viz.js-graphviz-java-2.1.3.jar [ERROR] urls[50] = file:/Users/mike/.m2/repository/guru/nidi/com/kitfox/svgSalamander/1.1.3/svgSalamander-1.1.3.jar [ERROR] urls[51] = file:/Users/mike/.m2/repository/net/arnx/nashorn-promise/0.1.1/nashorn-promise-0.1.1.jar [ERROR] urls[52] = file:/Users/mike/.m2/repository/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar [ERROR] urls[53] = file:/Users/mike/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar [ERROR] urls[54] = file:/Users/mike/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.30/jcl-over-slf4j-1.7.30.jar [ERROR] urls[55] = file:/Users/mike/.m2/repository/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar [ERROR] urls[56] = file:/Users/mike/.m2/repository/guru/nidi/com/eclipsesource/j2v8/j2v8_macosx_x86_64/4.6.0/j2v8_macosx_x86_64-4.6.0.jar [ERROR] urls[57] = file:/Users/mike/.m2/repository/com/squareup/okhttp3/okhttp/4.10.0-RC1/okhttp-4.10.0-RC1.jar [ERROR] urls[58] = file:/Users/mike/.m2/repository/com/squareup/okio/okio/2.9.0/okio-2.9.0.jar [ERROR] urls[59] = file:/Users/mike/.m2/repository/org/apache/commons/commons-text/1.9/commons-text-1.9.jar [ERROR] urls[60] = file:/Users/mike/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar [ERROR] urls[61] = file:/Users/mike/.m2/repository/org/openrewrite/rewrite-hcl/7.18.1/rewrite-hcl-7.18.1.jar [ERROR] urls[62] = file:/Users/mike/.m2/repository/org/openrewrite/rewrite-json/7.18.1/rewrite-json-7.18.1.jar [ERROR] urls[63] = file:/Users/mike/.m2/repository/org/openrewrite/rewrite-properties/7.18.1/rewrite-properties-7.18.1.jar [ERROR] urls[64] = file:/Users/mike/.m2/repository/org/openrewrite/rewrite-yaml/7.18.1/rewrite-yaml-7.18.1.jar [ERROR] urls[65] = file:/Users/mike/.m2/repository/org/yaml/snakeyaml/1.30/snakeyaml-1.30.jar [ERROR] urls[66] = file:/Users/mike/.m2/repository/com/puppycrawl/tools/checkstyle/9.3/checkstyle-9.3.jar [ERROR] urls[67] = file:/Users/mike/.m2/repository/info/picocli/picocli/4.6.2/picocli-4.6.2.jar [ERROR] urls[68] = file:/Users/mike/.m2/repository/org/antlr/antlr4-runtime/4.9.3/antlr4-runtime-4.9.3.jar [ERROR] urls[69] = file:/Users/mike/.m2/repository/commons-beanutils/commons-beanutils/1.9.4/commons-beanutils-1.9.4.jar [ERROR] urls[70] = file:/Users/mike/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar [ERROR] urls[71] = file:/Users/mike/.m2/repository/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar [ERROR] urls[72] = file:/Users/mike/.m2/repository/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar [ERROR] urls[73] = file:/Users/mike/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar [ERROR] urls[74] = file:/Users/mike/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar [ERROR] urls[75] = file:/Users/mike/.m2/repository/com/google/errorprone/error_prone_annotations/2.7.1/error_prone_annotations-2.7.1.jar [ERROR] urls[76] = file:/Users/mike/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar [ERROR] urls[77] = file:/Users/mike/.m2/repository/org/reflections/reflections/0.10.2/reflections-0.10.2.jar [ERROR] urls[78] = file:/Users/mike/.m2/repository/org/javassist/javassist/3.28.0-GA/javassist-3.28.0-GA.jar [ERROR] urls[79] = file:/Users/mike/.m2/repository/net/sf/saxon/Saxon-HE/10.6/Saxon-HE-10.6.jar [ERROR] urls[80] = file:/Users/mike/.m2/repository/io/micrometer/prometheus/prometheus-rsocket-client/1.3.0/prometheus-rsocket-client-1.3.0.jar [ERROR] urls[81] = file:/Users/mike/.m2/repository/io/micrometer/micrometer-registry-prometheus/1.6.1/micrometer-registry-prometheus-1.6.1.jar [ERROR] urls[82] = file:/Users/mike/.m2/repository/io/prometheus/simpleclient_common/0.9.0/simpleclient_common-0.9.0.jar [ERROR] urls[83] = file:/Users/mike/.m2/repository/io/prometheus/simpleclient/0.9.0/simpleclient-0.9.0.jar [ERROR] urls[84] = file:/Users/mike/.m2/repository/io/micrometer/micrometer-core/1.8.2/micrometer-core-1.8.2.jar [ERROR] urls[85] = file:/Users/mike/.m2/repository/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar [ERROR] urls[86] = file:/Users/mike/.m2/repository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar [ERROR] urls[87] = file:/Users/mike/.m2/repository/io/rsocket/rsocket-transport-netty/1.1.1/rsocket-transport-netty-1.1.1.jar [ERROR] urls[88] = file:/Users/mike/.m2/repository/io/projectreactor/netty/reactor-netty-core/1.0.7/reactor-netty-core-1.0.7.jar [ERROR] urls[89] = file:/Users/mike/.m2/repository/io/netty/netty-handler/4.1.63.Final/netty-handler-4.1.63.Final.jar [ERROR] urls[90] = file:/Users/mike/.m2/repository/io/netty/netty-resolver/4.1.63.Final/netty-resolver-4.1.63.Final.jar [ERROR] urls[91] = file:/Users/mike/.m2/repository/io/netty/netty-transport/4.1.63.Final/netty-transport-4.1.63.Final.jar [ERROR] urls[92] = file:/Users/mike/.m2/repository/io/netty/netty-codec/4.1.63.Final/netty-codec-4.1.63.Final.jar [ERROR] urls[93] = file:/Users/mike/.m2/repository/io/netty/netty-handler-proxy/4.1.63.Final/netty-handler-proxy-4.1.63.Final.jar [ERROR] urls[94] = file:/Users/mike/.m2/repository/io/netty/netty-codec-socks/4.1.63.Final/netty-codec-socks-4.1.63.Final.jar [ERROR] urls[95] = file:/Users/mike/.m2/repository/io/netty/netty-resolver-dns/4.1.63.Final/netty-resolver-dns-4.1.63.Final.jar [ERROR] urls[96] = file:/Users/mike/.m2/repository/io/netty/netty-codec-dns/4.1.63.Final/netty-codec-dns-4.1.63.Final.jar [ERROR] urls[97] = file:/Users/mike/.m2/repository/io/netty/netty-resolver-dns-native-macos/4.1.63.Final/netty-resolver-dns-native-macos-4.1.63.Final-osx-x86_64.jar [ERROR] urls[98] = file:/Users/mike/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.63.Final/netty-transport-native-unix-common-4.1.63.Final.jar [ERROR] urls[99] = file:/Users/mike/.m2/repository/io/netty/netty-transport-native-epoll/4.1.63.Final/netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar [ERROR] urls[100] = file:/Users/mike/.m2/repository/io/projectreactor/netty/reactor-netty-http/1.0.7/reactor-netty-http-1.0.7.jar [ERROR] urls[101] = file:/Users/mike/.m2/repository/io/netty/netty-codec-http/4.1.63.Final/netty-codec-http-4.1.63.Final.jar [ERROR] urls[102] = file:/Users/mike/.m2/repository/io/netty/netty-codec-http2/4.1.63.Final/netty-codec-http2-4.1.63.Final.jar [ERROR] urls[103] = file:/Users/mike/.m2/repository/io/rsocket/rsocket-core/1.1.1/rsocket-core-1.1.1.jar [ERROR] urls[104] = file:/Users/mike/.m2/repository/io/netty/netty-buffer/4.1.64.Final/netty-buffer-4.1.64.Final.jar [ERROR] urls[105] = file:/Users/mike/.m2/repository/io/netty/netty-common/4.1.64.Final/netty-common-4.1.64.Final.jar [ERROR] urls[106] = file:/Users/mike/.m2/repository/io/projectreactor/reactor-core/3.4.6/reactor-core-3.4.6.jar [ERROR] urls[107] = file:/Users/mike/.m2/repository/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar [ERROR] urls[108] = file:/Users/mike/.m2/repository/org/rocksdb/rocksdbjni/6.27.3/rocksdbjni-6.27.3.jar [ERROR] urls[109] = file:/Users/mike/.m2/repository/org/eclipse/aether/aether-connector-basic/1.1.0/aether-connector-basic-1.1.0.jar [ERROR] urls[110] = file:/Users/mike/.m2/repository/org/eclipse/aether/aether-util/1.1.0/aether-util-1.1.0.jar [ERROR] urls[111] = file:/Users/mike/.m2/repository/org/codehaus/plexus/plexus-interactivity-api/1.1/plexus-interactivity-api-1.1.jar [ERROR] urls[112] = file:/Users/mike/.m2/repository/org/codehaus/plexus/plexus-utils/3.3.0/plexus-utils-3.3.0.jar [ERROR] urls[113] = file:/Users/mike/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar [ERROR] urls[114] = file:/Users/mike/.m2/repository/org/apache/maven/shared/maven-filtering/3.2.0/maven-filtering-3.2.0.jar [ERROR] urls[115] = file:/Users/mike/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar [ERROR] urls[116] = file:/Users/mike/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar [ERROR] urls[117] = file:/Users/mike/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar [ERROR] urls[118] = file:/Users/mike/.m2/repository/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar [ERROR] urls[119] = file:/Users/mike/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar [ERROR] urls[120] = file:/Users/mike/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M2a/org.eclipse.sisu.inject-0.0.0.M2a.jar [ERROR] urls[121] = file:/Users/mike/.m2/repository/asm/asm/3.3.1/asm-3.3.1.jar [ERROR] urls[122] = file:/Users/mike/.m2/repository/org/codehaus/plexus/plexus-component-annotations/2.0.0/plexus-component-annotations-2.0.0.jar [ERROR] urls[123] = file:/Users/mike/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.3.3/maven-shared-utils-3.3.3.jar [ERROR] urls[124] = file:/Users/mike/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.26/plexus-interpolation-1.26.jar [ERROR] urls[125] = file:/Users/mike/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar [ERROR] urls[126] = file:/Users/mike/.m2/repository/commons-io/commons-io/2.6/commons-io-2.6.jar [ERROR] Number of foreign imports: 1 [ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]] [ERROR] [ERROR] ----------------------------------------------------- [ERROR] [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

mpatnode commented 2 years ago

This might be helpful: % java --version openjdk 17.0.2 2022-01-18 LTS OpenJDK Runtime Environment Corretto-17.0.2.8.1 (build 17.0.2+8-LTS) OpenJDK 64-Bit Server VM Corretto-17.0.2.8.1 (build 17.0.2+8-LTS, mixed mode, sharing)

traceyyoshima commented 2 years ago

Hi @mpatnode, thanks for reporting the issue, we'll take a look!

tkvangorder commented 2 years ago

@mpatnode An update on this, it looks like we are waiting for the rocksdb team to add support for M1. It looks like the next release of rocksdb-java (6.29.0) will include arm-based architecture:

See: https://github.com/facebook/rocksdb/issues/7720#issuecomment-1040091300

As a workaround you can disable the cache in the rewrite plugin's configuration:

            <plugin>
                <groupId>org.openrewrite.maven</groupId>
                <artifactId>rewrite-maven-plugin</artifactId>
                <version>4.19.0</version>
                <configuration>
                    <activeRecipes>
                        <recipe>....</recipe>
                    </activeRecipes>
                    <pomCacheEnabled>false</pomCacheEnabled>
                </configuration>
            </plugin>

This will skip the use of the rocksdb persistent cache and will just use an in-memory cache.

mpatnode commented 2 years ago

Sweet! That will help me.

tkvangorder commented 2 years ago

Just an update. It appears this issue was fixed in the rocksdb code base, we are now just waiting on a new release of org.rocksdb:rocksdbjni:6.29.x

I will continue to check here (https://repo1.maven.org/maven2/org/rocksdb/rocksdbjni/) and plan to do a release shortly after their release.

tkvangorder commented 2 years ago

This should now be working on 4.22.0-SNAPSHOT as there is a new release of the rocksdbjni library that includes the M1 native library.