[
https://issues.apache.org/jira/browse/IGNITE-8547?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16482769#comment-16482769
]
ASF GitHub Bot commented on IGNITE-8547:
----------------------------------------
GitHub user alamar opened a pull request:
https://github.com/apache/ignite/pull/4042
IGNITE-8547 Use JVM serialization for enum values with OptimizedMarshaller
.., avoid deadlock.
Also IGNITE-5087 Enum comparison fails after marshal-unmarshal with
BinaryMarshaller.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/gridgain/apache-ignite ignite-8547
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/ignite/pull/4042.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #4042
----
commit beb2409cfe2045789443d47de735d879961d371e
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-23T09:26:06Z
GG-12352: Forcible node drop makes cluster instable in some cases.
Disable forcible node drop by default.
commit 802f18fc250cbae8959192c78bb28dc525ed3cf7
Author: AMRepo <andrey.mashenkov@...>
Date: 2017-06-22T21:24:57Z
Fix compilation
commit 39d2dec85a3c571dfdb1cd6189b53ae2413a5d22
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-23T10:41:30Z
Merge branch 'ignite-1.7.12-b2' into ignite-1.8.8
# Conflicts:
# modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
#
modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
#
modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
#
modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessage.java
#
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
#
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
#
modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
#
modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskThreadContextKey.java
#
modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
#
modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
commit 96445156143b46b664f785b353463dd435ac342d
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-23T10:42:44Z
Merge remote-tracking branch 'origin/ignite-1.8.8' into ignite-1.8.8
# Conflicts:
#
modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
commit 7c569f15a80ab9301c21011d2c9159e311e46cef
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-23T10:48:10Z
Merge remote-tracking branch 'origin/ignite-1.8.7.p1' into ignite-1.8.8
commit a64339449be8fa602cab3f2868c5f74004a7b747
Author: Igor Sapego <isapego@...>
Date: 2017-06-23T13:57:49Z
IGNITE-4370: Implemented writing of batch of parameters for ODBC.
(cherry picked from commit c10be5780589cc84e7929e234e4411d515166e0b)
(cherry picked from commit d268b32cb252a5f06887d2b803d27ddc20ded95f)
commit cbe5df51c423568782e31245c7f1aa06c9ba3be1
Author: Igor Sapego <isapego@...>
Date: 2017-06-13T16:47:00Z
IGNITE-5478: ODBC: SQLNumParams now returns number of required parameters.
(cherry picked from commit b1c56a1)
(cherry picked from commit 4a8f295)
commit 9ad513e68b89e907f7db36a3f3f0daca0e5986e6
Author: Igor Sapego <isapego@...>
Date: 2017-06-23T14:06:40Z
IGNITE-5478: Fix for cherry pick
(cherry picked from commit a2a4ec1ee9794cb542f146a07c6c67002cad444e)
commit bfec212b1ece0e9e791de6dfb642324834fa77ca
Author: AMRepo <andrey.mashenkov@...>
Date: 2017-06-22T21:24:57Z
Partially reverted GG-12352.
commit 1abc14fdc4e39d8245c3e50fb2cf3d183df08021
Author: AMRepo <andrey.mashenkov@...>
Date: 2017-06-22T21:24:57Z
Partially reverted GG-12352.
commit cb95f7aa729fda19b4c3b7a5ada903a1e1bc2eab
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-23T16:08:00Z
Merge remote-tracking branch 'origin/ignite-1.7.12' into ignite-1.7.12
commit f59007f2c1221d8dd22abb0a9692b4abb31e87ad
Author: AMRepo <andrey.mashenkov@...>
Date: 2017-06-22T21:24:57Z
Partially reverted GG-12352.
commit 2c7d3c03cd36aee4f0985e674f550a62fc64d2db
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-23T17:11:00Z
Merge branch 'ignite-1.8.8' into ignite-1.9.4
# Conflicts:
#
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloaderAdapter.java
#
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
#
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
#
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java
#
modules/core/src/main/java/org/apache/ignite/internal/processors/security/SecurityUtils.java
#
modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
#
modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
#
modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
# modules/platforms/cpp/odbc-test/src/application_data_buffer_test.cpp
# modules/platforms/cpp/odbc-test/src/queries_test.cpp
# modules/platforms/cpp/odbc/include/ignite/odbc/common_types.h
# modules/platforms/cpp/odbc/include/ignite/odbc/statement.h
# modules/platforms/cpp/odbc/src/config/connection_info.cpp
# modules/platforms/cpp/odbc/src/diagnostic/diagnostic_record.cpp
# modules/platforms/cpp/odbc/src/odbc.cpp
# modules/platforms/cpp/odbc/src/query/batch_query.cpp
# modules/platforms/cpp/odbc/src/statement.cpp
commit 3e2a8dd7497cc21f9ad176213bcefa35869eb198
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-26T09:27:58Z
Minor fix for GG-12197 "Ignore events for discarded update in CLOCK mode".
commit 03e507f5021f3aee9728e5cbcbc85ed731e5e538
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-26T16:37:27Z
Fixed tests.
commit 17b7586a73f6b1179612d601caa38d41924a4fac
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-26T16:38:39Z
Merge branch 'ignite-1.8.8' into ignite-1.9.4
commit ad6add47b29caf44dadfe2e32acd4d245ee256ab
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-27T07:34:42Z
Fixed tests.
commit 527c71805ac502290a20c631c8d4484f011f77c2
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-27T07:57:56Z
Merge branch 'ignite-1.8.8' into ignite-1.9.4
commit 897f4c00c4945eda3f9f4a41d064ded2f6f27ccc
Author: sboikov <sboikov@...>
Date: 2017-06-27T09:55:11Z
gg-12133 Deadlock for metadata update from GridCacheMapEntry.innerUpdate
commit 90e96db22dbb7a341bfe1a8130b6dc16d5d8ae81
Author: agura <agura@...>
Date: 2017-06-27T11:43:06Z
Compilation is fixed.
commit 3f33a902ed0d0a3e27be548209fe8e7933da57a9
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-26T09:27:58Z
Minor fix for GG-12197 "Ignore events for discarded update in CLOCK mode".
commit 3668b91817c1da7958cc3d7c4dddf890a2237772
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-27T07:34:42Z
Partially reverted GG-12352.
commit 172f41c489c0ca5b7613163cd325b0c01d5b28b1
Author: sboikov <sboikov@...>
Date: 2017-06-27T09:55:11Z
gg-12133 Deadlock for metadata update from GridCacheMapEntry.innerUpdate
(cherry picked from commit 897f4c0)
commit 0521b7780756788d92bfa35ef00f56b5bb01367d
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-27T17:43:07Z
GG-12370: Fixed massive NODE_FAILED events lead to excessive momentary
memory consumption.
commit 6abe5bf5bd732bf9f79df577e159243520dd5c0b
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-28T06:47:45Z
Fixed compilation.
commit 6b54f991c13efb3630527a3010c4f90105a4fc76
Author: agura <agura@...>
Date: 2017-06-21T16:09:37Z
ignite-5574 For offheap_tiered cache first try read value from offheap in
order to avoid redundant synchronization on entry
commit 7d5217260b293b7224340349b5e44792999600f3
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-28T08:47:21Z
Rethrow handshake exceptions as it done for ConnectionException.
commit 81cdea40743131cac9dae49150c1038073595f7e
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date: 2017-06-28T10:00:30Z
Fixed tests.
commit 473abcafca568c7c898b0b1ae91fe964084fdf43
Author: agura <agura@...>
Date: 2017-06-28T11:49:49Z
Tests fixed
commit 4f383ae772631987c3f4ac29bb654b4811fbc407
Author: agura <agura@...>
Date: 2017-06-28T11:49:49Z
Tests fixed.
----
> Deserialization of Enum values as anonymous classes may cause deadlock
> ----------------------------------------------------------------------
>
> Key: IGNITE-8547
> URL: https://issues.apache.org/jira/browse/IGNITE-8547
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 1.9
> Reporter: Ilya Kasnacheev
> Assignee: Ilya Kasnacheev
> Priority: Major
> Attachments: MarshallerDeadlockMultiJvmTest.java
>
>
> Due to the following problem:
> {code}
> package jvmtest;
> import java.util.ArrayList;
> import java.util.List;
> import java.util.concurrent.BrokenBarrierException;
> import java.util.concurrent.CyclicBarrier;
> public class LegTypeTest {
> public static void main(String[] args) throws InterruptedException,
> BrokenBarrierException {
> List<Thread> threadList = new ArrayList<>();
> CyclicBarrier b1 = new CyclicBarrier(16);
> CyclicBarrier b2 = new CyclicBarrier(17);
> for (int i = 0; i < 16; i++) {
> final int ii = i;
> Thread thread = new Thread(() -> {
> try {
> b1.await();
> if (ii % 2 == 0)
> Class.forName("jvmtest.LegTypeTest$E$1");
> if (ii % 2 == 1)
> Class.forName("jvmtest.LegTypeTest$E");
> b2.await();
> } catch (Exception e) {
> e.printStackTrace();
> }
> });
> thread.start();
> threadList.add(thread);
> }
> b2.await();
> for (Thread thread : threadList) {
> thread.join();
> }
> }
> private enum E {
> A("A"),
> B("B") {
> @Override
> public String virtual() {
> return null;
> }
> };
> private String displayString;
> E(String displayString) {
> this.displayString = displayString;
> }
> public String virtual() {
> return displayString;
> }
> }
> }
> {code}
> When doing Class.forName on different enum values deadlock can be caused. And
> that's exactly what OptimizedMarshaller does.
> See also the attached test.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)