[ https://issues.apache.org/jira/browse/IGNITE-10054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman Kondakov updated IGNITE-10054: ------------------------------------ Ignite Flags: (was: Docs Required) > sqlline hangs with concurrent operations > ---------------------------------------- > > Key: IGNITE-10054 > URL: https://issues.apache.org/jira/browse/IGNITE-10054 > Project: Ignite > Issue Type: Bug > Components: mvcc > Affects Versions: 2.7 > Reporter: Sergey Kozlov > Priority: Critical > Fix For: 2.8 > > Attachments: 15828.txt, 16696.txt, ignite-24507fea.0.log, > ignite-c9ddebdb.0.log > > > 1. Start 2 nodes cluster with PDS (wal_mode=FSYNC), activate > 2. Start 1st {{bin/sqlline}} with following commands (in batch file): > {noformat} > create table t1 (a int, b int, primary key(a)) with > "atomicity=TRANSACTIONAL_SNAPSHOT,backups=1"; > insert into t1 values (1,1); > insert into t1 values (2,1); > insert into t1 values (3,1); > insert into t1 values (4,1); > insert into t1 values (5,1); > insert into t1 values (6,1); > insert into t1 values (7,1); > insert into t1 values (8,1); > insert into t1 values (9,1); > insert into t1 values (10,1); > begin; > update t1 set b=b+1; > commit; > begin; > update t1 set b=b+1; > commit; > begin; > update t1 set b=b+1; > commit; > begin; > update t1 set b=b+1; > commit; > ...repeat TX many times... > {noformat} > 3. Start 2nd {{bin/sqlline}} with following commands (in batch file): > {noformat} > begin; > update t1 set b=b-1; > commit; > begin; > update t1 set b=b-1; > commit; > begin; > update t1 set b=b-1; > commit; > ...repeat TX many times... > {noformat} > 4. After some time both {{sqlline}} hang: > {noformat} > 611/113163 commit; > Error: Failed to execute DDL statement [stmt=commit, err=Failed to finish > transaction because it has been rolled back [t > imeout=0, > tx=GridNearTxLocal[xid=f91ff90c661-00000000-0914-10f6-0000-000000000001, > xidVersion=GridCacheVersion [topVer=1 > 52310006, order=1540829999519, nodeOrder=1], concurrency=PESSIMISTIC, > isolation=REPEATABLE_READ, state=MARKED_ROLLBACK, > invalidate=false, rollbackOnly=true, > nodeId=c9ddebdb-c328-4283-97c5-a6634444887a, timeout=0, duration=11, > label=null]]] > (state=50000,code=1) > java.sql.SQLException: Failed to execute DDL statement [stmt=commit, > err=Failed to finish transaction because it has bee > n rolled back [timeout=0, > tx=GridNearTxLocal[xid=f91ff90c661-00000000-0914-10f6-0000-000000000001, > xidVersion=GridCacheV > ersion [topVer=152310006, order=1540829999519, nodeOrder=1], > concurrency=PESSIMISTIC, isolation=REPEATABLE_READ, state=M > ARKED_ROLLBACK, invalidate=false, rollbackOnly=true, > nodeId=c9ddebdb-c328-4283-97c5-a6634444887a, timeout=0, duration=11 > , label=null]]] > at > org.apache.ignite.internal.jdbc.thin.JdbcThinConnection.sendRequest(JdbcThinConnection.java:750) > at > org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute0(JdbcThinStatement.java:212) > at > org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute(JdbcThinStatement.java:475) > at sqlline.Commands.execute(Commands.java:823) > at sqlline.Commands.sql(Commands.java:733) > at sqlline.SqlLine.dispatch(SqlLine.java:795) > at sqlline.SqlLine.runCommands(SqlLine.java:1706) > at sqlline.Commands.run(Commands.java:1317) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:38) > at sqlline.SqlLine.dispatch(SqlLine.java:791) > at sqlline.SqlLine.initArgs(SqlLine.java:595) > at sqlline.SqlLine.begin(SqlLine.java:643) > at sqlline.SqlLine.start(SqlLine.java:373) > at sqlline.SqlLine.main(SqlLine.java:265) > 612/113163 begin; > No rows affected (0 seconds) > 613/113163 update t1 set b=b+1; > {noformat} > {noformat} > Error: Failed to execute DDL statement [stmt=commit, err=Failed to finish > transaction because it has been rolled back [t > imeout=0, > tx=GridNearTxLocal[xid=191ff90c661-00000000-0914-10f6-0000-000000000001, > xidVersion=GridCacheVersion [topVer=1 > 52310006, order=1540829999505, nodeOrder=1], concurrency=PESSIMISTIC, > isolation=REPEATABLE_READ, state=MARKED_ROLLBACK, > invalidate=false, rollbackOnly=true, > nodeId=c9ddebdb-c328-4283-97c5-a6634444887a, timeout=0, duration=11, > label=null]]] > (state=50000,code=1) > java.sql.SQLException: Failed to execute DDL statement [stmt=commit, > err=Failed to finish transaction because it has bee > n rolled back [timeout=0, > tx=GridNearTxLocal[xid=191ff90c661-00000000-0914-10f6-0000-000000000001, > xidVersion=GridCacheV > ersion [topVer=152310006, order=1540829999505, nodeOrder=1], > concurrency=PESSIMISTIC, isolation=REPEATABLE_READ, state=M > ARKED_ROLLBACK, invalidate=false, rollbackOnly=true, > nodeId=c9ddebdb-c328-4283-97c5-a6634444887a, timeout=0, duration=11 > , label=null]]] > at > org.apache.ignite.internal.jdbc.thin.JdbcThinConnection.sendRequest(JdbcThinConnection.java:750) > at > org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute0(JdbcThinStatement.java:212) > at > org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute(JdbcThinStatement.java:475) > at sqlline.Commands.execute(Commands.java:823) > at sqlline.Commands.sql(Commands.java:733) > at sqlline.SqlLine.dispatch(SqlLine.java:795) > at sqlline.SqlLine.runCommands(SqlLine.java:1706) > at sqlline.Commands.run(Commands.java:1317) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:38) > at sqlline.SqlLine.dispatch(SqlLine.java:791) > at sqlline.SqlLine.initArgs(SqlLine.java:595) > at sqlline.SqlLine.begin(SqlLine.java:643) > at sqlline.SqlLine.start(SqlLine.java:373) > at sqlline.SqlLine.main(SqlLine.java:265) > 28/129750 begin; > No rows affected (0 seconds) > 29/129750 update t1 set b=b-1; > 10 rows affected (0,014 seconds) > 30/129750 commit; > No rows affected (0,002 seconds) > 31/129750 begin; > No rows affected (0,001 seconds) > 32/129750 update t1 set b=b-1; > 10 rows affected (0,011 seconds) > 33/129750 commit; > No rows affected (0,004 seconds) > 34/129750 begin; > No rows affected (0,001 seconds) > 35/129750 update t1 set b=b-1; > 10 rows affected (0,011 seconds) > 36/129750 commit; > No rows affected (0,003 seconds) > 37/129750 begin; > No rows affected (0 seconds) > 38/129750 update t1 set b=b-1; > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)