Skip to content

multinode statement hang when set statement execute error #1176

@PanternBao

Description

@PanternBao
  • dble version:
  • preconditions :
    create table test
CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) 
  • configs:

schema.xml

<dble:schema xmlns:dble="http://dble.cloud/">
    <schema name="testdb" dataNode="dn1">
        <table name="test" dataNode="dn1,dn2,dn3,dn4" rule="sharding-by-mod" type="default"/>
    </schema>

    <dataNode name="dn1" dataHost="localhost1" database="db1"/>
    <dataNode name="dn2" dataHost="localhost1" database="db2"/>
    <dataNode name="dn3" dataHost="localhost2" database="db1"/>
    <dataNode name="dn4" dataHost="localhost2" database="db2"/>

    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" switchType="1" slaveThreshold="100">
        <heartbeat>show slave status</heartbeat>
        <!-- can have multi write hosts -->
        <writeHost host="hostM1" url="localhost:3306" user="root"
                   password="123456"/>
    </dataHost>

    <dataHost name="localhost2" maxCon="1000" minCon="10" balance="0" switchType="1" slaveThreshold="100">
        <heartbeat>show slave status</heartbeat>
        <writeHost host="hostS1" url="localhost:3307" user="root"
                   password="123456"/>
    </dataHost>
</dble:schema>

rule.xml

<dble:rule xmlns:dble="http://dble.cloud/">
    <tableRule name="sharding-by-mod">
        <rule>
            <columns>id</columns>
            <algorithm>hashmod</algorithm>
        </rule>
    </tableRule>
    <function name="hashmod" class="Hash">
        <property name="partitionCount">4</property>
        <property name="partitionLength">1</property>
    </function>
</dble:rule>

server.xml

default
  • steps:
    step1. btrace hang in BtraceXaDelay.delayBeforeXaStart(). Then,execute
set autocommit=0;
set xa=1;
insert into test(id) values(1),(2);

step2. Get xaId by btrace. In datanode, start a xa same with xid generated by dble before

  • expect result:
    1.XAER_DUPID: The XID already exists
  • real result:
    1.statement hang
  • supplements:
    1.
    image

/label ~BUG

Metadata

Metadata

Assignees

Labels

communityissue from communityresolveproblem has been fixed by developer

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions