>From Rithwik Koul <[email protected]>:

Attention is currently required from: Rithwik Koul.

Hello Jenkins, Ritik Raj,

I'd like you to reexamine a change. Please visit

    https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21392?usp=email

to look at the new patch set (#11).


Change subject: [ASTERIXDB-3787][STO] Fix infinite loop reading array-nested 
union-typed columns
......................................................................

[ASTERIXDB-3787][STO] Fix infinite loop reading array-nested union-typed columns

- user model changes: no
- storage format changes: no
- interface changes: no

PathExtractorVisitor.getReversedDelimiters() reversed the shared
delimiters field in place via Collections.reverse instead of returning a
reversed copy. The reader requires delimiter levels in descending order
(largest nesting level first).

For a union-typed leaf, getOrCreateReaders loops over the union's flat
children, calling createReader -> getReversedDelimiters once per child.
Each call re-reversed the same field, so odd-numbered children got the
correct descending order and even-numbered children got it flipped back
to ascending. With a single delimiter the flip is a no-op, so the bug
only surfaced when the leaf sat under two or more nested arrays.

An ascending delimiter array corrupts
RepeatedPrimitiveColumnValuesReader: levelToDelimiterMap is built wrong
and setDelimiterIndex uses the wrong threshold, so
isDelimiter()/getDelimiterIndex() never reach the value
EndOfRepeatedGroupAssembler waits for. The group-end condition never
fires, the assembler keeps jumping back to the group's first value, and
the query spins forever on the same tuple.

Ex-ref: MB-72388
Change-Id: Ib4c961272a6eea730efeb7d75c95cd9ea72e9aaa
---
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/nested-array-mixed-type-empty/nested-array-mixed-type-empty.001.ddl.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/nested-array-mixed-type-empty/nested-array-mixed-type-empty.002.update.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/nested-array-mixed-type-empty/nested-array-mixed-type-empty.003.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/nested-array-mixed-type-empty/nested-array-mixed-type-empty.003.adm
M asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/metadata/schema/visitor/PathExtractorVisitor.java
6 files changed, 113 insertions(+), 2 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/92/21392/11
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21392?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings?usp=email

Gerrit-MessageType: newpatchset
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Ib4c961272a6eea730efeb7d75c95cd9ea72e9aaa
Gerrit-Change-Number: 21392
Gerrit-PatchSet: 11
Gerrit-Owner: Rithwik Koul <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Rithwik Koul <[email protected]>
Gerrit-Reviewer: Ritik Raj <[email protected]>
Gerrit-CC: Anon. E. Moose #1000171
Gerrit-Attention: Rithwik Koul <[email protected]>

Reply via email to