zettadb / kunlun

KunlunBase is a distributed relational database management system(RDBMS) with complete NewSQL capabilities and robust transaction ACID guarantees and is compatible with standard SQL. Applications which used PostgreSQL or MySQL can work with KunlunBase as-is without any code change or rebuild because KunlunBase supports both PostgreSQL and MySQL connection protocols and DML SQL grammars. MySQL DBAs can quickly work on a KunlunBase cluster because we use MySQL as storage nodes of KunlunBase. KunlunBase can elastically scale out as needed, and guarantees transaction ACID under error conditions, and KunlunBase fully passes TPC-C, TPC-H and TPC-DS test suites, so it not only support OLTP workloads but also OLAP workloads. Application developers can use KunlunBase to build IT systems that handles terabytes of data, without any effort on their part to implement data sharding, distributed transaction processing, distributed query processing, crash safety, high availability, strong consistency, horizontal scalability. All these powerful features are provided by KunlunBase. KunlunBase supports powerful and user friendly cluster management, monitor and provision features, can be readily used as DBaaS.
http://www.kunlunbase.com
Apache License 2.0
143 stars 20 forks source link

Kunlun-server report 'errstart was not called' when kunlun-storage returns error #748

Open jd-zhang opened 2 years ago

jd-zhang commented 2 years ago

Issue migrated from trac ticket # 754

component: computing nodes | priority: major

2022-05-27 16:08:43: smith created the issue


如何复现:

1、在存储节点上表锁住,模拟多线程压测时的锁等待

lock table abc_$$_public.t1 read;

2、在计算节点上执行更新,并使其超时

abc # set statment_timeout = 1000;
abc=# insert into t1 select 1,1;
ERROR:  errstart was not called

原因:

超时时,在返回错误前,会先取消正在执行的发往存储节点的sql,然后再向客户的报错。
但是在取消sql时,却将所有的错误全部清理掉了,导致发送错误给客户发现已经没有错误信息。
jd-zhang commented 2 years ago

2022-06-06 12:19:51: zhaowei@zettadb.com changed title from CN report 'errstart was not called' when running sysbench in 300 threads to Kunlun-server report 'errstart was not called' when kunlun-storage returns error