You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by al...@apache.org on 2023/03/18 02:54:39 UTC
[asterixdb] 05/11: [ASTERIXDB-3127][RT] Fix ConcurrentModificationException in ANALYZE DATASET
This is an automated email from the ASF dual-hosted git repository.
alsuliman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit a0e47c5c7d9dd340b87c521985cc79ceaa7f835f
Author: Ian Maxon <ia...@maxons.email>
AuthorDate: Tue Mar 7 22:53:58 2023 -0800
[ASTERIXDB-3127][RT] Fix ConcurrentModificationException in ANALYZE DATASET
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
Move the indexStats out of the descriptor. This being modified between instances
of the pushRuntime created inside was causing the exception.
Also enable an ANALYZE DATASET test that was accidentally left disabled
Change-Id: I7cbff25b14346ca8eca5baa7e0fe8fb1da72f271
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17410
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Ian Maxon <im...@uci.edu>
Reviewed-by: Ali Alsuliman <al...@gmail.com>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
---
.../analyze-dataset-with-indexes.04.query.sqlpp | 2 +-
.../analyze-dataset-with-indexes.06.query.sqlpp | 4 ++--
.../asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml | 5 +++++
.../runtime/operators/DatasetStreamStatsOperatorDescriptor.java | 2 +-
4 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.04.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.04.query.sqlpp
index 9c01681ddf..e674c09de6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.04.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.04.query.sqlpp
@@ -19,6 +19,6 @@
USE test;
+SELECT t.DatasetName, t.IndexName, t.IndexStructure, t.SampleCardinalityTarget, t.SourceCardinality, t.SourceAvgItemSize, t.IndexStats
FROM `Metadata`.`Index` t WHERE t.IndexStructure = "SAMPLE"
-SELECT t.* EXCLUDE DataverseName, SearchKey, IsPrimary, Timestamp, PendingOp, SampleSeed
ORDER BY t.DatasetName, t.IndexName;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.06.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.06.query.sqlpp
index 9c01681ddf..dcb57b27df 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.06.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.06.query.sqlpp
@@ -19,6 +19,6 @@
USE test;
+SELECT t.DatasetName, t.IndexName, t.IndexStructure, t.SampleCardinalityTarget, t.SourceCardinality, t.SourceAvgItemSize, t.IndexStats
FROM `Metadata`.`Index` t WHERE t.IndexStructure = "SAMPLE"
-SELECT t.* EXCLUDE DataverseName, SearchKey, IsPrimary, Timestamp, PendingOp, SampleSeed
-ORDER BY t.DatasetName, t.IndexName;
\ No newline at end of file
+ORDER BY t.DatasetName, t.IndexName;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index 17df68908a..31183f3dc7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -4130,6 +4130,11 @@
<output-dir compare="Text">analyze-dataset-1</output-dir>
</compilation-unit>
</test-case>
+ <test-case FilePath="ddl">
+ <compilation-unit name="analyze-dataset-with-indexes">
+ <output-dir compare="Text">analyze-dataset-with-indexes</output-dir>
+ </compilation-unit>
+ </test-case>
<test-case FilePath="ddl/create-index">
<compilation-unit name="create-index-1">
<output-dir compare="Text">create-index-1</output-dir>
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/DatasetStreamStatsOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/DatasetStreamStatsOperatorDescriptor.java
index ba294506e8..4f2e4193ae 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/DatasetStreamStatsOperatorDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/DatasetStreamStatsOperatorDescriptor.java
@@ -55,7 +55,6 @@ public final class DatasetStreamStatsOperatorDescriptor extends AbstractSingleAc
private final String operatorName;
private final IIndexDataflowHelperFactory[] indexes;
private final String[] indexesNames;
- private Map<String, IndexStats> indexStats;
public DatasetStreamStatsOperatorDescriptor(IOperatorDescriptorRegistry spec, RecordDescriptor rDesc,
String operatorName, IIndexDataflowHelperFactory[] indexes, String[] indexesNames) {
@@ -75,6 +74,7 @@ public final class DatasetStreamStatsOperatorDescriptor extends AbstractSingleAc
private FrameTupleAccessor fta;
private long totalTupleCount;
private long totalTupleLength;
+ private Map<String, IndexStats> indexStats;
@Override
public void open() throws HyracksDataException {