>From Janhavi Tripurwar <[email protected]>:
Attention is currently required from: Michael Blow, Ritik Raj.
Hello Jenkins, Michael Blow, Ritik Raj,
I'd like you to do a code review.
Please visit
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21033?usp=email
to review the following change.
Change subject: [NO ISSUE][TEST] Add debug info for
GlobalVirtualBufferCacheTest flakiness
......................................................................
[NO ISSUE][TEST] Add debug info for GlobalVirtualBufferCacheTest flakiness
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
testFlushes occasionally fails due to concurrent insert
interleaving causing B-Tree node splits. This split results
in the allocation of an extra 1KB memory page right before
the flush triggers, pushing the flushed component size
slightly beyond the strict 16KB FILTERED_MEMORY_COMPONENT_SIZE
threshold.
Added some more log lines, to just confirm the theory, next time
it fails.
Change-Id: I8ff41ff4fd15a636b7548c0cbed8eab41370391a
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20983
Reviewed-by: Ritik Raj <[email protected]>
Tested-by: Jenkins <[email protected]>
Reviewed-by: Michael Blow <[email protected]>
---
M
asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/GlobalVirtualBufferCacheTest.java
1 file changed, 23 insertions(+), 3 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/33/21033/1
diff --git
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/GlobalVirtualBufferCacheTest.java
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/GlobalVirtualBufferCacheTest.java
index 0a1fba2..1ea6941 100644
---
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/GlobalVirtualBufferCacheTest.java
+++
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/GlobalVirtualBufferCacheTest.java
@@ -155,7 +155,7 @@
}
if (exceptionRef.get() != null) {
exceptionRef.get().printStackTrace();
- Assert.fail();
+ Assert.fail("Exception in insert threads: " +
exceptionRef.get().getMessage());
}
for (int i = 0; i < NUM_PARTITIONS; i++) {
List<ILSMDiskComponent> diskComponents = new
ArrayList<>(primaryIndexes[i].getDiskComponents());
@@ -166,8 +166,28 @@
List<ILSMDiskComponent> filteredDiskComponents =
new
ArrayList<>(filteredPrimaryIndexes[i].getDiskComponents());
Assert.assertFalse(filteredDiskComponents.isEmpty());
- Assert.assertTrue(filteredDiskComponents.stream().allMatch(c
-> ((AbstractTreeIndex) c.getIndex())
- .getFileReference().getFile().length() <=
FILTERED_MEMORY_COMPONENT_SIZE));
+
+ // Collect exact sizes for debugging
+ List<Long> filteredSizes = new ArrayList<>();
+ for (ILSMDiskComponent c : filteredDiskComponents) {
+ filteredSizes.add(((AbstractTreeIndex)
c.getIndex()).getFileReference().getFile().length());
+ }
+ List<Long> unfilteredSizes = new ArrayList<>();
+ for (ILSMDiskComponent c : diskComponents) {
+ unfilteredSizes.add(((AbstractTreeIndex)
c.getIndex()).getFileReference().getFile().length());
+ }
+
+ int cIdx = 0;
+ for (ILSMDiskComponent c : filteredDiskComponents) {
+ long fileLength = ((AbstractTreeIndex)
c.getIndex()).getFileReference().getFile().length();
+ Assert.assertTrue(
+ "Partition " + i + " Filtered disk component " +
cIdx + " length " + fileLength
+ + " exceeds limit " +
FILTERED_MEMORY_COMPONENT_SIZE
+ + ".\nAll filtered sizes for partition: "
+ filteredSizes
+ + ".\nAll unfiltered sizes for partition:
" + unfilteredSizes,
+ fileLength <= FILTERED_MEMORY_COMPONENT_SIZE);
+ cIdx++;
+ }
}
nc.getTransactionManager().commitTransaction(txnCtx.getTxnId());
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21033?usp=email
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I8ff41ff4fd15a636b7548c0cbed8eab41370391a
Gerrit-Change-Number: 21033
Gerrit-PatchSet: 1
Gerrit-Owner: Janhavi Tripurwar <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Michael Blow <[email protected]>
Gerrit-Reviewer: Ritik Raj <[email protected]>
Gerrit-Attention: Michael Blow <[email protected]>
Gerrit-Attention: Ritik Raj <[email protected]>