jabrena / 101-docker

A microservice architecture to be evaluated with Spring Boot applications & GraalVM native capabilities
https://jabrena.github.io/101-docker/
Apache License 2.0
2 stars 1 forks source link

Testing Native features from Spring Boot 3.0 on OSX M1 with the help of Dashaun buildpack #57

Open jabrena opened 1 year ago

jabrena commented 1 year ago

POC:

pom.xml detail about native compilation:

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <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>
                        -->

                    </image>
                </configuration>
            </plugin>

Environment:

uname -a                            
Darwin Juans-MacBook-Pro.local 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:20 PDT 2021; root:xnu-7195.141.6~3/RELEASE_ARM64_T8101 arm64

docker version
Client:
 Cloud integration: v1.0.29
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.7
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:01:18 2022
 OS/Arch:           darwin/arm64
 Context:           default
 Experimental:      true

Server: Docker Desktop 4.14.0 (91374)
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.7
  Git commit:       3056208
  Built:            Tue Oct 25 17:59:41 2022
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.9
  GitCommit:        1c90a442489720eec95342e1789ee8a5e1b9536f
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Execution in OSX M1:

mvn -Pnative spring-boot:build-image

Output in OSX M1:

[INFO] --- spring-boot-maven-plugin:3.0.0-RC2:build-image (default-cli) @ demo ---
[INFO] Building image 'docker.io/library/demo:0.0.1-SNAPSHOT'
[INFO] 
[INFO]  > Pulling builder image 'docker.io/dashaun/java-native-builder-multiarch:7.37.0' 100%
[INFO]  > Pulled builder image 'dashaun/java-native-builder-multiarch@sha256:aa747818e2697f02bfc506c1cd94707141e20e98ac4992407076317d358e1b80'
[INFO]  > Pulling run image 'docker.io/dashaun/stack-run:focal' 100%
[INFO]  > Pulled run image 'dashaun/stack-run@sha256:6f297a674961471c317e8bb163465862607b7a0737347a3de17aeb18d037ba1a'
[INFO]  > Executing lifecycle version v0.15.0
[INFO]  > Using build cache volume 'pack-cache-5cbe5692dbc4.build'
[INFO] 
[INFO]  > Running creator
[INFO]     [creator]     ===> ANALYZING
[INFO]     [creator]     Previous image with name "docker.io/library/demo:0.0.1-SNAPSHOT" not found
[INFO]     [creator]     ===> DETECTING
[INFO]     [creator]     6 of 14 buildpacks participating
[INFO]     [creator]     paketo-buildpacks/ca-certificates-arm64   3.4.0
[INFO]     [creator]     paketo-buildpacks/bellsoft-liberica-arm64 9.10.0
[INFO]     [creator]     paketo-buildpacks/syft-arm64              1.22.0
[INFO]     [creator]     paketo-buildpacks/executable-jar-arm64    6.5.0
[INFO]     [creator]     paketo-buildpacks/spring-boot-arm64       5.20.0
[INFO]     [creator]     paketo-buildpacks/native-image-arm64      5.6.0
[INFO]     [creator]     ===> RESTORING
[INFO]     [creator]     ===> BUILDING
[INFO]     [creator]     
[INFO]     [creator]     Paketo Buildpack for CA Certificates 3.4.0
[INFO]     [creator]       https://github.com/paketo-buildpacks/ca-certificates
[INFO]     [creator]       Launch Helper: Contributing to layer
[INFO]     [creator]         Creating /layers/paketo-buildpacks_ca-certificates-arm64/helper/exec.d/ca-certificates-helper
[INFO]     [creator]     
[INFO]     [creator]     Paketo Buildpack for BellSoft Liberica 9.10.0
[INFO]     [creator]       https://github.com/paketo-buildpacks/bellsoft-liberica
[INFO]     [creator]       Build Configuration:
[INFO]     [creator]         $BP_JVM_JLINK_ARGS           --no-man-pages --no-header-files --strip-debug --compress=1  configure custom link arguments (--output must be omitted)
[INFO]     [creator]         $BP_JVM_JLINK_ENABLED        false                                                        enables running jlink tool to generate custom JRE
[INFO]     [creator]         $BP_JVM_TYPE                 JRE                                                          the JVM type - JDK or JRE
[INFO]     [creator]         $BP_JVM_VERSION              11                                                           the Java version
[INFO]     [creator]       Launch Configuration:
[INFO]     [creator]         $BPL_DEBUG_ENABLED           false                                                        enables Java remote debugging support
[INFO]     [creator]         $BPL_DEBUG_PORT              8000                                                         configure the remote debugging port
[INFO]     [creator]         $BPL_DEBUG_SUSPEND           false                                                        configure whether to suspend execution until a debugger has attached
[INFO]     [creator]         $BPL_HEAP_DUMP_PATH                                                                       write heap dumps on error to this path
[INFO]     [creator]         $BPL_JAVA_NMT_ENABLED        true                                                         enables Java Native Memory Tracking (NMT)
[INFO]     [creator]         $BPL_JAVA_NMT_LEVEL          summary                                                      configure level of NMT, summary or detail
[INFO]     [creator]         $BPL_JFR_ARGS                                                                             configure custom Java Flight Recording (JFR) arguments
[INFO]     [creator]         $BPL_JFR_ENABLED             false                                                        enables Java Flight Recording (JFR)
[INFO]     [creator]         $BPL_JMX_ENABLED             false                                                        enables Java Management Extensions (JMX)
[INFO]     [creator]         $BPL_JMX_PORT                5000                                                         configure the JMX port
[INFO]     [creator]         $BPL_JVM_HEAD_ROOM           0                                                            the headroom in memory calculation
[INFO]     [creator]         $BPL_JVM_LOADED_CLASS_COUNT  35% of classes                                               the number of loaded classes in memory calculation
[INFO]     [creator]         $BPL_JVM_THREAD_COUNT        250                                                          the number of threads in memory calculation
[INFO]     [creator]         $JAVA_TOOL_OPTIONS                                                                        the JVM launch flags
[INFO]     [creator]         Using Java version 19 extracted from MANIFEST.MF
[INFO]     [creator]     
[INFO]     [creator]     Paketo Buildpack for BellSoft Liberica 9.10.0
[INFO]     [creator]       unable to find dependency
[INFO]     [creator]       no valid dependencies for native-image-svm, 19, and io.dashaun.stack.focal.arm64 in [(jdk, 8.0.352, [io.buildpacks.stacks.bionic io.paketo.stacks.tiny *]) (jre, 8.0.352, [io.buildpacks.stacks.bionic io.paketo.stacks.tiny *]) (jdk, 11.0.17, [io.buildpacks.stacks.bionic io.paketo.stacks.tiny *]) (jre, 11.0.17, [io.buildpacks.stacks.bionic io.paketo.stacks.tiny *]) (native-image-svm, 11.0.17, [io.buildpacks.stacks.bionic io.paketo.stacks.tiny *]) (jdk, 17.0.5, [io.buildpacks.stacks.bionic io.paketo.stacks.tiny *]) (jre, 17.0.5, [io.buildpacks.stacks.bionic io.paketo.stacks.tiny *]) (native-image-svm, 17.0.5, [io.buildpacks.stacks.bionic io.paketo.stacks.tiny *]) (jdk, 19.0.1, [io.buildpacks.stacks.bionic io.paketo.stacks.tiny *]) (jre, 19.0.1, [io.buildpacks.stacks.bionic io.paketo.stacks.tiny *])]
[INFO]     [creator]     ERROR: failed to build: exit status 1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  30.967 s
[INFO] Finished at: 2022-11-12T18:36:41+01:00
[INFO] ------------------------------------------------------------------------

