[
https://issues.apache.org/jira/browse/IGNITE-14725?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Surkov Aleksandr updated IGNITE-14725:
--------------------------------------
Description:
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}
was:
When the version of byte code on server(1.8) is older than on the client(11),
then some operations can lead to the fall of the cluster.
Reproducer is attached. Logs from the server and client are located in the
_errors_ folder.
Steps to reproduce the situation:
1. Start the server using Java 8(target byte code version
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)
{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}
> 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
> Priority: Major
> Attachments: different-java.zip
>
>
> 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.3.4#803005)