[
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)