Note: I followed the notes from the article: https://dashaun.com/posts/paketo-aarch64-builder-spring-boot-3-rc1/

goafabric commented 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>
jabrena commented 1 year ago

I will try today with your configuration, many thanks for sharing

goafabric commented 1 year ago

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']
}
jabrena commented 1 year ago

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'

jabrena commented 1 year ago

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

ddobrin commented 1 year ago

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.

dashaun commented 1 year ago

First, wow, and thank you everyone for the great feedback. I'm working as quickly as possible to make this builder work as expected!

jabrena commented 1 year ago

As a summary:

From my side, happy to help

ddobrin commented 1 year ago

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

jabrena commented 1 year ago

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>
jabrena commented 1 year ago

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.

goafabric commented 1 year ago

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

jabrena commented 1 year ago

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

goafabric commented 1 year ago

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

goafabric commented 1 year ago

to shorten that roundtrips i higly recommend to also install graalvm locally because that is much faster than doing a paketo docker build

jabrena commented 1 year ago

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 😅

jabrena commented 1 year ago

Currently, UPX is not working fine for OSX M1:

dashaun commented 1 year ago

@jabrena @goafabric

Thank you for using my stuff and sharing feedback.

I pushed out a new version.

  1. It uses Ubuntu Jammy and the stack is closer to tiny than base so your images should be much smaller.
  2. It has UPX support working properly for ARM64
jabrena commented 1 year ago

@dashaun, count with my test tomorrow

jabrena commented 1 year ago

I am receiving:

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

dashaun commented 1 year ago

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

jabrena commented 1 year ago

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