This is an automated email from the ASF dual-hosted git repository.
irakov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 188e4d5 IGNITE-12601
DistributedMetaStoragePersistentTest.testUnstableTopology is flaky - Fixes
#7334.
188e4d5 is described below
commit 188e4d52c2d8085874fed9349b03fedeca6edb59
Author: Slava Koptilin <[email protected]>
AuthorDate: Fri Jan 31 01:23:19 2020 +0300
IGNITE-12601 DistributedMetaStoragePersistentTest.testUnstableTopology is
flaky - Fixes #7334.
Signed-off-by: Ivan Rakov <[email protected]>
---
.../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);