[
https://issues.apache.org/jira/browse/IGNITE-14725?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dmitry Pavlov updated IGNITE-14725:
-----------------------------------
Labels: ise (was: )
> Cluster crashes when the client has a higher byte code version than server
> --------------------------------------------------------------------------
>
> Key: IGNITE-14725
> URL: https://issues.apache.org/jira/browse/IGNITE-14725
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 2.10
> Reporter: Surkov Aleksandr
> Assignee: Nikolay Izhikov
> Priority: Blocker
> Labels: ise
> Fix For: 2.11
>
> Attachments: different-java.zip
>
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> When the Java version on the server does not support the byte code that the
> client node sends to server, then some operations(Scan Queries) can lead to
> the fall of the cluster.
> Steps to reproduce the situation:
> 1. Start the server using Java 8(org.apache.ignite.SimpleServer#main)
> 2. Start the client using Java 11(target byte code version 11), which will
> run ScanQuery(org.apache.ignite.ThickClient#main)
> Reproducer is attached. Logs from the server and client are located in the
> errors folder.
> {code:java}
> SEVERE: Failed to process message
> [senderId=53c4266d-8b74-480b-bbf5-670bd94c4192, msg=GridCacheQueryRequest
> [id=13, cacheName=cache_scan, type=SCAN, fields=false, clause=null, limit=0,
> clsName=null, keyValFilter=null, rdc=null, trans=null, pageSize=1024,
> incBackups=false, cancel=false, incMeta=false, all=false, keepBinary=false,
> subjId=53c4266d-8b74-480b-bbf5-670bd94c4192, taskHash=0, part=-1,
> topVer=AffinityTopologyVersion [topVer=2, minorTopVer=1], mvccSnapshot=null,
> flags=0, super=GridCacheIdMessage [cacheId=29045018, super=GridCacheMessage
> [msgId=14, depInfo=GridDeploymentInfoBean
> [clsLdrId=74845d87971-53c4266d-8b74-480b-bbf5-670bd94c4192, depMode=SHARED,
> userVer=0, locDepOwner=false, participants=null],
> lastAffChangedTopVer=AffinityTopologyVersion [topVer=2, minorTopVer=1],
> err=null, skipPrepare=false]]]]
> java.lang.UnsupportedClassVersionError: org/apache/ignite/ThickClient has
> been compiled by a more recent version of the Java Runtime (class file
> version 55.0), this version of the Java Runtime only recognizes class file
> versions up to 52.0
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:635)
> at
> org.apache.ignite.internal.managers.deployment.GridDeploymentClassLoader.findClass(GridDeploymentClassLoader.java:543)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
> at
> org.apache.ignite.internal.managers.deployment.GridDeploymentClassLoader.loadClass(GridDeploymentClassLoader.java:461)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:348)
> at
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9014)
> at
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8945)
> at
> org.apache.ignite.internal.managers.deployment.GridDeployment.deployedClass(GridDeployment.java:460)
> at
> org.apache.ignite.internal.managers.deployment.GridDeploymentPerVersionStore.getDeployment(GridDeploymentPerVersionStore.java:441)
> at
> org.apache.ignite.internal.managers.deployment.GridDeploymentManager.getGlobalDeployment(GridDeploymentManager.java:517)
> at
> org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CacheClassLoader.tryToloadClassFromCacheDep(GridCacheDeploymentManager.java:816)
> at
> org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CacheClassLoader.findClass(GridCacheDeploymentManager.java:783)
> at
> org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CacheClassLoader.loadClass(GridCacheDeploymentManager.java:760)
> at
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9012)
> at
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8957)
> at
> org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:376)
> at
> org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:693)
> at
> org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1641)
> at
> org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1578)
> at
> org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1555)
> at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.readClass(BinaryReaderExImpl.java:383)
> at
> org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.readFixedType(BinaryFieldAccessor.java:907)
> at
> org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:703)
> at
> org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:188)
> at
> org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:932)
> at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1769)
> at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1721)
> at
> org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:319)
> at
> org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:304)
> at
> org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:101)
> at
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80)
> at
> org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10490)
> at
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryRequest.finishUnmarshal(GridCacheQueryRequest.java:383)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.unmarshall(GridCacheIoManager.java:1625)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:586)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:392)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:318)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:109)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:308)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1908)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1529)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.access$5300(GridIoManager.java:242)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager$9.execute(GridIoManager.java:1422)
> at
> org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:55)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)