Open jabrena opened 1 year ago
For me it's working totally fine on apple silicon. But I am not using the profile from spring parent, but bring in my own configuration based on that. See below .. you may have to set som properties. The Spring documentation also states that you still need to have graalvm installed locally for maven. Though i could not verify this.
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<id>process-aot</id>
<goals><goal>process-aot</goal></goals>
</execution>
<execution>
<id>build-image</id>
<phase>install</phase>
<goals><goal>build-image</goal></goals>
<configuration>
<image>
<name>${docker.registry}/${project.artifactId}-native${archSuffix}:${project.version}</name>
<builder>dashaun/java-native-builder-multiarch:7.37.0</builder>
<env>
<BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
<BP_JVM_VERSION>${java.version}</BP_JVM_VERSION>
<BP_NATIVE_IMAGE_BUILD_ARGUMENTS>-J-Xmx6000m</BP_NATIVE_IMAGE_BUILD_ARGUMENTS>
</env>
<pullPolicy>IF_NOT_PRESENT</pullPolicy>
</image>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<version>${native-maven-plugin.version}</version>
<configuration>
<classesDirectory>${project.build.outputDirectory}</classesDirectory>
<metadataRepository>
<enabled>true</enabled>
</metadataRepository>
</configuration>
<executions>
<execution>
<id>add-reachability-metadata</id>
<goals>
<goal>add-reachability-metadata</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
I will try today with your configuration, many thanks for sharing
sure in gradle it's much cleaner and simpler .. i was used to maven until a couple of months ago i tried out gradle because of spring boot native
if you can afford some time, spring.io initializer can generate a gradle example build for you and than you just need the snippet below.
if it wasn't for the company I am working with .. this would be the right time to scrap maven now after 10+ years i am astonished because in the past gradle was often condemned to be the devil .. but in fact .. it is much much cleaner and concise
def archSuffix = (System.properties['os.arch'] == 'aarch64') ? "-arm64v8" : ""
tasks.named('bootBuildImage') {
builder = 'dashaun/java-native-builder-multiarch:7.37.0'
bootBuildImage.imageName = "${dockerRegistry}/${project.name}-native${archSuffix}:${project.version}"
environment = ['BP_NATIVE_IMAGE': 'true', 'BP_JVM_VERSION': '17', 'BP_NATIVE_IMAGE_BUILD_ARGUMENTS': '-J-Xmx6000m']
}
Hi @goafabric @dashaun,
I was testing the gradle solution with success (In local, OSX, and in Github actions), but it is necessary to review from the provided gradle example the part about the image name:
> Task :bootBuildImage
Building image 'docker.io/library/demo-native:0.0.1-SNAPSHOT'
...
Successfully built image 'docker.io/library/demo-native:0.0.1-SNAPSHOT'
This line is not working in the configuration:
bootBuildImage.imageName = "${dockerRegistry}/${project.name}-native${archSuffix}:${project.version}"
from:
def archSuffix = (System.properties['os.arch'] == 'aarch64') ? "-arm64v8" : ""
def dockerRegistry = 'docker.io'
tasks.named('bootBuildImage') {
builder = 'dashaun/java-native-builder-multiarch:7.37.0'
bootBuildImage.imageName = "${dockerRegistry}/${project.name}-native${archSuffix}:${project.version}"
environment = ['BP_NATIVE_IMAGE': 'true', 'BP_JVM_VERSION': '17', 'BP_NATIVE_IMAGE_BUILD_ARGUMENTS': '-J-Xmx6000m']
}
In relation to the Maven configuration, it is not working with the example provided:
What is missing in maven side?
Another question:
What is the purpose of the following configuration?
'BP_NATIVE_IMAGE_BUILD_ARGUMENTS': '-J-Xmx6000m'
Hi @goafabric, @dashaun,
Finally, I was able to compile in local (OSX) with maven, the configuration was quite easy, I was inspired in the example from Gradle:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<imageName>dashaun:buildpacks-native.0.0.1-SNAPSHOT</imageName>
<image>
<!--
<builder>dashaun/java-native-builder-arm64:7.37.0</builder>
-->
<builder>dashaun/java-native-builder-multiarch:7.37.0</builder>
<!--
<buildpacks>
<buildpack>gcr.io/paketo-buildpacks/bellsoft-liberica:9.10</buildpack>
<buildpack>gcr.io/paketo-buildpacks/java-native-image</buildpack>
</buildpacks>
-->
<env>
<BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
<BP_JVM_VERSION>17</BP_JVM_VERSION>
<BP_NATIVE_IMAGE_BUILD_ARGUMENTS>-J-Xmx6000m --static</BP_NATIVE_IMAGE_BUILD_ARGUMENTS>
<BP_BINARY_COMPRESSION_METHOD>upx</BP_BINARY_COMPRESSION_METHOD>
<pullPolicy>IF_NOT_PRESENT</pullPolicy>
</env>
</image>
</configuration>
</plugin>
</plugins>
</build>
What was missing from my previous compilation?
17
This way only run with Java 17.
In the other hand if you enable UPX compression:
upx
You will receive in local the following error:
[INFO] [creator] Finished generating '/layers/paketo-buildpacks_native-image-arm64/native-image/com.example.demo.DemoApplication' in 2m 2s.
[INFO] [creator] Executing upx to compress native image
[INFO] [creator] qemu: uncaught target signal 11 (Segmentation fault) - core dumped
[INFO] [creator] unable to invoke layer creator
[INFO] [creator] unable to contribute native-image layer
[INFO] [creator] error compressing
[INFO] [creator] signal: segmentation fault
[INFO] [creator] ERROR: failed to build: exit status 1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
Note: Installed upx
in local but it was not integrated with the builder:
brew install --build-from-source upx
Note2: Maybe the reason is this part in the logs:
[INFO] [creator] Paketo Buildpack for UPX 3.3.0
[INFO] [creator] https://github.com/paketo-buildpacks/upx
[INFO] [creator] Downloading from https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz
[INFO] [creator] Verifying checksum
I believe that it is necessary to include the support for OSX:
At release level, UPX offer the support: https://github.com/upx/upx/releases
But running in the pipeline, the process goes well:
Questions:
Results:
Generated Docker Container Images Summary
181MB dashaun buildpacks-native.0.0.1-SNAPSHOT
180MB dashaun buildpacks-native-static.0.0.1-SNAPSHOT
41MB dashaun buildpacks-native-static-upx.0.0.1-SNAPSHOT
Note: This image (41MB dashaun buildpacks-native-static-upx.0.0.1-SNAPSHOT ) was only buillt from Github actions.
I am waiting to use musl
support: ❤️
true
Juan Antonio
A comprehensive image with reflection, resource, dynamic proxies, serialization builds just fine, that's ok.
The problem I am still having is with Flyway. I had a workaround, it should not be a problem anymore, as it is in the shared metadata repos. The problem I have is a problem at start-up, not at build.
First, wow, and thank you everyone for the great feedback. I'm working as quickly as possible to make this builder work as expected!
As a summary:
--static
compilation on OSX at GraalVM levelupx
support on OSX at Buildpack levelmusl
support on OSX at Buildpack levelJava 19
support for native compilationFrom my side, happy to help
My issue with Flyway and M1 is in the end due to https://github.com/oracle/graal/issues/4510 - therefore I can say that @dashaun 's image works for my samples up to now
If you work your native images compiled in OSX M1
and you run inside of docker compose
, it generates the following error:
docker-compose -f docker-compose-native.yml logs -f usecase1a
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | . ____ _ __ _ _
usecase1-usecase1a-1 | /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
usecase1-usecase1a-1 | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
usecase1-usecase1a-1 | \\/ ___)| |_)| | | | | || (_| | ) ) ) )
usecase1-usecase1a-1 | ' |____| .__|_| |_|_| |_\__, | / / / /
usecase1-usecase1a-1 | =========|_|==============|___/=/_/_/_/
usecase1-usecase1a-1 | :: Spring Boot :: (v3.0.0-RC2)
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | 2022-11-22T22:34:54.418Z INFO 1 --- [ main] info.jab.ms.MainApplication : Starting AOT-processed MainApplication using Java 17.0.5 with PID 1 (/workspace/info.jab.ms.MainApplication started by cnb in /workspace)
usecase1-usecase1a-1 | 2022-11-22T22:34:54.419Z INFO 1 --- [ main] info.jab.ms.MainApplication : No active profile set, falling back to 1 default profile: "default"
usecase1-usecase1a-1 | 2022-11-22T22:34:54.431Z INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
usecase1-usecase1a-1 | 2022-11-22T22:34:54.432Z INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
usecase1-usecase1a-1 | 2022-11-22T22:34:54.432Z INFO 1 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.1]
usecase1-usecase1a-1 | 2022-11-22T22:34:54.437Z INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
usecase1-usecase1a-1 | 2022-11-22T22:34:54.437Z INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 18 ms
usecase1-usecase1a-1 | 2022-11-22T22:34:54.455Z INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
usecase1-usecase1a-1 | 2022-11-22T22:34:54.456Z INFO 1 --- [ main] info.jab.ms.MainApplication : Started MainApplication in 0.053 seconds (process running for 0.066)
usecase1-usecase1a-1 | 1 applicationAvailability
usecase1-usecase1a-1 | 2 applicationTaskExecutor
usecase1-usecase1a-1 | 3 basicErrorController
usecase1-usecase1a-1 | 4 beanNameHandlerMapping
usecase1-usecase1a-1 | 5 beanNameViewResolver
usecase1-usecase1a-1 | 6 characterEncodingFilter
usecase1-usecase1a-1 | 7 conventionErrorViewResolver
usecase1-usecase1a-1 | 8 defaultServletHandlerMapping
usecase1-usecase1a-1 | 9 defaultViewResolver
usecase1-usecase1a-1 | 10 dispatcherServlet
usecase1-usecase1a-1 | 11 dispatcherServletRegistration
usecase1-usecase1a-1 | 12 error
usecase1-usecase1a-1 | 13 errorAttributes
usecase1-usecase1a-1 | 14 errorPageCustomizer
usecase1-usecase1a-1 | 15 errorPageRegistrarBeanPostProcessor
usecase1-usecase1a-1 | 16 flashMapManager
usecase1-usecase1a-1 | 17 forceAutoProxyCreatorToUseClassProxying
usecase1-usecase1a-1 | 18 formContentFilter
usecase1-usecase1a-1 | 19 handlerExceptionResolver
usecase1-usecase1a-1 | 20 handlerFunctionAdapter
usecase1-usecase1a-1 | 21 httpRequestHandlerAdapter
usecase1-usecase1a-1 | 22 jacksonObjectMapper
usecase1-usecase1a-1 | 23 jacksonObjectMapperBuilder
usecase1-usecase1a-1 | 24 jsonComponentModule
usecase1-usecase1a-1 | 25 jsonMixinModule
usecase1-usecase1a-1 | 26 jsonMixinModuleEntries
usecase1-usecase1a-1 | 27 lifecycleProcessor
usecase1-usecase1a-1 | 28 localeCharsetMappingsCustomizer
usecase1-usecase1a-1 | 29 localeResolver
usecase1-usecase1a-1 | 30 mainApplication
usecase1-usecase1a-1 | 31 mappingJackson2HttpMessageConverter
usecase1-usecase1a-1 | 32 messageConverters
usecase1-usecase1a-1 | 33 multipartConfigElement
usecase1-usecase1a-1 | 34 multipartResolver
usecase1-usecase1a-1 | 35 mvcContentNegotiationManager
usecase1-usecase1a-1 | 36 mvcConversionService
usecase1-usecase1a-1 | 37 mvcHandlerMappingIntrospector
usecase1-usecase1a-1 | 38 mvcPathMatcher
usecase1-usecase1a-1 | 39 mvcPatternParser
usecase1-usecase1a-1 | 40 mvcResourceUrlProvider
usecase1-usecase1a-1 | 41 mvcUriComponentsContributor
usecase1-usecase1a-1 | 42 mvcUrlPathHelper
usecase1-usecase1a-1 | 43 mvcValidator
usecase1-usecase1a-1 | 44 mvcViewResolver
usecase1-usecase1a-1 | 45 myRestController
usecase1-usecase1a-1 | 46 myRestTemplate
usecase1-usecase1a-1 | 47 org.springframework.aop.config.internalAutoProxyCreator
usecase1-usecase1a-1 | 48 org.springframework.boot.autoconfigure.AutoConfigurationPackages
usecase1-usecase1a-1 | 49 org.springframework.boot.autoconfigure.aop.AopAutoConfiguration
usecase1-usecase1a-1 | 50 org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$ClassProxyingConfiguration
usecase1-usecase1a-1 | 51 org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration
usecase1-usecase1a-1 | 52 org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration
usecase1-usecase1a-1 | 53 org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration
usecase1-usecase1a-1 | 54 org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration
usecase1-usecase1a-1 | 55 org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration
usecase1-usecase1a-1 | 56 org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration
usecase1-usecase1a-1 | 57 org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration
usecase1-usecase1a-1 | 58 org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration
usecase1-usecase1a-1 | 59 org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration
usecase1-usecase1a-1 | 60 org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory
usecase1-usecase1a-1 | 61 org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration
usecase1-usecase1a-1 | 62 org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration
usecase1-usecase1a-1 | 63 org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonMixinConfiguration
usecase1-usecase1a-1 | 64 org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration
usecase1-usecase1a-1 | 65 org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration
usecase1-usecase1a-1 | 66 org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration
usecase1-usecase1a-1 | 67 org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration
usecase1-usecase1a-1 | 68 org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration
usecase1-usecase1a-1 | 69 org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration
usecase1-usecase1a-1 | 70 org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration
usecase1-usecase1a-1 | 71 org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration
usecase1-usecase1a-1 | 72 org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration
usecase1-usecase1a-1 | 73 org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration
usecase1-usecase1a-1 | 74 org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration
usecase1-usecase1a-1 | 75 org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration
usecase1-usecase1a-1 | 76 org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration
usecase1-usecase1a-1 | 77 org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration
usecase1-usecase1a-1 | 78 org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration
usecase1-usecase1a-1 | 79 org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration$EmbeddedTomcat
usecase1-usecase1a-1 | 80 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration
usecase1-usecase1a-1 | 81 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration
usecase1-usecase1a-1 | 82 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter
usecase1-usecase1a-1 | 83 org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration
usecase1-usecase1a-1 | 84 org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration
usecase1-usecase1a-1 | 85 org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration
usecase1-usecase1a-1 | 86 org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration
usecase1-usecase1a-1 | 87 org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration
usecase1-usecase1a-1 | 88 org.springframework.boot.context.internalConfigurationPropertiesBinder
usecase1-usecase1a-1 | 89 org.springframework.boot.context.internalConfigurationPropertiesBinderFactory
usecase1-usecase1a-1 | 90 org.springframework.boot.context.properties.BoundConfigurationProperties
usecase1-usecase1a-1 | 91 org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor
usecase1-usecase1a-1 | 92 org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.methodValidationExcludeFilter
usecase1-usecase1a-1 | 93 org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor
usecase1-usecase1a-1 | 94 org.springframework.context.event.internalEventListenerFactory
usecase1-usecase1a-1 | 95 org.springframework.context.event.internalEventListenerProcessor
usecase1-usecase1a-1 | 96 parameterNamesModule
usecase1-usecase1a-1 | 97 preserveErrorControllerTargetClassPostProcessor
usecase1-usecase1a-1 | 98 propertySourcesPlaceholderConfigurer
usecase1-usecase1a-1 | 99 requestContextFilter
usecase1-usecase1a-1 | 100 requestMappingHandlerAdapter
usecase1-usecase1a-1 | 101 requestMappingHandlerMapping
usecase1-usecase1a-1 | 102 resourceHandlerMapping
usecase1-usecase1a-1 | 103 restTemplateBuilder
usecase1-usecase1a-1 | 104 restTemplateBuilderConfigurer
usecase1-usecase1a-1 | 105 routerFunctionMapping
usecase1-usecase1a-1 | 106 scheduledBeanLazyInitializationExcludeFilter
usecase1-usecase1a-1 | 107 server-org.springframework.boot.autoconfigure.web.ServerProperties
usecase1-usecase1a-1 | 108 servletWebServerFactoryCustomizer
usecase1-usecase1a-1 | 109 simpleControllerHandlerAdapter
usecase1-usecase1a-1 | 110 spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties
usecase1-usecase1a-1 | 111 spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties
usecase1-usecase1a-1 | 112 spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties
usecase1-usecase1a-1 | 113 spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties
usecase1-usecase1a-1 | 114 spring.servlet.multipart-org.springframework.boot.autoconfigure.web.servlet.MultipartProperties
usecase1-usecase1a-1 | 115 spring.sql.init-org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties
usecase1-usecase1a-1 | 116 spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties
usecase1-usecase1a-1 | 117 spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties
usecase1-usecase1a-1 | 118 spring.web-org.springframework.boot.autoconfigure.web.WebProperties
usecase1-usecase1a-1 | 119 standardJacksonObjectMapperBuilderCustomizer
usecase1-usecase1a-1 | 120 stringHttpMessageConverter
usecase1-usecase1a-1 | 121 taskExecutorBuilder
usecase1-usecase1a-1 | 122 taskSchedulerBuilder
usecase1-usecase1a-1 | 123 themeResolver
usecase1-usecase1a-1 | 124 tomcatServletWebServerFactory
usecase1-usecase1a-1 | 125 tomcatServletWebServerFactoryCustomizer
usecase1-usecase1a-1 | 126 tomcatWebServerFactoryCustomizer
usecase1-usecase1a-1 | 127 viewControllerHandlerMapping
usecase1-usecase1a-1 | 128 viewNameTranslator
usecase1-usecase1a-1 | 129 viewResolver
usecase1-usecase1a-1 | 130 webConfig
usecase1-usecase1a-1 | 131 webServerFactoryCustomizerBeanPostProcessor
usecase1-usecase1a-1 | 132 websocketServletWebServerCustomizer
usecase1-usecase1a-1 | 133 welcomePageHandlerMapping
usecase1-usecase1a-1 | 2022-11-22T22:35:19.472Z INFO 1 --- [nio-8080-exec-4] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
usecase1-usecase1a-1 | 2022-11-22T22:35:19.472Z INFO 1 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
usecase1-usecase1a-1 | 2022-11-22T22:35:19.473Z INFO 1 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | [ [ SubstrateSegfaultHandler caught a segfault in thread 0x0000ffff58000b80 ] ]
usecase1-usecase1a-1 | siginfo: si_signo: 11, si_code: 1, si_addr: 0x0000000000000062
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Current timestamp: 1669156519478
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | General purpose register values:
usecase1-usecase1a-1 | R0 0x0000000000000031 is an unknown value
usecase1-usecase1a-1 | R1 0x0000000000000062 is an unknown value
usecase1-usecase1a-1 | R2 0x0000000000000000
usecase1-usecase1a-1 | R3 0x0000ffff28000d40 is an unknown value
usecase1-usecase1a-1 | R4 0x0000ffff28000d54 is an unknown value
usecase1-usecase1a-1 | R5 0x0000ffff767f9754 points into the stack for thread 0x0000ffff58000b80
usecase1-usecase1a-1 | R6 0x2e302e302e373231 is an unknown value
usecase1-usecase1a-1 | R7 0x686c61636f6c0931 is an unknown value
usecase1-usecase1a-1 | R8 0x6f6c09312e302e30 is an unknown value
usecase1-usecase1a-1 | R9 0x0a74736f686c6163 is an unknown value
usecase1-usecase1a-1 | R10 0x000000000000000e is an unknown value
usecase1-usecase1a-1 | R11 0x0000000000000000
usecase1-usecase1a-1 | R12 0x0101010101010101 is an unknown value
usecase1-usecase1a-1 | R13 0x0000000000000008 is an unknown value
usecase1-usecase1a-1 | R14 0x0000000000000001 is an unknown value
usecase1-usecase1a-1 | R15 0x0000000000000000
usecase1-usecase1a-1 | R16 0x0000ffff949d30d0 is an unknown value
usecase1-usecase1a-1 | R17 0x0000ffff90bba8e0 is an unknown value
usecase1-usecase1a-1 | R18 0x0000000000000000
usecase1-usecase1a-1 | R19 0x0000000000000014 is an unknown value
usecase1-usecase1a-1 | R20 0x0000000000000001 is an unknown value
usecase1-usecase1a-1 | R21 0x0000ffff767f9740 points into the stack for thread 0x0000ffff58000b80
usecase1-usecase1a-1 | R22 0x0000ffff767f9720 points into the stack for thread 0x0000ffff58000b80
usecase1-usecase1a-1 | R23 0x0000ffff767f9438 points into the stack for thread 0x0000ffff58000b80
usecase1-usecase1a-1 | R24 0x0000ffff767f9740 points into the stack for thread 0x0000ffff58000b80
usecase1-usecase1a-1 | R25 0x0000ffff28000b60 is an unknown value
usecase1-usecase1a-1 | R26 0x00000000000003e0 is an unknown value
usecase1-usecase1a-1 | R27 0x0000ffff767f9b20 points into the stack for thread 0x0000ffff58000b80
usecase1-usecase1a-1 | R28 0x0000ffff767fc828 points into the stack for thread 0x0000ffff58000b80
usecase1-usecase1a-1 | R29 0x0000ffff767f91a0 points into the stack for thread 0x0000ffff58000b80
usecase1-usecase1a-1 | R30 0x0000ffff949ba62c is an unknown value
usecase1-usecase1a-1 | SP 0x0000ffff767f91a0 points into the stack for thread 0x0000ffff58000b80
usecase1-usecase1a-1 | PC 0x0000ffff949ba648 is an unknown value
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Printing Instructions (ip=0x0000ffff949ba648):
usecase1-usecase1a-1 | 0x0000ffff949ba628: 0x36 0xfb 0xff 0x97 0xf8 0x03 0x15 0xaa 0xfc 0x03 0x00 0xaa 0x02 0x00 0x40 0xf9
usecase1-usecase1a-1 | 0x0000ffff949ba638: 0x02 0x00 0x00 0x14 0x18 0x07 0x00 0x91 0x00 0x03 0x40 0x39 0x01 0x1c 0x7f 0xd3
usecase1-usecase1a-1 | 0x0000ffff949ba648: 0x41 0x68 0x61 0x78 0x81 0xff 0x6f 0x37 0x1f 0x8c 0x00 0x71 0x04 0x18 0x40 0x7a
usecase1-usecase1a-1 | 0x0000ffff949ba658: 0x80 0xfd 0xff 0x54 0xe0 0x3f 0x40 0xf9 0xc1 0x02 0x80 0x52 0xf5 0x3b 0x00 0xf9
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Top of stack (sp=0x0000ffff767f91a0):
usecase1-usecase1a-1 | 0x0000ffff767f91a0: 0x0000ffff767f9230 0x0000ffff949bb538
usecase1-usecase1a-1 | 0x0000ffff767f91b0: 0x0000000013fb26e0 0x0000000000000001
usecase1-usecase1a-1 | 0x0000ffff767f91c0: 0x0000ffff767f9438 0x0000000000000400
usecase1-usecase1a-1 | 0x0000ffff767f91d0: 0x0000ffff767f9720 0x0000000000000002
usecase1-usecase1a-1 | 0x0000ffff767f91e0: 0x0000ffff767fc7b8 0x0000ffff767fc7ec
usecase1-usecase1a-1 | 0x0000ffff767f91f0: 0x0000ffff949d2000 0x0000ffff767f9438
usecase1-usecase1a-1 | 0x0000ffff767f9200: 0x0000000000000000 0x0000000204c7b000
usecase1-usecase1a-1 | 0x0000ffff767f9210: 0x0000ffff767f9230 0x0000ffff767fc7b8
usecase1-usecase1a-1 | 0x0000ffff767f9220: 0x0000ffff949bfca8 0x0000ffff767fc7ec
usecase1-usecase1a-1 | 0x0000ffff767f9230: 0x0000ffff767f9350 0x00000000026d3688
usecase1-usecase1a-1 | 0x0000ffff767f9240: 0x0000ffff767fc7b8 0x0000ffff767f9710
usecase1-usecase1a-1 | 0x0000ffff767f9250: 0x0000ffff949bb460 0x0000000000000000
usecase1-usecase1a-1 | 0x0000ffff767f9260: 0x0000ffff767fc7ec 0x00000000ffffffff
usecase1-usecase1a-1 | 0x0000ffff767f9270: 0x00000000ffffffff 0x0000000000000000
usecase1-usecase1a-1 | 0x0000ffff767f9280: 0x0000ffff767f9bb0 0x0000ffff767f9438
usecase1-usecase1a-1 | 0x0000ffff767f9290: 0x0000ffff767f9720 0x0000ffff767f9430
usecase1-usecase1a-1 | 0x0000ffff767f92a0: 0x0000ffff28000b60 0x0000000000000000
usecase1-usecase1a-1 | 0x0000ffff767f92b0: 0x0000ffff767f9430 0x0000000000000000
usecase1-usecase1a-1 | 0x0000ffff767f92c0: 0x0000000000000000 0x0000000000000000
usecase1-usecase1a-1 | 0x0000ffff767f92d0: 0x0000000000000000 0x0000000000000000
usecase1-usecase1a-1 | 0x0000ffff767f92e0: 0x0000000000000000 0x0000000000000000
usecase1-usecase1a-1 | 0x0000ffff767f92f0: 0x0000000000000000 0x0000000000000003
usecase1-usecase1a-1 | 0x0000ffff767f9300: 0x0000000000000000 0x0000000000000000
usecase1-usecase1a-1 | 0x0000ffff767f9310: 0x0000ffff767f92f0 0x0000001100000002
usecase1-usecase1a-1 | 0x0000ffff767f9320: 0x0400000800000000 0x0000000000000000
usecase1-usecase1a-1 | 0x0000ffff767f9330: 0x0000ffff767f9310 0x0000000600000001
usecase1-usecase1a-1 | 0x0000ffff767f9340: 0x0000000000000000 0x0000000000000000
usecase1-usecase1a-1 | 0x0000ffff767f9350: 0x0000ffff767f9570 0x00000000026d4050
usecase1-usecase1a-1 | 0x0000ffff767f9360: 0x0000000000000000 0x0000ffff767f9720
usecase1-usecase1a-1 | 0x0000ffff767f9370: 0x0000ffff767f9bb0 0x0000000013fb26e0
usecase1-usecase1a-1 | 0x0000ffff767f9380: 0x0000000013fb26e0 0x0000ffff88a69148
usecase1-usecase1a-1 | 0x0000ffff767f9390: 0x0000ffff88a69190 0x0000ffff93277348
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Top frame info:
usecase1-usecase1a-1 | Does not look like a Java Frame. Use JavaFrameAnchors to find LastJavaSP:
usecase1-usecase1a-1 | Found matching Anchor:0x0000ffff767f9c08
usecase1-usecase1a-1 | LastJavaSP 0x0000ffff767f9be0
usecase1-usecase1a-1 | LastJavaIP 0x0000000000f8e10c
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Threads:
usecase1-usecase1a-1 | 0x0000000013fb1480 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "DestroyJavaVM" - 0x0000ffff6ca01028, stack(0x0000ffffdeb20000,0x0000ffffdf320000)
usecase1-usecase1a-1 | 0x0000ffff30000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-Acceptor" - 0x0000ffff88625480, daemon, stack(0x0000ffff6d001000,0x0000ffff6d800000)
usecase1-usecase1a-1 | 0x0000ffff3c000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-Poller" - 0x0000ffff88622d80, daemon, stack(0x0000ffff6da00000,0x0000ffff6e1ff000)
usecase1-usecase1a-1 | 0x0000ffff38000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-exec-10" - 0x0000ffff88620658, daemon, stack(0x0000ffff6e201000,0x0000ffff6ea00000)
usecase1-usecase1a-1 | 0x0000ffff40000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-exec-8" - 0x0000ffff8861c8d8, daemon, stack(0x0000ffff74e01000,0x0000ffff75600000)
usecase1-usecase1a-1 | 0x0000ffff64000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-exec-9" - 0x0000ffff8861e798, daemon, stack(0x0000ffff74201000,0x0000ffff74a00000)
usecase1-usecase1a-1 | 0x0000ffff4c000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-exec-7" - 0x0000ffff8861aa18, daemon, stack(0x0000ffff757fd000,0x0000ffff75ffc000)
usecase1-usecase1a-1 | 0x0000ffff48000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-exec-5" - 0x0000ffff88616c98, daemon, stack(0x0000ffff6f801000,0x0000ffff70000000)
usecase1-usecase1a-1 | 0x0000ffff70000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-exec-2" - 0x0000ffff88610fc8, daemon, stack(0x0000ffff77000000,0x0000ffff777ff000)
usecase1-usecase1a-1 | 0x0000ffff50000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-exec-6" - 0x0000ffff88618b58, daemon, stack(0x0000ffff6f000000,0x0000ffff6f7ff000)
usecase1-usecase1a-1 | 0x0000ffff60000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-exec-1" - 0x0000ffff8860f078, daemon, stack(0x0000ffff77801000,0x0000ffff78000000)
usecase1-usecase1a-1 | 0x0000ffff68000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "http-nio-8080-exec-3" - 0x0000ffff88612e88, daemon, stack(0x0000ffff767ff000,0x0000ffff76ffe000)
usecase1-usecase1a-1 | 0x0000ffff58000b80 STATUS_IN_JAVA (PREVENT_VM_FROM_REACHING_SAFEPOINT) "http-nio-8080-exec-4" - 0x0000ffff88614dd8, daemon, stack(0x0000ffff75ffe000,0x0000ffff767fd000)
usecase1-usecase1a-1 | 0x0000ffff7c000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "container-0" - 0x0000ffff8b24c050, stack(0x0000ffff89601000,0x0000ffff89e00000)
usecase1-usecase1a-1 | 0x0000ffff78000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "Catalina-utility-2" - 0x0000ffff8b224068, stack(0x0000ffff8a001000,0x0000ffff8a800000)
usecase1-usecase1a-1 | 0x0000ffff80000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "Catalina-utility-1" - 0x0000ffff8b221868, stack(0x0000ffff8aa01000,0x0000ffff8b200000)
usecase1-usecase1a-1 | 0x0000ffff84000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "Signal Dispatcher" - 0x0000ffff921025d0, daemon, stack(0x0000ffff90f01000,0x0000ffff91700000)
usecase1-usecase1a-1 | 0x0000ffff8c000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "Reference Handler" - 0x0000ffff93992b38, daemon, stack(0x0000ffff91901000,0x0000ffff92100000)
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | VM thread locals for the failing thread 0x0000ffff58000b80:
usecase1-usecase1a-1 | 0 (8 bytes): JNIThreadLocalEnvironment.jniFunctions = (bytes)
usecase1-usecase1a-1 | 0x0000ffff58000b80: 0x0000ffff93381010
usecase1-usecase1a-1 | 8 (8 bytes): StackOverflowCheckImpl.stackBoundaryTL = (Word) 1 (0x0000000000000001)
usecase1-usecase1a-1 | 16 (4 bytes): Safepoint.safepointRequested = (int) 2147368862 (0x7ffe3f9e)
usecase1-usecase1a-1 | 20 (4 bytes): StatusSupport.statusTL = (int) 1 (0x00000001)
usecase1-usecase1a-1 | 24 (32 bytes): ThreadLocalAllocation.regularTLAB = (bytes)
usecase1-usecase1a-1 | 0x0000ffff58000b98: 0x0000ffff88400000 0x0000ffff88500000
usecase1-usecase1a-1 | 0x0000ffff58000ba8: 0x0000ffff8848d5c0 0x0000000000000000
usecase1-usecase1a-1 | 56 (8 bytes): PlatformThreads.currentThread = (Object) org.apache.tomcat.util.threads.TaskThread (0x0000ffff88614dd8)
usecase1-usecase1a-1 | 64 (8 bytes): JavaFrameAnchors.lastAnchor = (Word) 281472669817864 (0x0000ffff767f9c08)
usecase1-usecase1a-1 | 72 (8 bytes): AccessControlContextStack = (Object) java.util.ArrayDeque (0x0000ffff88401228)
usecase1-usecase1a-1 | 80 (8 bytes): ExceptionUnwind.currentException = (Object) null
usecase1-usecase1a-1 | 88 (8 bytes): IdentityHashCodeSupport.hashCodeGeneratorTL = (Object) java.util.SplittableRandom (0x0000ffff88476078)
usecase1-usecase1a-1 | 96 (8 bytes): IsolatedCompileClient.currentClient = (Object) null
usecase1-usecase1a-1 | 104 (8 bytes): IsolatedCompileContext.currentContext = (Object) null
usecase1-usecase1a-1 | 112 (8 bytes): JNIObjectHandles.handles = (Object) com.oracle.svm.core.handles.ThreadLocalHandles (0x0000ffff88437b98)
usecase1-usecase1a-1 | 120 (8 bytes): JNIThreadLocalPendingException.pendingException = (Object) null
usecase1-usecase1a-1 | 128 (8 bytes): JNIThreadLocalPinnedObjects.pinnedObjectsListHead = (Object) null
usecase1-usecase1a-1 | 136 (8 bytes): JNIThreadOwnedMonitors.ownedMonitors = (Object) null
usecase1-usecase1a-1 | 144 (8 bytes): NoAllocationVerifier.openVerifiers = (Object) null
usecase1-usecase1a-1 | 152 (8 bytes): ThreadingSupportImpl.activeTimer = (Object) null
usecase1-usecase1a-1 | 160 (8 bytes): SubstrateDiagnostics.threadOnlyAttachedForCrashHandler = (bytes)
usecase1-usecase1a-1 | 0x0000ffff58000c20: 0x0000000000000000
usecase1-usecase1a-1 | 168 (8 bytes): ThreadLocalAllocation.allocatedBytes = (Word) 0 (0x0000000000000000)
usecase1-usecase1a-1 | 176 (8 bytes): VMThreads.IsolateTL = (Word) 281473134362624 (0x0000ffff92300000)
usecase1-usecase1a-1 | 184 (8 bytes): VMThreads.OSThreadHandleTL = (Word) 281472669827200 (0x0000ffff767fc080)
usecase1-usecase1a-1 | 192 (8 bytes): VMThreads.OSThreadIdTL = (Word) 281472669827200 (0x0000ffff767fc080)
usecase1-usecase1a-1 | 200 (8 bytes): VMThreads.StackBase = (Word) 281472669831168 (0x0000ffff767fd000)
usecase1-usecase1a-1 | 208 (8 bytes): VMThreads.StackEnd = (Word) 281472661446656 (0x0000ffff75ffe000)
usecase1-usecase1a-1 | 216 (8 bytes): VMThreads.StartedByCurrentIsolate = (bytes)
usecase1-usecase1a-1 | 0x0000ffff58000c58: 0x0000000000000001
usecase1-usecase1a-1 | 224 (8 bytes): VMThreads.nextTL = (Word) 281472762121088 (0x0000ffff7c000b80)
usecase1-usecase1a-1 | 232 (8 bytes): VMThreads.unalignedIsolateThreadMemoryTL = (Word) 281472158141280 (0x0000ffff58000b60)
usecase1-usecase1a-1 | 240 (4 bytes): ActionOnExitSafepointSupport.actionTL = (int) 0 (0x00000000)
usecase1-usecase1a-1 | 244 (4 bytes): ActionOnTransitionToJavaSupport.actionTL = (int) 0 (0x00000000)
usecase1-usecase1a-1 | 248 (4 bytes): ImplicitExceptions.implicitExceptionsAreFatal = (int) 0 (0x00000000)
usecase1-usecase1a-1 | 252 (4 bytes): StackOverflowCheckImpl.yellowZoneStateTL = (int) 2130640638 (0x7efefefe)
usecase1-usecase1a-1 | 256 (4 bytes): StatusSupport.safepointBehaviorTL = (int) 1 (0x00000001)
usecase1-usecase1a-1 | 260 (4 bytes): ThreadingSupportImpl.currentPauseDepth = (int) 0 (0x00000000)
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | No VMOperation in progress
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | The 15 most recent VM operation status changes (oldest first):
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Counters:
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Java frame anchors for the failing thread 0x0000ffff58000b80:
usecase1-usecase1a-1 | Anchor 0x0000ffff767f9c08 LastJavaSP 0x0000ffff767f9be0 LastJavaIP 0x0000000000f8e10c
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Stacktrace for the failing thread 0x0000ffff58000b80:
usecase1-usecase1a-1 | SP 0x0000ffff767f91a0 IP 0x0000ffff949ba648 IP is not within Java code. Trying frame anchor of last Java frame instead.
usecase1-usecase1a-1 | SP 0x0000ffff767f9be0 IP 0x0000000000f8e10c [image code] java.net.Inet4AddressImpl.lookupAllHostAddr(Inet4AddressImpl.java)
usecase1-usecase1a-1 | SP 0x0000ffff767f9c40 IP 0x0000000000f96fc0 [image code] java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:933)
usecase1-usecase1a-1 | SP 0x0000ffff767f9c70 IP 0x0000000000f97d60 [image code] java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1529)
usecase1-usecase1a-1 | SP 0x0000ffff767f9cc0 IP 0x0000000000f967e8 [image code] java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:852)
usecase1-usecase1a-1 | SP 0x0000ffff767f9d40 IP 0x0000000000f996b8 [image code] java.net.InetAddress.getAllByName0(InetAddress.java:1519)
usecase1-usecase1a-1 | SP 0x0000ffff767f9db0 IP 0x0000000000f98250 [image code] java.net.InetAddress.getAllByName(InetAddress.java:1377)
usecase1-usecase1a-1 | SP 0x0000ffff767f9e10 IP 0x0000000000f9cd04 [image code] java.net.InetAddress.getAllByName(InetAddress.java:1305)
usecase1-usecase1a-1 | SP 0x0000ffff767f9e10 IP 0x0000000000f9cd04 [image code] java.net.InetAddress.getByName(InetAddress.java:1255)
usecase1-usecase1a-1 | SP 0x0000ffff767f9e10 IP 0x0000000000f9cd04 [image code] java.net.InetSocketAddress.<init>(InetSocketAddress.java:229)
usecase1-usecase1a-1 | SP 0x0000ffff767f9e60 IP 0x0000000002107408 [image code] sun.net.NetworkClient.doConnect(NetworkClient.java:178)
usecase1-usecase1a-1 | SP 0x0000ffff767f9eb0 IP 0x000000000212b1b0 [image code] sun.net.www.http.HttpClient.openServer(HttpClient.java:531)
usecase1-usecase1a-1 | SP 0x0000ffff767f9f00 IP 0x000000000212ac8c [image code] sun.net.www.http.HttpClient.openServer(HttpClient.java:636)
usecase1-usecase1a-1 | SP 0x0000ffff767f9f40 IP 0x0000000002128670 [image code] sun.net.www.http.HttpClient.<init>(HttpClient.java:279)
usecase1-usecase1a-1 | SP 0x0000ffff767f9f90 IP 0x0000000002128ad8 [image code] sun.net.www.http.HttpClient.New(HttpClient.java:384)
usecase1-usecase1a-1 | SP 0x0000ffff767f9ff0 IP 0x000000000214857c [image code] sun.net.www.http.HttpClient.New(HttpClient.java:406)
usecase1-usecase1a-1 | SP 0x0000ffff767f9ff0 IP 0x000000000214857c [image code] sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1309)
usecase1-usecase1a-1 | SP 0x0000ffff767fa020 IP 0x000000000214bb78 [image code] sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242)
usecase1-usecase1a-1 | SP 0x0000ffff767fa0b0 IP 0x000000000214b530 [image code] sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128)
usecase1-usecase1a-1 | SP 0x0000ffff767fa0e0 IP 0x000000000213e104 [image code] sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1057)
usecase1-usecase1a-1 | SP 0x0000ffff767fa110 IP 0x0000000001eb9964 [image code] org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:75)
usecase1-usecase1a-1 | SP 0x0000ffff767fa150 IP 0x0000000001eb7fd8 [image code] org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
usecase1-usecase1a-1 | SP 0x0000ffff767fa1b0 IP 0x0000000001eb8540 [image code] org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66)
usecase1-usecase1a-1 | SP 0x0000ffff767fa1f0 IP 0x0000000001f68df8 [image code] org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:865)
usecase1-usecase1a-1 | SP 0x0000ffff767fa290 IP 0x0000000001f695a8 [image code] org.springframework.web.client.RestTemplate.execute(RestTemplate.java:767)
usecase1-usecase1a-1 | SP 0x0000ffff767fa2e0 IP 0x0000000001f69734 [image code] org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:407)
usecase1-usecase1a-1 | SP 0x0000ffff767fa330 IP 0x0000000000d3c8e0 [image code] info.jab.ms.MyRestController.getDataFromB(MyRestController.java:37)
usecase1-usecase1a-1 | SP 0x0000ffff767fa3a0 IP 0x0000000000882a2c [image code] com.oracle.svm.core.reflect.ReflectionAccessorHolder.fef58f1595c0771a9b7327c0926d0fc7a566b418(ReflectionAccessorHolder.java:0)
usecase1-usecase1a-1 | SP 0x0000ffff767fa3d0 IP 0x00000000008833b4 [image code] com.oracle.svm.core.reflect.SubstrateMethodAccessor.invoke(SubstrateMethodAccessor.java:105)
usecase1-usecase1a-1 | SP 0x0000ffff767fa410 IP 0x0000000001fab300 [image code] java.lang.reflect.Method.invoke(Method.java:568)
usecase1-usecase1a-1 | SP 0x0000ffff767fa410 IP 0x0000000001fab300 [image code] org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207)
usecase1-usecase1a-1 | SP 0x0000ffff767fa480 IP 0x0000000001fac604 [image code] org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152)
usecase1-usecase1a-1 | SP 0x0000ffff767fa4e0 IP 0x00000000020451ec [image code] org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
usecase1-usecase1a-1 | SP 0x0000ffff767fa540 IP 0x00000000020390d8 [image code] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:891)
usecase1-usecase1a-1 | SP 0x0000ffff767fa5d0 IP 0x0000000002037624 [image code] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:804)
usecase1-usecase1a-1 | SP 0x0000ffff767fa630 IP 0x000000000200ec00 [image code] org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
usecase1-usecase1a-1 | SP 0x0000ffff767fa660 IP 0x0000000001fb5e4c [image code] org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1080)
usecase1-usecase1a-1 | SP 0x0000ffff767fa710 IP 0x0000000001fb7b0c [image code] org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:973)
usecase1-usecase1a-1 | SP 0x0000ffff767fa7a0 IP 0x0000000001fc9cac [image code] org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1003)
usecase1-usecase1a-1 | SP 0x0000ffff767fa850 IP 0x0000000000d54434 [image code] org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:895)
usecase1-usecase1a-1 | SP 0x0000ffff767fa850 IP 0x0000000000d54434 [image code] jakarta.servlet.http.HttpServlet.service(HttpServlet.java:705)
usecase1-usecase1a-1 | SP 0x0000ffff767fa8a0 IP 0x0000000001fcaa98 [image code] org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:880)
usecase1-usecase1a-1 | SP 0x0000ffff767fa8f0 IP 0x0000000000d534cc [image code] jakarta.servlet.http.HttpServlet.service(HttpServlet.java:814)
usecase1-usecase1a-1 | SP 0x0000ffff767fa930 IP 0x00000000015dea98 [image code] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:223)
usecase1-usecase1a-1 | SP 0x0000ffff767fa990 IP 0x00000000019e7368 [image code] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
usecase1-usecase1a-1 | SP 0x0000ffff767fa990 IP 0x00000000019e7368 [image code] org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
usecase1-usecase1a-1 | SP 0x0000ffff767faa00 IP 0x00000000015dec40 [image code] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
usecase1-usecase1a-1 | SP 0x0000ffff767faa60 IP 0x0000000001f8eb34 [image code] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
usecase1-usecase1a-1 | SP 0x0000ffff767faa60 IP 0x0000000001f8eb34 [image code] org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
usecase1-usecase1a-1 | SP 0x0000ffff767faae0 IP 0x0000000001f8e2ac [image code] org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
usecase1-usecase1a-1 | SP 0x0000ffff767fab50 IP 0x00000000015dec40 [image code] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
usecase1-usecase1a-1 | SP 0x0000ffff767fabb0 IP 0x0000000001f8c100 [image code] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
usecase1-usecase1a-1 | SP 0x0000ffff767fabb0 IP 0x0000000001f8c100 [image code] org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
usecase1-usecase1a-1 | SP 0x0000ffff767fac10 IP 0x0000000001f8e2ac [image code] org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
usecase1-usecase1a-1 | SP 0x0000ffff767fac80 IP 0x00000000015dec40 [image code] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
usecase1-usecase1a-1 | SP 0x0000ffff767face0 IP 0x0000000001f8b36c [image code] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
usecase1-usecase1a-1 | SP 0x0000ffff767face0 IP 0x0000000001f8b36c [image code] org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
usecase1-usecase1a-1 | SP 0x0000ffff767fad40 IP 0x0000000001f8e2ac [image code] org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
usecase1-usecase1a-1 | SP 0x0000ffff767fadb0 IP 0x00000000015dec40 [image code] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
usecase1-usecase1a-1 | SP 0x0000ffff767fae10 IP 0x0000000001652190 [image code] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
usecase1-usecase1a-1 | SP 0x0000ffff767fae10 IP 0x0000000001652190 [image code] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
usecase1-usecase1a-1 | SP 0x0000ffff767faf30 IP 0x0000000001636764 [image code] org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
usecase1-usecase1a-1 | SP 0x0000ffff767fafa0 IP 0x000000000158e9b0 [image code] org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
usecase1-usecase1a-1 | SP 0x0000ffff767fb030 IP 0x000000000163c694 [image code] org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:119)
usecase1-usecase1a-1 | SP 0x0000ffff767fb0d0 IP 0x00000000016cef00 [image code] org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
usecase1-usecase1a-1 | SP 0x0000ffff767fb130 IP 0x000000000163910c [image code] org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
usecase1-usecase1a-1 | SP 0x0000ffff767fb160 IP 0x000000000159f590 [image code] org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
usecase1-usecase1a-1 | SP 0x0000ffff767fb210 IP 0x00000000017527a8 [image code] org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:400)
usecase1-usecase1a-1 | SP 0x0000ffff767fb2f0 IP 0x000000000170e9b8 [image code] org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
usecase1-usecase1a-1 | SP 0x0000ffff767fb420 IP 0x000000000170fdc8 [image code] org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
usecase1-usecase1a-1 | SP 0x0000ffff767fb530 IP 0x000000000190b6c0 [image code] org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739)
usecase1-usecase1a-1 | SP 0x0000ffff767fb5b0 IP 0x000000000193cc24 [image code] org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
usecase1-usecase1a-1 | SP 0x0000ffff767fb5f0 IP 0x00000000019a9368 [image code] org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
usecase1-usecase1a-1 | SP 0x0000ffff767fb650 IP 0x00000000019a50d8 [image code] org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
usecase1-usecase1a-1 | SP 0x0000ffff767fb680 IP 0x00000000019a4664 [image code] org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
usecase1-usecase1a-1 | SP 0x0000ffff767fb6b0 IP 0x0000000000e51844 [image code] java.lang.Thread.run(Thread.java:833)
usecase1-usecase1a-1 | SP 0x0000ffff767fb6e0 IP 0x000000000089581c [image code] com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
usecase1-usecase1a-1 | SP 0x0000ffff767fb720 IP 0x000000000086134c [image code] com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)
usecase1-usecase1a-1 | SP 0x0000ffff767fb750 IP 0x00000000007c1bc0 [image code] com.oracle.svm.core.code.IsolateEnterStub.PosixPlatformThreads_pthreadStartRoutine_38d96cbc1a188a6051c29be1299afe681d67942e(IsolateEnterStub.java:0)
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | VM mutexes:
usecase1-usecase1a-1 | mutex "thread" is unlocked.
usecase1-usecase1a-1 | mutex "mainVMOperationControlWorkQueue" is unlocked.
usecase1-usecase1a-1 | mutex "referencePendingList" is unlocked.
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | AOT compiled code is mapped at 0x0000000000402000 - 0x0000000002678f0f
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Heap settings and statistics:
usecase1-usecase1a-1 | Supports isolates: true
usecase1-usecase1a-1 | Heap base: 0x0000ffff92300000
usecase1-usecase1a-1 | Object reference size: 8
usecase1-usecase1a-1 | Aligned chunk size: 1048576
usecase1-usecase1a-1 | Incremental collections: 0
usecase1-usecase1a-1 | Complete collections: 0
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Native image heap boundaries:
usecase1-usecase1a-1 | ReadOnly Primitives: 0x0000ffff92401028 - 0x0000ffff92ee4688
usecase1-usecase1a-1 | ReadOnly References: 0x0000ffff92ee4688 - 0x0000ffff93380088
usecase1-usecase1a-1 | ReadOnly Relocatables: 0x0000ffff93381000 - 0x0000ffff9368ff70
usecase1-usecase1a-1 | Writable Primitives: 0x0000ffff93690000 - 0x0000ffff938205e0
usecase1-usecase1a-1 | Writable References: 0x0000ffff938205e0 - 0x0000ffff93f72c48
usecase1-usecase1a-1 | Writable Huge: 0x0000ffff94000030 - 0x0000ffff940d6050
usecase1-usecase1a-1 | ReadOnly Huge: 0x0000ffff940d7030 - 0x0000ffff94916c98
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Heap:
usecase1-usecase1a-1 | Young generation:
usecase1-usecase1a-1 | Eden:
usecase1-usecase1a-1 | edenSpace:
usecase1-usecase1a-1 | aligned: 22020096/21 unaligned: 0/0
usecase1-usecase1a-1 | aligned chunks:
usecase1-usecase1a-1 | 0x0000ffff88600000 (0x0000ffff88601028-0x0000ffff88655bd0)
usecase1-usecase1a-1 | 0x0000ffff88800000 (0x0000ffff88801028-0x0000ffff888fffe8)
usecase1-usecase1a-1 | 0x0000ffff88a00000 (0x0000ffff88a01028-0x0000ffff88affff0)
usecase1-usecase1a-1 | 0x0000ffff88c00000 (0x0000ffff88c01028-0x0000ffff88cfffe8)
usecase1-usecase1a-1 | 0x0000ffff88e00000 (0x0000ffff88e01028-0x0000ffff88f00000)
usecase1-usecase1a-1 | 0x0000ffff89000000 (0x0000ffff89001028-0x0000ffff890ffff8)
usecase1-usecase1a-1 | 0x0000ffff89200000 (0x0000ffff89201028-0x0000ffff892ffff0)
usecase1-usecase1a-1 | 0x0000ffff8b200000 (0x0000ffff8b201028-0x0000ffff8b300000)
usecase1-usecase1a-1 | 0x0000ffff8b400000 (0x0000ffff8b401028-0x0000ffff8b4fffc0)
usecase1-usecase1a-1 | 0x0000ffff8b600000 (0x0000ffff8b601028-0x0000ffff8b6fffe8)
usecase1-usecase1a-1 | 0x0000ffff8b800000 (0x0000ffff8b801028-0x0000ffff8b8ffff8)
usecase1-usecase1a-1 | 0x0000ffff8ba00000 (0x0000ffff8ba01028-0x0000ffff8bafbc30)
usecase1-usecase1a-1 | 0x0000ffff8bc00000 (0x0000ffff8bc01028-0x0000ffff8bcffff0)
usecase1-usecase1a-1 | 0x0000ffff8be00000 (0x0000ffff8be01028-0x0000ffff8beffff0)
usecase1-usecase1a-1 | 0x0000ffff90000000 (0x0000ffff90001028-0x0000ffff900fe520)
usecase1-usecase1a-1 | 0x0000ffff90200000 (0x0000ffff90201028-0x0000ffff902fffa8)
usecase1-usecase1a-1 | 0x0000ffff90400000 (0x0000ffff90401028-0x0000ffff904ff370)
usecase1-usecase1a-1 | 0x0000ffff90600000 (0x0000ffff90601028-0x0000ffff906fffd8)
usecase1-usecase1a-1 | 0x0000ffff90800000 (0x0000ffff90801028-0x0000ffff908ffee0)
usecase1-usecase1a-1 | 0x0000ffff90a00000 (0x0000ffff90a01028-0x0000ffff90affff8)
usecase1-usecase1a-1 | 0x0000ffff92100000 (0x0000ffff92101028-0x0000ffff92200000)
usecase1-usecase1a-1 | Survivors:
usecase1-usecase1a-1 | Survivor-1 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-1 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-2 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-2 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-3 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-3 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-4 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-4 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-5 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-5 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-6 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-6 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-7 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-7 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-8 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-8 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-9 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-9 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-10 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-10 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-11 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-11 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-12 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-12 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-13 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-13 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-14 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-14 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-15 From:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Survivor-15 To:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | Old generation:
usecase1-usecase1a-1 | oldFromSpace:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 | oldToSpace:
usecase1-usecase1a-1 | aligned: 0/0 unaligned: 0/0
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Unused:
usecase1-usecase1a-1 | aligned: 0/0
usecase1-usecase1a-1 |
usecase1-usecase1a-1 | Segfault detected, aborting process. Use runtime option -R:-InstallSegfaultHandler if you don't want to use SubstrateSegfaultHandler.
usecase1-usecase1a-1 |
usecase1-usecase1a-1 exited with code 99
But if you run the same process in Linux, everything goes like a charm:
Detail about the configuration to enable http comms:
<configuration>
<imageName>ghcr.io/jabrena/use-case1-a:buildpacks-native.0.0.1-SNAPSHOT</imageName>
<image>
<builder>dashaun/java-native-builder-multiarch:7.37.0</builder>
<env>
<BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
<BP_JVM_VERSION>17</BP_JVM_VERSION>
<BP_NATIVE_IMAGE_BUILD_ARGUMENTS>-J-Xmx6000m --static --enable-http --enable-url-protocols=http</BP_NATIVE_IMAGE_BUILD_ARGUMENTS>
<pullPolicy>IF_NOT_PRESENT</pullPolicy>
</env>
</image>
</configuration>
I have a dobut about native build sizes:
Builds from OSX M1:
Generated Docker Container Images Summary
275MB ghcr.io/jabrena/use-case1-a buildpacks-jvm.0.0.1-SNAPSHOT f5d9a8e12863
177MB ghcr.io/jabrena/use-case1-a buildpacks-native.0.0.1-SNAPSHOT 07f5706b01f3
275MB ghcr.io/jabrena/use-case1-b buildpacks-jvm.0.0.1-SNAPSHOT bc42a0a34c72
177MB ghcr.io/jabrena/use-case1-b buildpacks-native.0.0.1-SNAPSHOT 6a6fac9c5dad
Builds from Github Actions + Ubuntu:
Generated Docker Container Images Summary
274MB ghcr.io/jabrena/use-case1-a buildpacks-jvm.0.0.1-SNAPSHOT cf6bec35fd0a
101MB ghcr.io/jabrena/use-case1-a buildpacks-native.0.0.1-SNAPSHOT 32121c528cf0
274MB ghcr.io/jabrena/use-case1-b buildpacks-jvm.0.0.1-SNAPSHOT 2e16450ea615
100MB ghcr.io/jabrena/use-case1-b buildpacks-native.0.0.1-SNAPSHOT cc0cfbc9b5eb
Exist a big difference in terms of size between both builds.
buildsizes tend to be bigger .. because afaik now the non m1 builder uses builder:base while the one is configured to use builder:tiny you can change the later to also use builder:base but not vice versa
Hi @goafabric, make sense in relation to the different sizes.
In relation to the Segfault
anyone has experimented it?
if you have a native application which make http
calls to another point, the app crashes.
With Ubuntu running on Github Actions, it works: https://github.com/jabrena/101-docker/actions/runs/3527469119/jobs/5916567051
Native configuration:
<BP_NATIVE_IMAGE_BUILD_ARGUMENTS>-J-Xmx6000m --static --enable-http --enable-url-protocols=http</BP_NATIVE_IMAGE_BUILD_ARGUMENTS>
Script:
echo "Running docker compose native"
docker-compose -f docker-compose-native.yml up -d
sleep 25
curl http://localhost:8081/ -w '\n'
curl http://localhost:8080/ -w '\n'
docker-compose -f docker-compose-native.yml stop
Output:
Recreating usecase1_usecase1b_1 ...
Recreating usecase1_usecase1b_1 ... done
Recreating usecase1_usecase1a_1 ...
Recreating usecase1_usecase1a_1 ... done
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 11 100 11 0 0 3666 0 --:--:-- --:--:-- --:--:-- 3666
Hello World
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 19 100 19 0 0 2714 0 --:--:-- --:--:-- --:--:-- 2714
Result: Hello World
Stopping usecase1_usecase1a_1 ...
Stopping usecase1_usecase1b_1 ...
Stopping usecase1_usecase1a_1 ... done
Stopping usecase1_usecase1b_1 ... done
but in local if you run the docker compose
, it fails.
Any feedback @dashaun, @goafabric, @ddobrin
Many thanks in advance
if you mean doing restcalls with resttemplate that works for me, see:
https://github.com/goafabric/person-service
if it segfaults .. i recommend the hard way that spring developers would also recommend downsize your app to a bare minium and see if it still happens
if the bug is gone enhance it again, until the problem becomes obvious
sadly there is no easy way doing stuff like this with native images, as rebuild and reverify .. i already learned this the last 2 years
but that is graalvm related not spring related
to shorten that roundtrips i higly recommend to also install graalvm locally because that is much faster than doing a paketo docker build
Hi @goafabric,
I found what happened:
Currently, it is not possible to compile with options like --static for
OSX
Exist an issue opened for it:
It is not related with Spring.
The new execution compiled usecase1-usecase1a-1 without --static
flag:
Running docker compose native
[+] Running 2/2
⠿ Container usecase1-usecase1b-1 Started 0.6s
⠿ Container usecase1-usecase1a-1 Started 0.7s
Hello World
Result: Hello World
[+] Running 2/2
⠿ Container usecase1-usecase1a-1 Stopped 0.1s
⠿ Container usecase1-usecase1b-1 Stopped
Stable spring-boot configuration:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<imageName>ghcr.io/jabrena/use-case1-a:buildpacks-native.0.0.1-SNAPSHOT</imageName>
<image>
<builder>dashaun/java-native-builder-multiarch:7.37.0</builder>
<env>
<BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
<BP_JVM_VERSION>17</BP_JVM_VERSION>
<BP_NATIVE_IMAGE_BUILD_ARGUMENTS>-J-Xmx6000m</BP_NATIVE_IMAGE_BUILD_ARGUMENTS>
<pullPolicy>IF_NOT_PRESENT</pullPolicy>
</env>
</image>
</configuration>
</plugin>
Many thanks for the comments.
Happier because I know that in OSX exist some mines, but I know some of them 😅
Currently, UPX is not working fine for OSX M1:
@jabrena @goafabric
Thank you for using my stuff and sharing feedback.
I pushed out a new version.
Ubuntu Jammy
and the stack is closer to tiny
than base
so your images should be much smaller.@dashaun, count with my test tomorrow
I am receiving:
Exit Code 139
With my OSX m1 2020 Ventura 13.0.1
when I enable upx
:
<BP_BINARY_COMPRESSION_METHOD>upx</BP_BINARY_COMPRESSION_METHOD>
Another possible clue is the following warning from docker compose:
[+] Running 3/6e requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
⠿ Container usecase1-usecase1b-1 Started 1.0ss
⠏ usecase1b The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
⠿ Container usecase1-usecase1a-1 Started 1.5ss
⠧ usecase1a The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
⠿ Container usecase1-usecase1ag-1 Started 1.6s
⠴ usecase1ag The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
My pipelines don't run on the M1 yet. The UPX works on the ARM64 VM that I tested with. So, I still have to understand UPX on OSX. But the error messages you are seeing are a little concerning. Those errors make sense if you were using an older version my builder. Can you share the output from this:
pack builder inspect dashaun/builder:tiny
Yes,
pack builder inspect dashaun/builder:tiny
Output:
Inspecting builder: dashaun/builder:tiny
REMOTE:
Description: Tiny base image (bionic build image, distroless-like run image) with buildpacks for Java, Java Native Image and Go
Created By:
Name: Pack CLI
Version: 0.28.0+git-b10e41f.build-3729
Trusted: No
Stack:
ID: io.paketo.stacks.tiny
Lifecycle:
Version: 0.15.2
Buildpack APIs:
Deprecated: (none)
Supported: 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9
Platform APIs:
Deprecated: (none)
Supported: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10
Run Images:
index.docker.io/paketobuildpacks/run:tiny-cnb
gcr.io/paketo-buildpacks/run:tiny-cnb
Buildpacks:
ID NAME VERSION HOMEPAGE
paketo-buildpacks/apache-tomcat Paketo Buildpack for Apache Tomcat 7.9.1 https://github.com/paketo-buildpacks/apache-tomcat
paketo-buildpacks/apache-tomee Paketo Buildpack for Apache Tomee 1.4.0 https://github.com/paketo-buildpacks/apache-tomee
paketo-buildpacks/azure-application-insights Paketo Buildpack for Azure Application Insights 5.9.3 https://github.com/paketo-buildpacks/azure-application-insights
paketo-buildpacks/bellsoft-liberica Paketo Buildpack for BellSoft Liberica 9.10.1 https://github.com/paketo-buildpacks/bellsoft-liberica
paketo-buildpacks/ca-certificates Paketo Buildpack for CA Certificates 3.5.1 https://github.com/paketo-buildpacks/ca-certificates
paketo-buildpacks/clojure-tools Paketo Buildpack for Clojure Tools 2.6.1 https://github.com/paketo-buildpacks/clojure-tools
paketo-buildpacks/datadog Paketo Buildpack for Datadog 3.1.0 https://github.com/paketo-buildpacks/datadog
paketo-buildpacks/dist-zip Paketo Buildpack for DistZip 5.4.0 https://github.com/paketo-buildpacks/dist-zip
paketo-buildpacks/encrypt-at-rest Paketo Buildpack for Encrypt-at-Rest 4.3.2 https://github.com/paketo-buildpacks/encrypt-at-rest
paketo-buildpacks/environment-variables Paketo Buildpack for Environment Variables 4.4.0 https://github.com/paketo-buildpacks/environment-variables
paketo-buildpacks/executable-jar Paketo Buildpack for Executable JAR 6.5.0 https://github.com/paketo-buildpacks/executable-jar
paketo-buildpacks/git Paketo Buildpack for Git 1.0.0 https://github.com/paketo-buildpacks/git
paketo-buildpacks/go Paketo Buildpack for Go 4.0.0 https://github.com/paketo-buildpacks/go
paketo-buildpacks/go-build Paketo Buildpack for Go Build 2.0.7 https://github.com/paketo-buildpacks/go-build
paketo-buildpacks/go-dist Paketo Buildpack for Go Distribution 2.2.2 https://github.com/paketo-buildpacks/go-dist
paketo-buildpacks/go-mod-vendor Paketo Buildpack for Go Mod Vendor 1.0.6 https://github.com/paketo-buildpacks/go-mod-vendor
paketo-buildpacks/google-stackdriver Paketo Buildpack for Google Stackdriver 7.0.0 https://github.com/paketo-buildpacks/google-stackdriver
paketo-buildpacks/gradle Paketo Buildpack for Gradle 6.10.0 https://github.com/paketo-buildpacks/gradle
paketo-buildpacks/image-labels Paketo Buildpack for Image Labels 4.3.0 https://github.com/paketo-buildpacks/image-labels
paketo-buildpacks/jattach Paketo Buildpack for JAttach 1.2.0 https://github.com/paketo-buildpacks/jattach
paketo-buildpacks/java Paketo Buildpack for Java 8.1.0 https://paketo.io/docs/howto/java
paketo-buildpacks/java-memory-assistant Paketo Buildpack for Java Memory Assistant 1.2.0 https://github.com/paketo-buildpacks/java-memory-assistant
paketo-buildpacks/java-native-image Paketo Buildpack for Java Native Image 7.42.0 https://paketo.io/docs/howto/java/#build-an-app-as-a-graalvm-native-image-application
paketo-buildpacks/leiningen Paketo Buildpack for Leiningen 4.4.0 https://github.com/paketo-buildpacks/leiningen
paketo-buildpacks/liberty Paketo Buildpack for Liberty 3.1.0 https://github.com/paketo-buildpacks/liberty
paketo-buildpacks/maven Paketo Buildpack for Maven 6.11.0 https://github.com/paketo-buildpacks/maven
paketo-buildpacks/native-image Paketo Buildpack for Native Image 5.6.0 https://github.com/paketo-buildpacks/native-image
paketo-buildpacks/procfile Paketo Buildpack for Procfile 5.5.0 https://github.com/paketo-buildpacks/procfile
paketo-buildpacks/sbt Paketo Buildpack for SBT 6.9.0 https://github.com/paketo-buildpacks/sbt
paketo-buildpacks/spring-boot Paketo Buildpack for Spring Boot 5.20.0 https://github.com/paketo-buildpacks/spring-boot
paketo-buildpacks/syft Paketo Buildpack for Syft 1.23.0 https://github.com/paketo-buildpacks/syft
paketo-buildpacks/upx Paketo Buildpack for UPX 3.3.0 https://github.com/paketo-buildpacks/upx
paketo-buildpacks/watchexec Paketo Buildpack for Watchexec 2.7.0 https://github.com/paketo-buildpacks/watchexec
Detection Order:
├ Group #1:
│ └ paketo-buildpacks/java-native-image@7.42.0
│ └ Group #1:
│ ├ paketo-buildpacks/ca-certificates@3.5.1 (optional)
│ ├ paketo-buildpacks/upx@3.3.0 (optional)
│ ├ paketo-buildpacks/bellsoft-liberica@9.10.1
│ ├ paketo-buildpacks/syft@1.23.0 (optional)
│ ├ paketo-buildpacks/leiningen@4.4.0 (optional)
│ ├ paketo-buildpacks/gradle@6.10.0 (optional)
│ ├ paketo-buildpacks/maven@6.11.0 (optional)
│ ├ paketo-buildpacks/sbt@6.9.0 (optional)
│ ├ paketo-buildpacks/executable-jar@6.5.0 (optional)
│ ├ paketo-buildpacks/spring-boot@5.20.0 (optional)
│ ├ paketo-buildpacks/native-image@5.6.0
│ ├ paketo-buildpacks/procfile@5.5.0 (optional)
│ ├ paketo-buildpacks/environment-variables@4.4.0 (optional)
│ └ paketo-buildpacks/image-labels@4.3.0 (optional)
├ Group #2:
│ └ paketo-buildpacks/java@8.1.0
│ └ Group #1:
│ ├ paketo-buildpacks/ca-certificates@3.5.1 (optional)
│ ├ paketo-buildpacks/bellsoft-liberica@9.10.1
│ ├ paketo-buildpacks/syft@1.23.0 (optional)
│ ├ paketo-buildpacks/leiningen@4.4.0 (optional)
│ ├ paketo-buildpacks/clojure-tools@2.6.1 (optional)
│ ├ paketo-buildpacks/gradle@6.10.0 (optional)
│ ├ paketo-buildpacks/maven@6.11.0 (optional)
│ ├ paketo-buildpacks/sbt@6.9.0 (optional)
│ ├ paketo-buildpacks/watchexec@2.7.0 (optional)
│ ├ paketo-buildpacks/executable-jar@6.5.0 (optional)
│ ├ paketo-buildpacks/apache-tomcat@7.9.1 (optional)
│ ├ paketo-buildpacks/apache-tomee@1.4.0 (optional)
│ ├ paketo-buildpacks/liberty@3.1.0 (optional)
│ ├ paketo-buildpacks/dist-zip@5.4.0 (optional)
│ ├ paketo-buildpacks/spring-boot@5.20.0 (optional)
│ ├ paketo-buildpacks/procfile@5.5.0 (optional)
│ ├ paketo-buildpacks/jattach@1.2.0 (optional)
│ ├ paketo-buildpacks/azure-application-insights@5.9.3 (optional)
│ ├ paketo-buildpacks/google-stackdriver@7.0.0 (optional)
│ ├ paketo-buildpacks/datadog@3.1.0 (optional)
│ ├ paketo-buildpacks/java-memory-assistant@1.2.0 (optional)
│ ├ paketo-buildpacks/encrypt-at-rest@4.3.2 (optional)
│ ├ paketo-buildpacks/environment-variables@4.4.0 (optional)
│ └ paketo-buildpacks/image-labels@4.3.0 (optional)
├ Group #3:
│ ├ paketo-buildpacks/go@4.0.0
│ │ └ Group #1:
│ │ ├ paketo-buildpacks/ca-certificates@3.5.1 (optional)
│ │ ├ paketo-buildpacks/watchexec@2.7.0 (optional)
│ │ ├ paketo-buildpacks/go-dist@2.2.2
│ │ ├ paketo-buildpacks/git@1.0.0 (optional)
│ │ ├ paketo-buildpacks/go-mod-vendor@1.0.6
│ │ ├ paketo-buildpacks/go-build@2.0.7
│ │ ├ paketo-buildpacks/procfile@5.5.0 (optional)
│ │ ├ paketo-buildpacks/environment-variables@4.4.0 (optional)
│ │ └ paketo-buildpacks/image-labels@4.3.0 (optional)
│ └ paketo-buildpacks/go@4.0.0
│ └ Group #2:
│ ├ paketo-buildpacks/ca-certificates@3.5.1 (optional)
│ ├ paketo-buildpacks/watchexec@2.7.0 (optional)
│ ├ paketo-buildpacks/go-dist@2.2.2
│ ├ paketo-buildpacks/git@1.0.0 (optional)
│ ├ paketo-buildpacks/go-build@2.0.7
│ ├ paketo-buildpacks/procfile@5.5.0 (optional)
│ ├ paketo-buildpacks/environment-variables@4.4.0 (optional)
│ └ paketo-buildpacks/image-labels@4.3.0 (optional)
└ Group #4:
└ paketo-buildpacks/procfile@5.5.0
LOCAL:
Description: Tiny base image (bionic build image, distroless-like run image) with buildpacks for Java, Java Native Image and Go
Created By:
Name: Pack CLI
Version: 0.28.0+git-b10e41f.build-3729
Trusted: No
Stack:
ID: io.paketo.stacks.tiny
Lifecycle:
Version: 0.15.2
Buildpack APIs:
Deprecated: (none)
Supported: 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9
Platform APIs:
Deprecated: (none)
Supported: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10
Run Images:
docker.io/dashaun/jammy-run:tiny
Buildpacks:
ID NAME VERSION HOMEPAGE
paketo-buildpacks/apache-tomcat Paketo Buildpack for Apache Tomcat 7.9.1 https://github.com/paketo-buildpacks/apache-tomcat
paketo-buildpacks/apache-tomee Paketo Buildpack for Apache Tomee 1.4.0 https://github.com/paketo-buildpacks/apache-tomee
paketo-buildpacks/azure-application-insights Paketo Buildpack for Azure Application Insights 5.9.3 https://github.com/paketo-buildpacks/azure-application-insights
paketo-buildpacks/bellsoft-liberica Paketo Buildpack for BellSoft Liberica 9.10.1 https://github.com/paketo-buildpacks/bellsoft-liberica
paketo-buildpacks/ca-certificates Paketo Buildpack for CA Certificates 3.5.1 https://github.com/paketo-buildpacks/ca-certificates
paketo-buildpacks/clojure-tools Paketo Buildpack for Clojure Tools 2.6.1 https://github.com/paketo-buildpacks/clojure-tools
paketo-buildpacks/datadog Paketo Buildpack for Datadog 3.1.0 https://github.com/paketo-buildpacks/datadog
paketo-buildpacks/dist-zip Paketo Buildpack for DistZip 5.4.0 https://github.com/paketo-buildpacks/dist-zip
paketo-buildpacks/encrypt-at-rest Paketo Buildpack for Encrypt-at-Rest 4.3.2 https://github.com/paketo-buildpacks/encrypt-at-rest
paketo-buildpacks/environment-variables Paketo Buildpack for Environment Variables 4.4.0 https://github.com/paketo-buildpacks/environment-variables
paketo-buildpacks/executable-jar Paketo Buildpack for Executable JAR 6.5.0 https://github.com/paketo-buildpacks/executable-jar
paketo-buildpacks/git Paketo Buildpack for Git 1.0.0 https://github.com/paketo-buildpacks/git
paketo-buildpacks/go Paketo Buildpack for Go 4.0.0 https://github.com/paketo-buildpacks/go
paketo-buildpacks/go-build Paketo Buildpack for Go Build 2.0.7 https://github.com/paketo-buildpacks/go-build
paketo-buildpacks/go-dist Paketo Buildpack for Go Distribution 2.2.2 https://github.com/paketo-buildpacks/go-dist
paketo-buildpacks/go-mod-vendor Paketo Buildpack for Go Mod Vendor 1.0.6 https://github.com/paketo-buildpacks/go-mod-vendor
paketo-buildpacks/google-stackdriver Paketo Buildpack for Google Stackdriver 7.0.0 https://github.com/paketo-buildpacks/google-stackdriver
paketo-buildpacks/gradle Paketo Buildpack for Gradle 6.10.0 https://github.com/paketo-buildpacks/gradle
paketo-buildpacks/image-labels Paketo Buildpack for Image Labels 4.3.0 https://github.com/paketo-buildpacks/image-labels
paketo-buildpacks/jattach Paketo Buildpack for JAttach 1.2.0 https://github.com/paketo-buildpacks/jattach
paketo-buildpacks/java Paketo Buildpack for Java 8.1.0 https://paketo.io/docs/howto/java
paketo-buildpacks/java-memory-assistant Paketo Buildpack for Java Memory Assistant 1.2.0 https://github.com/paketo-buildpacks/java-memory-assistant
paketo-buildpacks/java-native-image Paketo Buildpack for Java Native Image 7.42.0 https://paketo.io/docs/howto/java/#build-an-app-as-a-graalvm-native-image-application
paketo-buildpacks/leiningen Paketo Buildpack for Leiningen 4.4.0 https://github.com/paketo-buildpacks/leiningen
paketo-buildpacks/liberty Paketo Buildpack for Liberty 3.1.0 https://github.com/paketo-buildpacks/liberty
paketo-buildpacks/maven Paketo Buildpack for Maven 6.11.0 https://github.com/paketo-buildpacks/maven
paketo-buildpacks/native-image Paketo Buildpack for Native Image 5.6.0 https://github.com/paketo-buildpacks/native-image
paketo-buildpacks/procfile Paketo Buildpack for Procfile 5.5.0 https://github.com/paketo-buildpacks/procfile
paketo-buildpacks/sbt Paketo Buildpack for SBT 6.9.0 https://github.com/paketo-buildpacks/sbt
paketo-buildpacks/spring-boot Paketo Buildpack for Spring Boot 5.20.0 https://github.com/paketo-buildpacks/spring-boot
paketo-buildpacks/syft Paketo Buildpack for Syft 1.23.0 https://github.com/paketo-buildpacks/syft
paketo-buildpacks/upx Paketo Buildpack for UPX 3.3.0 https://github.com/paketo-buildpacks/upx
paketo-buildpacks/watchexec Paketo Buildpack for Watchexec 2.7.0 https://github.com/paketo-buildpacks/watchexec
Detection Order:
├ Group #1:
│ └ paketo-buildpacks/java-native-image@7.42.0
│ └ Group #1:
│ ├ paketo-buildpacks/ca-certificates@3.5.1 (optional)
│ ├ paketo-buildpacks/upx@3.3.0 (optional)
│ ├ paketo-buildpacks/bellsoft-liberica@9.10.1
│ ├ paketo-buildpacks/syft@1.23.0 (optional)
│ ├ paketo-buildpacks/leiningen@4.4.0 (optional)
│ ├ paketo-buildpacks/gradle@6.10.0 (optional)
│ ├ paketo-buildpacks/maven@6.11.0 (optional)
│ ├ paketo-buildpacks/sbt@6.9.0 (optional)
│ ├ paketo-buildpacks/executable-jar@6.5.0 (optional)
│ ├ paketo-buildpacks/spring-boot@5.20.0 (optional)
│ ├ paketo-buildpacks/native-image@5.6.0
│ ├ paketo-buildpacks/procfile@5.5.0 (optional)
│ ├ paketo-buildpacks/environment-variables@4.4.0 (optional)
│ └ paketo-buildpacks/image-labels@4.3.0 (optional)
├ Group #2:
│ └ paketo-buildpacks/java@8.1.0
│ └ Group #1:
│ ├ paketo-buildpacks/ca-certificates@3.5.1 (optional)
│ ├ paketo-buildpacks/bellsoft-liberica@9.10.1
│ ├ paketo-buildpacks/syft@1.23.0 (optional)
│ ├ paketo-buildpacks/leiningen@4.4.0 (optional)
│ ├ paketo-buildpacks/clojure-tools@2.6.1 (optional)
│ ├ paketo-buildpacks/gradle@6.10.0 (optional)
│ ├ paketo-buildpacks/maven@6.11.0 (optional)
│ ├ paketo-buildpacks/sbt@6.9.0 (optional)
│ ├ paketo-buildpacks/watchexec@2.7.0 (optional)
│ ├ paketo-buildpacks/executable-jar@6.5.0 (optional)
│ ├ paketo-buildpacks/apache-tomcat@7.9.1 (optional)
│ ├ paketo-buildpacks/apache-tomee@1.4.0 (optional)
│ ├ paketo-buildpacks/liberty@3.1.0 (optional)
│ ├ paketo-buildpacks/dist-zip@5.4.0 (optional)
│ ├ paketo-buildpacks/spring-boot@5.20.0 (optional)
│ ├ paketo-buildpacks/procfile@5.5.0 (optional)
│ ├ paketo-buildpacks/jattach@1.2.0 (optional)
│ ├ paketo-buildpacks/azure-application-insights@5.9.3 (optional)
│ ├ paketo-buildpacks/google-stackdriver@7.0.0 (optional)
│ ├ paketo-buildpacks/datadog@3.1.0 (optional)
│ ├ paketo-buildpacks/java-memory-assistant@1.2.0 (optional)
│ ├ paketo-buildpacks/encrypt-at-rest@4.3.2 (optional)
│ ├ paketo-buildpacks/environment-variables@4.4.0 (optional)
│ └ paketo-buildpacks/image-labels@4.3.0 (optional)
├ Group #3:
│ ├ paketo-buildpacks/go@4.0.0
│ │ └ Group #1:
│ │ ├ paketo-buildpacks/ca-certificates@3.5.1 (optional)
│ │ ├ paketo-buildpacks/watchexec@2.7.0 (optional)
│ │ ├ paketo-buildpacks/go-dist@2.2.2
│ │ ├ paketo-buildpacks/git@1.0.0 (optional)
│ │ ├ paketo-buildpacks/go-mod-vendor@1.0.6
│ │ ├ paketo-buildpacks/go-build@2.0.7
│ │ ├ paketo-buildpacks/procfile@5.5.0 (optional)
│ │ ├ paketo-buildpacks/environment-variables@4.4.0 (optional)
│ │ └ paketo-buildpacks/image-labels@4.3.0 (optional)
│ └ paketo-buildpacks/go@4.0.0
│ └ Group #2:
│ ├ paketo-buildpacks/ca-certificates@3.5.1 (optional)
│ ├ paketo-buildpacks/watchexec@2.7.0 (optional)
│ ├ paketo-buildpacks/go-dist@2.2.2
│ ├ paketo-buildpacks/git@1.0.0 (optional)
│ ├ paketo-buildpacks/go-build@2.0.7
│ ├ paketo-buildpacks/procfile@5.5.0 (optional)
│ ├ paketo-buildpacks/environment-variables@4.4.0 (optional)
│ └ paketo-buildpacks/image-labels@4.3.0 (optional)
└ Group #4:
└ paketo-buildpacks/procfile@5.5.0
POC:
pom.xml detail about native compilation:
Environment:
Execution in OSX M1:
Output in OSX M1:
Note: I followed the notes from the article: https://dashaun.com/posts/paketo-aarch64-builder-spring-boot-3-rc1/