[ https://issues.apache.org/jira/browse/PHOENIX-1456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14218251#comment-14218251 ]
Hudson commented on PHOENIX-1456: --------------------------------- SUCCESS: Integrated in Phoenix-3.0-hadoop1 #317 (See [https://builds.apache.org/job/Phoenix-3.0-hadoop1/317/]) PHOENIX-1456 Incorrect query results caused by reusing buffers in SpoolingResultIterator (maryannxue: rev b7cb3c836873f627d27d5db939e06c6ffb0e376e) * phoenix-core/src/it/java/org/apache/phoenix/end2end/SpooledSortMergeJoinIT.java * phoenix-core/src/main/java/org/apache/phoenix/iterate/SpoolingResultIterator.java > Incorrect query results caused by reusing buffers in SpoolingResultIterator > --------------------------------------------------------------------------- > > Key: PHOENIX-1456 > URL: https://issues.apache.org/jira/browse/PHOENIX-1456 > Project: Phoenix > Issue Type: Bug > Affects Versions: 3.0.0, 4.0.0, 5.0.0 > Reporter: Maryann Xue > Assignee: Maryann Xue > Attachments: 1456.patch > > Original Estimate: 120h > Remaining Estimate: 120h > > The SpoolingResultIterator#OnDiskResultIterator switches between two > pre-allocated buffers as reading buffers for the tuple result, based on the > assumption that the outer ResultIterator consumes the returned tuple in a > streaming fashion and will never look back/forward outside 2-tuple span. > However, some usages fail this assumption: > 1. OrderedResultIterator: It adds all tuples into its MappedByteBufferQueue > on initialization, which is maintained by a priority queue before threshold > is reached and spooling to files. > This is not revealed in most test cases because, most importantly, > OrderedResultIterator is not commonly used on clientside (only > ClientProcessingPlan does) > 2. Child/parent hash-join optimization, which uses a list of PK values to > create an InListExpression. > It might be easy to walk around the second usage here though, but may need > more consideration on the first one. > I am thinking to take away SpoolingResultIterator at all if there is an outer > ResultIterator being OrderedResultIterator. -- This message was sent by Atlassian JIRA (v6.3.4#6332)