[ 
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)

Reply via email to