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 <[email protected]> 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 <[email protected]> Reviewed-by: Ian Maxon <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Integration-Tests: Jenkins <[email protected]> --- .../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 {
