This is an automated email from the ASF dual-hosted git repository. irakov pushed a commit to branch ignite-2.8 in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/ignite-2.8 by this push: new f478aa5 IGNITE-12601 DistributedMetaStoragePersistentTest.testUnstableTopology is flaky - Fixes #7334. f478aa5 is described below commit f478aa564405d6ed690a2853594b965bdcc526da Author: Slava Koptilin <slava.kopti...@gmail.com> AuthorDate: Fri Jan 31 01:23:19 2020 +0300 IGNITE-12601 DistributedMetaStoragePersistentTest.testUnstableTopology is flaky - Fixes #7334. Signed-off-by: Ivan Rakov <ivan.glu...@gmail.com> (cherry picked from commit 188e4d52c2d8085874fed9349b03fedeca6edb59) --- .../cache/persistence/metastorage/MetaStorage.java | 19 ++++++++----------- .../metastorage/persistence/DmsDataWriterWorker.java | 2 ++ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/metastorage/MetaStorage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/metastorage/MetaStorage.java index 670992c..d56500a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/metastorage/MetaStorage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/metastorage/MetaStorage.java @@ -418,17 +418,8 @@ public class MetaStorage implements DbCheckpointListener, ReadWriteMetastorage { @Override public void write(@NotNull String key, @NotNull Serializable val) throws IgniteCheckedException { assert val != null; - byte[] data = marshaller.marshal(val); - - final WALPointer ptr; - - synchronized (this) { - ptr = wal.log(new MetastoreDataRecord(key, data)); - - writeRaw(key, data); - } - - wal.flush(ptr, false); + if (!readOnly) + writeRaw(key, marshaller.marshal(val)); } /** {@inheritDoc} */ @@ -439,7 +430,11 @@ public class MetaStorage implements DbCheckpointListener, ReadWriteMetastorage { /** {@inheritDoc} */ @Override public void writeRaw(String key, byte[] data) throws IgniteCheckedException { if (!readOnly) { + WALPointer ptr; + synchronized (this) { + ptr = wal.log(new MetastoreDataRecord(key, data)); + MetastorageDataRow oldRow = tree.findOne(new MetastorageDataRow(key, null)); if (oldRow != null) { @@ -451,6 +446,8 @@ public class MetaStorage implements DbCheckpointListener, ReadWriteMetastorage { tree.rowStore().addRow(row); tree.put(row); } + + wal.flush(ptr, false); } } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DmsDataWriterWorker.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DmsDataWriterWorker.java index 1c333b6..816ff9c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DmsDataWriterWorker.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DmsDataWriterWorker.java @@ -268,6 +268,8 @@ class DmsDataWriterWorker extends GridWorker { metastorage.iterate(COMMON_KEY_PREFIX, (key, val) -> allKeys.add(key), false); + allKeys.remove(cleanupGuardKey()); + for (String key : allKeys) metastorage.remove(key);