Niels Basjes created HIVE-29852:
-----------------------------------

             Summary: Published docker image fails with 
UnsupportedClassVersionError on commandline hive command.
                 Key: HIVE-29852
                 URL: https://issues.apache.org/jira/browse/HIVE-29852
             Project: Hive
          Issue Type: Bug
    Affects Versions: 4.2.1, 4.2.0
            Reporter: Niels Basjes


On a Linux machine (I used UbuntuĀ  24.04) with docker:


{code:java}
docker run --rm --name hive-server -e SERVICE_NAME=hiveserver2 
apache/hive:4.2.1 {code}

Then after it has started in a separate terminal do a simple commandline query:


{code:java}
docker exec "hive-server" hive -u 'jdbc:hive2://localhost:10000/' -e "show 
databases;" {code}

The output of this command:


{code:java}
SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in 
[jar:file:/opt/hive/lib/log4j-slf4j-impl-2.24.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:
 Found binding in 
[jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:
 See http://www.slf4j.org/codes.html#multiple_bindings for an 
explanation.SLF4J: Actual binding is of type 
[org.apache.logging.slf4j.Log4jLoggerFactory]SLF4J: Class path contains 
multiple SLF4J bindings.SLF4J: Found binding in 
[jar:file:/opt/hive/lib/log4j-slf4j-impl-2.24.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:
 Found binding in 
[jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:
 See http://www.slf4j.org/codes.html#multiple_bindings for an 
explanation.SLF4J: Actual binding is of type 
[org.apache.logging.slf4j.Log4jLoggerFactory]Exception in thread "main" 
java.lang.IllegalStateException: Unable to create a terminal   at 
org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:394) at 
org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:362)   at 
org.apache.hive.beeline.BeeLine.buildTerminal(BeeLine.java:1554)     at 
org.apache.hive.beeline.BeeLine.initializeLineReader(BeeLine.java:1470)      at 
org.apache.hive.beeline.BeeLine.begin(BeeLine.java:1125)     at 
org.apache.hive.beeline.BeeLine.begin(BeeLine.java:1101)     at 
org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:567)   at 
org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:561)   at 
org.apache.hive.beeline.BeeLine.main(BeeLine.java:544)       at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)   at 
org.apache.hadoop.util.RunJar.run(RunJar.java:330)   at 
org.apache.hadoop.util.RunJar.main(RunJar.java:245)  Suppressed: 
java.lang.UnsupportedClassVersionError: Preview features are not enabled for 
org/jline/terminal/impl/ffm/FfmTerminalProvider (class file version 65.65535). 
Try running with '--enable-preview'             at 
java.base/java.lang.ClassLoader.defineClass1(Native Method)          at 
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)           at 
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
            at 
java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
            at 
java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
             at 
java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
                at 
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
              at 
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
           at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:580)   
           at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)   
           at 
org.jline.terminal.spi.TerminalProvider.load(TerminalProvider.java:68)          
     at 
org.jline.terminal.TerminalBuilder.checkProvider(TerminalBuilder.java:665)      
     at 
org.jline.terminal.TerminalBuilder.getProviders(TerminalBuilder.java:630)       
     at org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:395)    
     ... 12 more
 {code}

On docker image version 4.1.0 this does work as expected.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to