Skip to content

Tags: aspectcapital/hazelcast

Tags

v3.8.8

Toggle v3.8.8's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Update release_notes.txt

v3.9.1

Toggle v3.9.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Merge pull request hazelcast#11882 from mdogan/member-attribute-fix-z

Fix member attribute change invocations

v3.8.7

Toggle v3.8.7's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Merge pull request hazelcast#11729 from tombujok/copyfix-387

[BACKPORT][3.8.7] Tuneable trade-off for index query result copying

v3.9

Toggle v3.9's commit message
Fix deadlock in FilteringClassLoader

The registerAsParallelCapable() method was not called for the parallel
class loading to work properly. The code in JDK is written in a way that
if it is not called, a lock on `this` instance is expected to be held,
see the detected deadlock below.

I did not fully investigate the parallel loading, so for the sake
simplicity and also because this code is only used in tests, I rewrote
it to synchronize on `this. The class was also moved to test sources.

Note that the excerpt below never shows "locked .. FilteringClassLoader",
but still claims that the monitor on FilteringClassLoader instance is
held. This is probably due to the fact that the private
`ClassLoader.loadClassInternal` method, which synchronizes on `this`, is
directly called by JVM. However, in the case of
"hz._hzInstance_1_jet.generic-operation.thread-0" thread, the public
`loadClass` is called directly.

=========

Found one Java-level deadlock:
=============================
"hz._hzInstance_1_jet.IOBalancerThread":
  waiting to lock monitor 0x0000000019d35828 (object 0x00000000fc87b2b0, a com.hazelcast.util.FilteringClassLoader),
  which is held by "hz._hzInstance_1_jet.generic-operation.thread-0"
"hz._hzInstance_1_jet.generic-operation.thread-0":
  waiting to lock monitor 0x0000000018ffb998 (object 0x00000000fcba4808, a com.hazelcast.util.ContextMutexFactory$Mutex),
  which is held by "hz._hzInstance_1_jet.partition-operation.thread-5"
"hz._hzInstance_1_jet.partition-operation.thread-5":
  waiting to lock monitor 0x0000000019d35828 (object 0x00000000fc87b2b0, a com.hazelcast.util.FilteringClassLoader),
  which is held by "hz._hzInstance_1_jet.generic-operation.thread-0"

Java stack information for the threads listed above:
===================================================
"hz._hzInstance_1_jet.IOBalancerThread":
	at com.hazelcast.util.ItemCounter.getAndSet(ItemCounter.java:143)
	at com.hazelcast.internal.networking.nio.iobalancer.LoadTracker.getEventCountSinceLastCheck(LoadTracker.java:167)
	at com.hazelcast.internal.networking.nio.iobalancer.LoadTracker.updateHandlerState(LoadTracker.java:157)
	at com.hazelcast.internal.networking.nio.iobalancer.LoadTracker.updateNewWorkingImbalance(LoadTracker.java:152)
	at com.hazelcast.internal.networking.nio.iobalancer.LoadTracker.updateImbalance(LoadTracker.java:85)
	at com.hazelcast.internal.networking.nio.iobalancer.IOBalancer.scheduleMigrationIfNeeded(IOBalancer.java:146)
	at com.hazelcast.internal.networking.nio.iobalancer.IOBalancer.checkReadHandlers(IOBalancer.java:142)
	at com.hazelcast.internal.networking.nio.iobalancer.IOBalancerThread.run(IOBalancerThread.java:51)
"hz._hzInstance_1_jet.generic-operation.thread-0":
	at com.hazelcast.util.FilteringClassLoader.loadClass(FilteringClassLoader.java:98)
	- waiting to lock <0x00000000fcba4808> (a com.hazelcast.util.ContextMutexFactory$Mutex)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at com.hazelcast.map.AbstractEntryProcessor.<init>(AbstractEntryProcessor.java:60)
	at com.hazelcast.map.AbstractEntryProcessor.<init>(AbstractEntryProcessor.java:50)
	at com.hazelcast.map.impl.EntryRemovingProcessor.<init>(EntryRemovingProcessor.java:31)
	at com.hazelcast.map.impl.EntryRemovingProcessor.<clinit>(EntryRemovingProcessor.java:29)
	at com.hazelcast.map.impl.MapDataSerializerHook$131.createNew(MapDataSerializerHook.java:976)
	at com.hazelcast.map.impl.MapDataSerializerHook$131.createNew(MapDataSerializerHook.java:974)
	at com.hazelcast.internal.serialization.impl.ArrayDataSerializableFactory.create(ArrayDataSerializableFactory.java:44)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.readInternal(DataSerializableSerializer.java:141)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:105)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:50)
	at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
	at com.hazelcast.internal.serialization.impl.AbstractSerializationService.readObject(AbstractSerializationService.java:267)
	at com.hazelcast.internal.serialization.impl.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:570)
	at com.hazelcast.map.impl.operation.PartitionWideEntryWithPredicateOperationFactory.readData(PartitionWideEntryWithPredicateOperationFactory.java:109)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.readInternal(DataSerializableSerializer.java:158)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:105)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:50)
	at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
	at com.hazelcast.internal.serialization.impl.AbstractSerializationService.readObject(AbstractSerializationService.java:267)
	at com.hazelcast.internal.serialization.impl.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:570)
	at com.hazelcast.spi.impl.operationservice.impl.operations.PartitionIteratingOperation.readInternal(PartitionIteratingOperation.java:262)
	at com.hazelcast.spi.Operation.readData(Operation.java:606)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.readInternal(DataSerializableSerializer.java:158)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:105)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:50)
	at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
	at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:185)
	at com.hazelcast.spi.impl.NodeEngineImpl.toObject(NodeEngineImpl.java:339)
	at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:394)
	at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:115)
	at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.run(OperationThread.java:100)
"hz._hzInstance_1_jet.partition-operation.thread-5":
	at java.lang.ClassLoader.checkCerts(ClassLoader.java:887)
	- waiting to lock <0x00000000fc87b2b0> (a com.hazelcast.util.FilteringClassLoader)
	at java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:761)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
	at com.hazelcast.util.FilteringClassLoader.loadAndDefineClass(FilteringClassLoader.java:125)
	at com.hazelcast.util.FilteringClassLoader.loadClass(FilteringClassLoader.java:101)
	- locked <0x00000000fcba4808> (a com.hazelcast.util.ContextMutexFactory$Mutex)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at com.hazelcast.nio.ClassLoaderUtil.tryLoadClass(ClassLoaderUtil.java:173)
	at com.hazelcast.nio.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:132)
	at com.hazelcast.nio.IOUtil$ClassLoaderAwareObjectInputStream.resolveClass(IOUtil.java:552)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1819)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1986)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
	at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:219)
	at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
	at com.hazelcast.internal.serialization.impl.AbstractSerializationService.readObject(AbstractSerializationService.java:267)
	at com.hazelcast.internal.serialization.impl.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:570)
	at com.hazelcast.map.impl.operation.PartitionWideEntryBackupOperation.readInternal(PartitionWideEntryBackupOperation.java:62)
	at com.hazelcast.map.impl.operation.PartitionWideEntryWithPredicateBackupOperation.readInternal(PartitionWideEntryWithPredicateBackupOperation.java:47)
	at com.hazelcast.spi.Operation.readData(Operation.java:606)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.readInternal(DataSerializableSerializer.java:158)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:105)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:50)
	at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
	at com.hazelcast.internal.serialization.impl.AbstractSerializationService.readObject(AbstractSerializationService.java:267)
	at com.hazelcast.internal.serialization.impl.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:570)
	at com.hazelcast.spi.impl.operationservice.impl.operations.Backup.readInternal(Backup.java:266)
	at com.hazelcast.spi.Operation.readData(Operation.java:606)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.readInternal(DataSerializableSerializer.java:158)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:105)
	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:50)
	at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
	at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:185)
	at com.hazelcast.spi.impl.NodeEngineImpl.toObject(NodeEngineImpl.java:339)
	at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:394)
	at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:115)
	at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.run(OperationThread.java:100)

Found 1 deadlock.

v3.8.6

Toggle v3.8.6's commit message
3.8.6

v3.8.5

Toggle v3.8.5's commit message
Update release_notes.txt

v3.8.4

Toggle v3.8.4's commit message
Update release_notes.txt

c3.5.5.7-ercssn

Toggle c3.5.5.7-ercssn's commit message
Merge pull request hazelcast#10917 from vbekiaris/fixes/3.5.5.7/slot-…

…based-entry-task-scheduler

Improvements in replica sync retries

v3.8.3

Toggle v3.8.3's commit message
Update release_notes.txt

v3.9-EA

Toggle v3.9-EA's commit message
Destroy HD indexes on map destroy (hazelcast#10859) (hazelcast#10865)

(cherry picked from commit 6fa5ee1)