sangkeon / java-opa-wasm

Apache License 2.0
15 stars 2 forks source link

Error loading shared library libgcc_s.so.1: No such file or directory (needed by /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so) #13

Open vicodes opened 1 week ago

vicodes commented 1 week ago

Hi,

I am using this OPA Java implementation with the below versions and configurations and getting below error:

Dependency version : 'io.github.sangkeon:java-opa-wasm:0.2.5' Spring boot Version: 'org.springframework.boot' version '3.2.4' Container base image is : azuljre:17.38.21-alpine-3.16 Java Version: 17

Exception:

[/app/classes/com/test/opa/service/service/OrderEligibilityService.class]: Unsatisfied dependency expressed through constructor parameter 3: Error creating bean with name 'contractOPAClient' defined in file [/app/classes/com/test/opa/service/opa/client/ContractOPAClient.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'opaModule' defined in class path resource [com/test/opa/service/config/OPAConfiguration.class]: Failed to instantiate [io.github.sangkeon.opa.wasm.OPAModule]: Factory method 'opaModule' threw exception with message: /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so: Error loading shared library libgcc_s.so.1: No such file or directory (needed by /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1355) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1192) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) at com.test.opa.service.SystemService.main(SystemService.java:16) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderEligibilityService' defined in file [/app/classes/com/test/opa/service/service/OrderEligibilityService.class]: Unsatisfied dependency expressed through constructor parameter 3: Error creating bean with name 'contractOPAClient' defined in file [/app/classes/com/test/opa/service/opa/client/ContractOPAClient.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'opaModule' defined in class path resource [com/test/opa/service/config/OPAConfiguration.class]: Failed to instantiate [io.github.sangkeon.opa.wasm.OPAModule]: Factory method 'opaModule' threw exception with message: /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so: Error loading shared library libgcc_s.so.1: No such file or directory (needed by /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1355) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1192) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) ... 19 common frames omitted Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'contractOPAClient' defined in file [/app/classes/com/test/opa/service/opa/client/ContractOPAClient.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'opaModule' defined in class path resource [com/test/opa/service/config/OPAConfiguration.class]: Failed to instantiate [io.github.sangkeon.opa.wasm.OPAModule]: Factory method 'opaModule' threw exception with message: /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so: Error loading shared library libgcc_s.so.1: No such file or directory (needed by /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1355) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1192) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) ... 33 common frames omitted Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'opaModule' defined in class path resource [com/test/opa/service/config/OPAConfiguration.class]: Failed to instantiate [io.github.sangkeon.opa.wasm.OPAModule]: Factory method 'opaModule' threw exception with message: /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so: Error loading shared library libgcc_s.so.1: No such file or directory (needed by /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:648) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:485) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1335) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1165) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) ... 47 common frames omitted Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.github.sangkeon.opa.wasm.OPAModule]: Factory method 'opaModule' threw exception with message: /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so: Error loading shared library libgcc_s.so.1: No such file or directory (needed by /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:177) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) ... 61 common frames omitted Caused by: java.lang.UnsatisfiedLinkError: /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so: Error loading shared library libgcc_s.so.1: No such file or directory (needed by /tmp/libwasmtime_jni_0.18.0_linux_x86_6415671850739542715407.so) at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(Unknown Source) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(Unknown Source) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(Unknown Source) at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source) at java.base/java.lang.Runtime.load0(Unknown Source) at java.base/java.lang.System.load(Unknown Source) at io.github.kawamuray.wasmtime.NativeLibraryLoader.load(NativeLibraryLoader.java:46) at io.github.kawamuray.wasmtime.NativeLibraryLoader.init(NativeLibraryLoader.java:25) at io.github.kawamuray.wasmtime.wasi.WasiCtxBuilder.(WasiCtxBuilder.java:16) at io.github.sangkeon.opa.wasm.OPAModule.(OPAModule.java:59) at io.github.sangkeon.opa.wasm.OPAModule.(OPAModule.java:55) at com.test.opa.service.config.OPAConfiguration.opaModule(OPAConfiguration.java:21) at com.test.opa.service.config.OPAConfiguration$$SpringCGLIB$$0.CGLIB$opaModule$0() at com.test.opa.service.config.OPAConfiguration$$SpringCGLIB$$FastClass$$1.invoke() at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) at com.test.opa.service.config.OPAConfiguration$$SpringCGLIB$$0.opaModule() at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) ... 62 common frames omitted ","message":"Application run failed","serviceName":"system-service"}

sangkeon commented 6 days ago

java-opa-wasm depends on wasmtime-java and it only support linux x86_64 and not supports linux x86.

Try to build wasmtime-jni(https://github.com/kawamuray/wasmtime-java/tree/master/wasmtime-jni), you could get so file you required. I have no 32bit x86 linux machine, I cannot build it for you.

I recommend using x86_64 version of linux and 64bit jvm if possible.