Skip to content

Windows CI build fails after environment variables being reduced at build time #483

@jerboaa

Description

@jerboaa

Description

Quarkus IT tests seem to fail on Windows after oracle#6095. For example the first native test, Resteasy Jackson, fails with:

 ========================================================================================================================
GraalVM Native Image: Generating 'quarkus-integration-test-resteasy-jackson-999-SNAPSHOT-runner' (executable)...
========================================================================================================================

[1/8] Initializing...                                                                                    (0.0s @ 0.22GB)
------------------------------------------------------------------------------------------------------------------------
                         0.7s (6.8% of total time) in 8 GCs | Peak RSS: 0.57GB | CPU load: 1.88
------------------------------------------------------------------------------------------------------------------------
Produced artifacts:
 D:\a\mandrel\mandrel\quarkus\integration-tests\resteasy-jackson\target\quarkus-integration-test-resteasy-jackson-999-SNAPSHOT-native-image-source-jar\svm_err_b_20230311T033426.745_pid1380.md (build_info)
========================================================================================================================
Failed generating 'quarkus-integration-test-resteasy-jackson-999-SNAPSHOT-runner' after 8.7s.

The build process encountered an unexpected error:

java.lang.NullPointerException: Cannot invoke "String.split(String)" because the return value of "java.lang.System.getenv(String)" is null
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.c.codegen.CCompilerInvoker.lookupSearchPath(CCompilerInvoker.java:515)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.c.codegen.CCompilerInvoker.getCCompilerPath(CCompilerInvoker.java:528)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.c.codegen.CCompilerInvoker.getCCompilerInfo(CCompilerInvoker.java:372)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.c.codegen.CCompilerInvoker.<init>(CCompilerInvoker.java:71)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker.<init>(CCompilerInvoker.java:111)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.c.codegen.CCompilerInvoker.create(CCompilerInvoker.java:85)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:920)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:576)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:536)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:408)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:612)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:134)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:94)

I.e. it's not finding the CC compiler. It looks like our CI scripts would need updates here to explicitly pass needed compiler flags with -E option to native image. Here perhaps?

https://github.com/graalvm/mandrel/blob/default/.github/workflows/base-windows.yml#L490..L508

My understanding of Windows builds are fairly limited so it would have to be somebody other than me looking into this. Maybe this even needs a Quarkus change? I don't know.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions