asterixdb-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ildar Absalyamov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ASTERIXDB-1302) Deadlock while trying to drop feed dataverse
Date Fri, 19 Feb 2016 08:57:18 GMT

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

Ildar Absalyamov updated ASTERIXDB-1302:
----------------------------------------
    Description: 
Consider the following feed definition:
{noformat}
drop dataverse experiments if exists;
create dataverse experiments;
use dataverse experiments;

create type TwitterUserType as closed {
    screen-name: string,
    lang: string,
    friends_count: int32,
    statuses_count: int32,
    name: string,
    followers_count: int32
}

create type TweetMessageType as closed {
    tweetid: int64,
    user: TwitterUserType,
    sender-location: point,
    send-time: datetime,
    referred-topics: {{ string }},
    message-text: string
}

create dataset Tweets(TweetMessageType) primary key tweetid;

create feed TweetFeed using socket_adapter
(
    ("sockets"="127.0.0.1:10001"),
    ("address-type"="IP"),
    ("type-name"="TweetMessageType"),
    ("format"="adm")
);

set wait-for-completion-feed "false";

connect feed TweetFeed to dataset Tweets;
{noformat} 
Once the feed is in connected state any modification operation on dataset\dataverse such as
drop would result in a deadlock
{noformat} 
drop dataverse experiments;
{noformat} 
The correct behavior would be to give an error message to the user, notifying that the feed
should be disconnected first, or allowing to drop dataverse, while managing locks correctly

  was:
Connected feed deadlocks :
{noformat}
drop dataverse experiments if exists;
create dataverse experiments;
use dataverse experiments;

create type TwitterUserType as closed {
    screen-name: string,
    lang: string,
    friends_count: int32,
    statuses_count: int32,
    name: string,
    followers_count: int32
}

create type TweetMessageType as closed {
    tweetid: int64,
    user: TwitterUserType,
    sender-location: point,
    send-time: datetime,
    referred-topics: {{ string }},
    message-text: string
}

create dataset Tweets(TweetMessageType) primary key tweetid;

create feed TweetFeed using socket_adapter
(
    ("sockets"="127.0.0.1:10001"),
    ("address-type"="IP"),
    ("type-name"="TweetMessageType"),
    ("format"="adm")
);

set wait-for-completion-feed "false";

connect feed TweetFeed to dataset Tweets;
{noformat} 
Any modification operation on dataset\dataverse such as drop would result in a deadlock
{noformat} 
drop dataverse experiments;
{noformat} 
The correct behavior would be to give an error message to the user, notifying that the feed
should be disconnected first, or allowing to drop dataverse, while managing locks correctly


> Deadlock while trying to drop feed dataverse
> --------------------------------------------
>
>                 Key: ASTERIXDB-1302
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1302
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: Feeds
>            Reporter: Ildar Absalyamov
>
> Consider the following feed definition:
> {noformat}
> drop dataverse experiments if exists;
> create dataverse experiments;
> use dataverse experiments;
> create type TwitterUserType as closed {
>     screen-name: string,
>     lang: string,
>     friends_count: int32,
>     statuses_count: int32,
>     name: string,
>     followers_count: int32
> }
> create type TweetMessageType as closed {
>     tweetid: int64,
>     user: TwitterUserType,
>     sender-location: point,
>     send-time: datetime,
>     referred-topics: {{ string }},
>     message-text: string
> }
> create dataset Tweets(TweetMessageType) primary key tweetid;
> create feed TweetFeed using socket_adapter
> (
>     ("sockets"="127.0.0.1:10001"),
>     ("address-type"="IP"),
>     ("type-name"="TweetMessageType"),
>     ("format"="adm")
> );
> set wait-for-completion-feed "false";
> connect feed TweetFeed to dataset Tweets;
> {noformat} 
> Once the feed is in connected state any modification operation on dataset\dataverse such
as drop would result in a deadlock
> {noformat} 
> drop dataverse experiments;
> {noformat} 
> The correct behavior would be to give an error message to the user, notifying that the
feed should be disconnected first, or allowing to drop dataverse, while managing locks correctly



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

Mime
View raw message