>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]>

Reply via email to