Joust Native Library Missing on Linux 4.1.8 Jar?

On Dremio 4.1.8. I’ve been getting this error about a missing joust native library. I dug into the Jar’s, and there is only a native .so file for osx_64 in dremio-ce-sabot-joust-cpp-4.1.8-202003120636020140-9c2a6b13.jar, the linux_64 directory is empty.

I downloaded Dremio 4.3.1 and checked it’s dremio-ce-sabot-joust-cpp-4.3.1 jar file, and the file exists! This looks like a bug in the 4.1.8 binary. We just got done upgrading to 4.1.8, so assuming this is the issue, could you push an updated jar for 4.1.8 to your maven repo?

ERROR com.dremio.joust.geo.S2Geo - Failure while loading joust native library.
java.io.IOException: Couldn’t load library library joust
at org.scijava.nativelib.NativeLoader.loadLibrary(NativeLoader.java:141) ~[native-lib-loader-2.3.4.jar:2.3.4]
at com.dremio.joust.geo.S2Geo.(S2Geo.java:39) ~[dremio-ce-sabot-joust-java-4.1.8-202003120636020140-9c2a6b13.jar:4.1.8-202003120636020140-9c2a6b13]
at com.dremio.joust.geo.DistanceRulesFactory.getRules(DistanceRulesFactory.java:41) [dremio-ce-sabot-joust-java-4.1.8-202003120636020140-9c2a6b13.jar:4.1.8-202003120636020140-9c2a6b13]
at com.dremio.exec.ops.QueryContext.lambda$getInjectedRules$0(QueryContext.java:257) [dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267) ~[na:1.8.0_101]
at java.util.Iterator.forEachRemaining(Iterator.java:116) ~[na:1.8.0_101]
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[na:1.8.0_101]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_101]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_101]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_101]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_101]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[na:1.8.0_101]
at com.dremio.exec.ops.QueryContext.getInjectedRules(QueryContext.java:258) [dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.planner.sql.handlers.SqlHandlerConfig.getRules(SqlHandlerConfig.java:61) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.planner.sql.handlers.PrelTransformer.transform(PrelTransformer.java:410) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.planner.sql.handlers.PrelTransformer.toConvertibleRelRoot(PrelTransformer.java:791) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.planner.sql.handlers.PrelTransformer.convertToRelRoot(PrelTransformer.java:868) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.planner.sql.handlers.PrelTransformer.convertToRel(PrelTransformer.java:895) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.planner.sql.handlers.PrelTransformer.validateAndConvert(PrelTransformer.java:175) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.planner.sql.handlers.PrelTransformer.validateAndConvert(PrelTransformer.java:169) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.planner.sql.handlers.query.NormalHandler.getPlan(NormalHandler.java:43) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.planner.sql.handlers.commands.HandlerToExec.plan(HandlerToExec.java:70) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.work.foreman.AttemptManager.plan(AttemptManager.java:415) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.exec.work.foreman.AttemptManager.lambda$run$0(AttemptManager.java:324) ~[dremio-sabot-kernel-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at com.dremio.service.commandpool.CommandWrapper.run(CommandWrapper.java:62) ~[dremio-services-commandpool-4.1.8.1-SNAPSHOT.jar:4.1.8.1-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_101]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_101]
Caused by: java.lang.UnsatisfiedLinkError: no joust in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) ~[na:1.8.0_101]
at java.lang.Runtime.loadLibrary0(Runtime.java:870) ~[na:1.8.0_101]
at java.lang.System.loadLibrary(System.java:1122) ~[na:1.8.0_101]
at org.scijava.nativelib.NativeLoader.loadLibrary(NativeLoader.java:136) ~[native-lib-loader-2.3.4.jar:2.3.4]
… 27 common frames omitted