[ https://issues.apache.org/jira/browse/ASTERIXDB-2493?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chen Luo reassigned ASTERIXDB-2493: ----------------------------------- Assignee: Chen Luo > In-memory LSM filter is not thread safe > --------------------------------------- > > Key: ASTERIXDB-2493 > URL: https://issues.apache.org/jira/browse/ASTERIXDB-2493 > Project: Apache AsterixDB > Issue Type: Bug > Affects Versions: 0.9.4 > Reporter: Wail Y. Alkowaileet > Assignee: Chen Luo > Priority: Critical > > To reproduce the issue: > 1- Setup a cluster with a single NC and a single partition. > 2- Set a breakpoint at > [LSMComponentFilter.java#L71|https://github.com/apache/asterixdb/blob/6b31f73565a3b16e0dd1fce9ea010e640c53ca79/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFilter.java#L71] > 3- DDL: > {code:sql} > DROP DATAVERSE ThreadSafe IF EXISTS; > CREATE DATAVERSE ThreadSafe; > USE ThreadSafe; > CREATE TYPE FilterTestType AS { > uid: uuid, > created: int > }; > CREATE DATASET FilterTest(FilterTestType) > PRIMARY KEY uid AUTOGENERATED WITH FILTER ON created; > {code} > 4- Initiate two insert queries: > {code:sql} > USE ThreadSafe; > INSERT INTO FilterTest ( > {"created": 1} > ) > INSERT INTO FilterTest ( > {"created": 0} > ) > {code} > 5- Let the insert with "created = 0" to update the minTuple (L79) > 6- Now, let the insert with "created = 1" to update minTuple > 7- Do the same for the max. > After (7) both min and max should equal to 1 > 8- Flush the component: > > [http://localhost:19002/connector?dataverseName=ThreadSafe&datasetName=FilterTest] > 9- Execute search query: > {code:sql} > USE ThreadSafe; > SELECT * > FROM FilterTest > WHERE created = 0; > {code} > The query returns an empty result -- This message was sent by Atlassian Jira (v8.3.4#803005)