[
https://issues.apache.org/jira/browse/TINKERPOP-2584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17367194#comment-17367194
]
Stephen Mallette commented on TINKERPOP-2584:
---------------------------------------------
i can't find where but i believe this has been reported before - i don't recall
if there was any resolution other than to say that the issue is likely related
to jansi's use of some JNI/native C stuff that maybe just isn't compatible with
these lighter environments. i looked into it in more detail this today and
learned that there is an issue with alpine environments and older versions of
jansi:
https://github.com/fusesource/jansi/issues/58
Maybe not quite the same environment described here, but related perhaps? I
mention Alpine specifically because there is some intention in the community to
support that more lightweight environment - some discussion here:
TINKERPOP-2575
So, I figured we could either upgrade jansi as that github issue mentions it is
fixed in 1.16 (or perhaps make coloring optional so that the dependency was
optional), but unfortunately we don't depend on jansi directly - it is packaged
by jline2 which pins it to the very version that the issue reports as a problem:
https://github.com/jline/jline2/blob/jline-2.14.6/pom.xml#L122
and it looks as though jline2 is no longer being maintained........development
has moved to jline3:
https://github.com/jline/jline3
where it appears a newer version of jansi is in use (that presumably fixes the
problem we're dealing with here). Of course, we don't depend on jline directly
- it is a dependency of groovy which is pinned to 2.x and will stay there until
TINKERPOP-2526 can be resolved, which i've lost most faith in ever seeing
settled to the point where i think we may have to write our own shell and drop
the groovy based one.
So, i think the summary here is, I don't expect to see the Gremlin Console
working in this environment in any way that is "easy". I will leave this open
for now however as I think it interrelates with other discussions we are having
around docker and more lightweight environments, but I'm not sure on how/when
it will ultimately be resolved. Sorry, I can't think of a better answer right
now.
> Exception running gremlin console on ppc64le hardware
> -----------------------------------------------------
>
> Key: TINKERPOP-2584
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2584
> Project: TinkerPop
> Issue Type: Bug
> Components: console
> Affects Versions: 3.5.0, 3.4.11
> Environment: Tested on Redhat 7.9 and Redhat 8.4 on ppc64le
> environment using 3.4.11 and 3.5.0
> Reporter: Aaron Coady
> Priority: Major
>
> Running gremlin console on a ppc64le environment results in an
> UnsatisfiedLinkError
> {code:java}
> // bash-4.4$ ./gremlin.sh Exception in thread "main"
> java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in
> java.library.path, /tmp/libjansi-64-6426223996152989396.so:
> /tmp/libjansi-64-6426223996152989396.so: cannot open shared object file: No
> such file or directory (Possible cause: can't load AMD 64-bit .so on a Power
> PC 64 LE-bit platform)]{code}
> {code:java}
> at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182)
> at org.fusesource.hawtjni.runtime.Library.load(Library.java:140)
> at org.fusesource.jansi.internal.CLibrary.<clinit>(CLibrary.java:42)
> at
> org.fusesource.jansi.AnsiConsole.wrapOutputStream(AnsiConsole.java:48)
> at org.fusesource.jansi.AnsiConsole.<clinit>(AnsiConsole.java:38)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:348)
> at
> org.codehaus.groovy.runtime.callsite.CallSiteArray$1.run(CallSiteArray.java:67)
> at
> org.codehaus.groovy.runtime.callsite.CallSiteArray$1.run(CallSiteArray.java:64)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallStaticSite(CallSiteArray.java:64)
> at
> org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:161)
> at
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
> at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
> at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:119)
> at
> org.apache.tinkerpop.gremlin.console.Colorizer.installAnsi(Colorizer.groovy:32)
> at
> org.apache.tinkerpop.gremlin.console.Colorizer$installAnsi.call(Unknown
> Source)
> at
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
> at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
> at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:119)
> at
> org.apache.tinkerpop.gremlin.console.Console.<clinit>(Console.groovy:61)
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)