[ 
https://issues.apache.org/jira/browse/IGNITE-24559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18032426#comment-18032426
 ] 

Filipp Shergalis commented on IGNITE-24559:
-------------------------------------------

[~ascherbakov]

Encountered the same issue in QA tests that accidentally restarted node with 
Java 11 instead of Java 17. Caused by *ByteBuffer* in ScaleCube's 
{*}GetMetadataResponse{*}:

 
{code:java}
final class GetMetadataResponse implements Externalizable {

  private static final long serialVersionUID = 1L;

  /** Target member with metadata. */
  private Member member;

  /** Cluster member metadata. */
  private ByteBuffer metadata;{code}
This causes *DefaultUserObjectMarshaller* to load java internal classes 
descriptors when deserialising corresponding *ScaleCubeMessage*

 

> The cluster fails to init if nodes are running on different JDK versions
> ------------------------------------------------------------------------
>
>                 Key: IGNITE-24559
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24559
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Alexey Scherbakov
>            Priority: Major
>              Labels: ignite-3
>
> # Start node1 using java-21
>  # Start node2 using java-11
>  # Init cluster from CLI
> Actual behavior: 
> Init fails with exceptions
> {noformat}
> 2025-02-18 15:47:37:240 +0000 
> [WARNING][node2-srv-worker-18][DefaultChannelPipeline] An exceptionCaught() 
> event was fired, and it reached at the tail of the pipeline. It usually means 
> the last handler in the pipeline did not handle the exception.
> io.netty.handler.codec.DecoderException: 
> org.apache.ignite.internal.network.serialization.SerializationException: 
> Class java.lang.foreign.MemorySegment is not found
>               at 
> io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:500)
>               at 
> io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
>               at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
>               at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
>               at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
>               at 
> io.netty.handler.flush.FlushConsolidationHandler.channelRead(FlushConsolidationHandler.java:152)
>               at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
>               at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
>               at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
>               at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357)
>               at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
>               at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
>               at 
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868)
>               at 
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
>               at 
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796)
>               at 
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732)
>               at 
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658)
>               at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
>               at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998)
>               at 
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
>               at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>               at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: 
> org.apache.ignite.internal.network.serialization.SerializationException: 
> Class java.lang.foreign.MemorySegment is not found{noformat}
> Expected behavior:
> Init finishes



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

Reply via email to