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

Alexander Belyak updated IGNITE-21776:
--------------------------------------
    Description: 
In two parallel clients:

1) Run DDL (using two clients):

```

create table if not exists parallelCreateTable0

(id INTEGER not null,

val VARCHAR not null,

primary key (id))

```

2) Get parallelCreateTable0 using ignite.tables() API or select from jdbc

Expected result:
 # One client creates the table, second one - wait table created
 # Both client can use the table

Actual result:
 # One client creates the table, second one return control immediatly
 # Second client fails to use the table, first one works as expected after the 
table creating finished.

  was:
In two parallel clients:

1) Run DDL (using two clients):

```

create table if not exists parallelCreateTable0

(id INTEGER not null,

val VARCHAR not null,

primary key (id))

```

2) Get parallelCreateTable0 using ignite.tables() API or select from jdbc

Expected result:
 # One client creates the table, second one - wait table created
 # Both client can use the table

Actual result:
 # One client creates the table, second one return control immediatly
 # Second client fail to use the table, first one works as expected after the 
table creating finished.


> "Create table if not exists" not a thread safe
> ----------------------------------------------
>
>                 Key: IGNITE-21776
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21776
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 3.0
>            Reporter: Alexander Belyak
>            Priority: Major
>              Labels: ignite-3
>         Attachments: test.java, test.log
>
>
> In two parallel clients:
> 1) Run DDL (using two clients):
> ```
> create table if not exists parallelCreateTable0
> (id INTEGER not null,
> val VARCHAR not null,
> primary key (id))
> ```
> 2) Get parallelCreateTable0 using ignite.tables() API or select from jdbc
> Expected result:
>  # One client creates the table, second one - wait table created
>  # Both client can use the table
> Actual result:
>  # One client creates the table, second one return control immediatly
>  # Second client fails to use the table, first one works as expected after 
> the table creating finished.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to