
IncompatibleClassChangeError when connecting to the Java agent
MCUmbrella opened this issue · 1 comments
Description
Connecting to the agent causes IncompatibleClassChangeError.
Reproduction Steps
- Download the server and Java agent
- Run the server, attach Spark at startup
- Connect to the agent
- See the error
Expected Behaviour
Connected successfully
Platform Information
- Minecraft Version: Minecraft 1.16.5
- Platform Type: Server
- Platform Brand: Mohist (implementing Paper 1.16.5-R0.1-SNAPSHOT, Forge 36.2.42)
- Platform Version: Build 1238
Spark Version
v1.10.124
Logs and Configs
Server launch command:
java -javaagent:spark-1.10.124-standalone-agent.jar=port=2025 -jar mohist-1.16.5-1238-server.jar
Server output:
[spark] Loading standalone agent... (premain)
SLF4J: Class path contains multiple SLF4J providers.
SLF4J: Found provider [org.apache.logging.slf4j.SLF4JServiceProvider@243c4f91]
SLF4J: Found provider [org.slf4j.simple.SimpleServiceProvider@291ae]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual provider is of type [org.apache.logging.slf4j.SLF4JServiceProvider@243c4f91]
[09:59:53 INFO]: No detected/configured IoServiceFactoryFactory; using Nio2ServiceFactoryFactory
[⚡] SSH Server started on port 2025
[⚡] Connect using: ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2025 spark@localhost
[⚡] When prompted, enter the password: BTUt0P65bOlwRubJdOmZKlVs5oF3fgQH
[10:00:00 INFO]: ModLauncher running: args [--gameDir, ., --launchTarget, fmlserver, --fml.mohistVersion, 1238, --fml.forgeVersion, 36.2.42, --fml.mcpVersion, 20210115.111550, --fml.mcVersion, 1.16.5, --fml.forgeGroup, com.mohistmc]
[10:00:00 INFO]: ModLauncher mohist-8.1.3 starting: java version 11.0.15 by Private Build
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by cpw.mods.modlauncher.SecureJarHandler (file:/home/mcumbrella/minimine8/libraries/cpw/mods/modlauncher/mohist-8.1.3/modlauncher-mohist-8.1.3.jar) to field java.util.jar.Manifest.jv
WARNING: Please consider reporting this to the maintainers of cpw.mods.modlauncher.SecureJarHandler
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
...
[10:00:20 INFO]: Session spark@/127.0.0.1:38546 authenticated
[10:00:21 WARN]: handleShell(ChannelSession[id=0, recipient=0]-ServerSessionImpl[spark@/127.0.0.1:38546]) Failed (IncompatibleClassChangeError) to create shell: Class org.jline.builtins.ssh.ShellFactoryImpl does not implement the requested interface org.apache.sshd.server.shell.ShellFactory
java.lang.IncompatibleClassChangeError: Class org.jline.builtins.ssh.ShellFactoryImpl does not implement the requested interface org.apache.sshd.server.shell.ShellFactory
at org.apache.sshd.server.channel.ChannelSession.handleShellParsed(ChannelSession.java:557) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.server.channel.ChannelSession.handleShell(ChannelSession.java:542) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.server.channel.ChannelSession.handleInternalRequest(ChannelSession.java:310) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.channel.AbstractChannel.handleUnknownChannelRequest(AbstractChannel.java:338) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.channel.AbstractChannel.handleChannelRequest(AbstractChannel.java:325) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.channel.AbstractChannel.handleRequest(AbstractChannel.java:290) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.session.helpers.AbstractConnectionService.channelRequest(AbstractConnectionService.java:660) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.session.helpers.AbstractConnectionService.process(AbstractConnectionService.java:463) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.session.helpers.CurrentService.process(CurrentService.java:109) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:625) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.session.helpers.AbstractSession.lambda$handleMessage$0(AbstractSession.java:546) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.util.threads.ThreadUtils.runAsInternal(ThreadUtils.java:68) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:545) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1729) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:506) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:64) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:409) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:382) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:377) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38) ~[spark-1.10.124-standalone-agent.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37) ~[spark-1.10.124-standalone-agent.jar:?]
at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127) ~[?:?]
at sun.nio.ch.Invoker.invokeDirect(Invoker.java:158) ~[?:?]
at sun.nio.ch.UnixAsynchronousSocketChannelImpl.implRead(UnixAsynchronousSocketChannelImpl.java:562) ~[?:?]
at sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:277) ~[?:?]
at sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:298) ~[?:?]
at org.apache.sshd.common.io.nio2.Nio2Session.doReadCycle(Nio2Session.java:494) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:411) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:382) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:377) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38) ~[spark-1.10.124-standalone-agent.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37) ~[spark-1.10.124-standalone-agent.jar:?]
at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127) ~[?:?]
at sun.nio.ch.Invoker.invokeDirect(Invoker.java:158) ~[?:?]
at sun.nio.ch.UnixAsynchronousSocketChannelImpl.implRead(UnixAsynchronousSocketChannelImpl.java:562) ~[?:?]
at sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:277) ~[?:?]
at sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:298) ~[?:?]
at org.apache.sshd.common.io.nio2.Nio2Session.doReadCycle(Nio2Session.java:494) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:411) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:382) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:377) ~[spark-1.10.124-standalone-agent.jar:?]
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38) ~[spark-1.10.124-standalone-agent.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37) ~[spark-1.10.124-standalone-agent.jar:?]
at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127) ~[?:?]
at sun.nio.ch.Invoker$2.run(Invoker.java:219) ~[?:?]
at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at java.lang.Thread.run(Thread.java:829) ~[?:?]
SSH client output:
$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2025 spark@localhost
Warning: Permanently added '[localhost]:2025' (ECDSA) to the list of known hosts.
Password authentication
Password:
shell request failed on channel 0
Extra Details
Tested on Kubuntu 21.10, Oracle Linux 8.10, OpenJDK 11.0.15, Zing 24.01.0.0+4(JDK 11.0.22+7-LTS), got the same error
Now the server prints another error message when the SSH client logs in:
[19:30:55 INFO]: generateKeyPair(EC) generating host key=nistp521
[19:31:08 INFO]: Session spark@/127.0.0.1:56494 authenticated
[19:31:08 ERROR]: Error occured while executing shell
java.lang.NoSuchMethodError: 'void org.jline.terminal.impl.AbstractTerminal.setOnClose(java.lang.Runnable)'
at me.lucko.spark.standalone.remote.AbstractRemoteInterface.processSession(AbstractRemoteInterface.java:68) ~[spark-1.10.126-standalone-agent.jar:?]
at me.lucko.spark.standalone.remote.SshRemoteInterface.lambda$new$2(SshRemoteInterface.java:51) ~[spark-1.10.126-standalone-agent.jar:?]
at me.lucko.spark.lib.jline.builtins.ssh.ShellFactoryImpl$ShellImpl.run(ShellFactoryImpl.java:201) ~[spark-1.10.126-standalone-agent.jar:?]
at me.lucko.spark.lib.jline.builtins.ssh.ShellFactoryImpl$ShellImpl.lambda$start$0(ShellFactoryImpl.java:83) ~[spark-1.10.126-standalone-agent.jar:?]
at java.lang.Thread.run(Thread.java:829) ~[?:?]
The SSH client hung after entering password:
$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2025 spark@localhost
Warning: Permanently added '[localhost]:2025' (ECDSA) to the list of known hosts.
Password authentication
Password: