[ 
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)

Reply via email to