You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Steven Jacobs (JIRA)" <ji...@apache.org> on 2016/01/16 00:36:39 UTC

[jira] [Updated] (ASTERIXDB-1261) The UUID printer shares an object across partitions, leading to a concurrency problem

     [ https://issues.apache.org/jira/browse/ASTERIXDB-1261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Jacobs updated ASTERIXDB-1261:
-------------------------------------
    Summary: The UUID printer shares an object across partitions, leading to a concurrency problem  (was: Tables with auto generated keys return incorrect key values nondeterministically)

> The UUID printer shares an object across partitions, leading to a concurrency problem
> -------------------------------------------------------------------------------------
>
>                 Key: ASTERIXDB-1261
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1261
>             Project: Apache AsterixDB
>          Issue Type: Bug
>            Reporter: Steven Jacobs
>         Attachments: Screen Shot 2016-01-12 at 4.28.42 PM.png
>
>
> When returning tuples from a dataset with an auto generated key, the value for the primary key field sporadically gets mixed up. It seems to be very infrequent, so I'm unsure whether it is on the storage layer or the record parsing layer. To produce, first run this AQL:
> drop dataverse channels if exists;
> create dataverse channels;
> use dataverse channels;
> create type TypeA as closed
> { "resultId":uuid, "subscriptionId":uuid, "deliveryTime":datetime }
> create dataset nearbyTweetChannelResults(TypeA) primary key resultId auto generated;
> insert into dataset nearbyTweetChannelResults(
> {"subscriptionId":uuid("d0b6fac0-3903-43dc-8ef6-7b0923ffc759"), "deliveryTime":datetime("2011-08-25T10:10:00.000Z")}
> );
> insert into dataset nearbyTweetChannelResults(
> {"subscriptionId":uuid("d0b6fac0-3903-43dc-8ef6-7b0923ffc759"), "deliveryTime":datetime("2011-08-25T10:10:00.000Z")}
> );
> Next, run the following AQL repeatedly. It should change within 20 or so times.
> use dataverse channels;
> for $result in dataset nearbyTweetChannelResults
> return $result.resultId;
> for $result in dataset nearbyTweetChannelResults
> return $result.resultId;
> for $result in dataset nearbyTweetChannelResults
> return $result.resultId;
> I have a screenshot of a failed instance that I will try to attach. The first result in the screenshot is clearly wrong



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)