JasonPan 发表于 2023-11-24 17:31:09

执行某些 SQL 导致数据库重启

执行 sql


SELECT
        t2.contract_number contractNumber
FROM
        rental_room_renter t1
        LEFT JOIN rental_contract t2 ON t1.id = t2.room_renter_id
        JOIN rental_room t3 ON t1.room_id = t3.id
        LEFT JOIN rental_renter t4 ON t1.renter_id = t4.id
        JOIN rental_apartment t5 ON t3.apartment_id = t5.id
        LEFT JOIN rental_proprietor t6 ON t6.room_id = t3.id
WHERE
        t1.is_deleted = 0
        AND t1.id = 5096200097955841

导致数据库重启
数据库是用 docker 启动的
有些其他的 sql 也导致 docker 服务重启

yejr 发表于 2023-11-26 14:11:10

这是遇到InnoDB PQ的bug了,请升级到GreatSQL 8.0.32-24版本试试。
如果升级后还有问题,麻烦提供表DDL给我们验证下。

JasonPan 发表于 2023-11-27 10:51:49

yejr 发表于 2023-11-26 14:11
这是遇到InnoDB PQ的bug了,请升级到GreatSQL 8.0.32-24版本试试。
如果升级后还有问题,麻烦提供表DDL给我 ...

升级了,还是不可以
DDL地址

yejr 发表于 2023-11-27 15:52:51

JasonPan 发表于 2023-11-27 10:51
升级了,还是不可以
DDL地址

我这里没能复现,可能是因为没有你的真实数据或其他情况,还请提供可以稳定复现的条件。

下面是我的测试过程:
greatsql> \s
--------------
mysqlVer 8.0.32-24 for Linux on x86_64 ( GreatSQL, Release 24, Revision 202308210916)

Connection id:                7
Current database:        db1
Current user:                root@localhost
SSL:                        Not in use
Current pager:                stdout
Using outfile:                ''
Using delimiter:        ;
Server version:                8.0.32-24 GreatSQL, Release 24, Revision 3714067bc8c
Protocol version:        10
Connection:                Localhost via UNIX socket
Server characterset:        utf8mb4
Db   characterset:        utf8mb4
Client characterset:        utf8mb4
Conn.characterset:        utf8mb4
UNIX socket:                /tmp/mysql.sock
Uptime:                        2 min 0 sec

Threads: 2Questions: 149Slow queries: 0Opens: 188Flush tables: 3Open tables: 98Queries per second avg: 1.241
--------------

greatsql> SELECT
    ->         t2.contract_number contractNumber
    -> FROM
    ->         rental_room_renter t1
    ->         LEFT JOIN rental_contract t2 ON t1.id = t2.room_renter_id
    ->         JOIN rental_room t3 ON t1.room_id = t3.id
    ->         LEFT JOIN rental_renter t4 ON t1.renter_id = t4.id
    ->         JOIN rental_apartment t5 ON t3.apartment_id = t5.id
    ->         LEFT JOIN rental_proprietor t6 ON t6.room_id = t3.id
    -> WHERE
    ->         t1.is_deleted = 0
    ->         AND t1.id >= 0;
Empty set (0.10 sec)

greatsql> select force_parallel_execute;
ERROR 1054 (42S22): Unknown column 'force_parallel_execute' in 'field list'
greatsql> select @@force_parallel_execute;
+--------------------------+
| @@force_parallel_execute |
+--------------------------+
|                        1 |
+--------------------------+
1 row in set (0.00 sec)

yejr 发表于 2024-4-16 10:34:38

JasonPan 发表于 2023-11-27 10:51
升级了,还是不可以
DDL地址

参考文章 MySQL报障之coredump收集处理流程 https://mp.weixin.qq.com/s/CrV9kgIUnUd4GEru93xjdA 提到的方法,打包收集相应的coredump文件、my.cnf配置文件、错误日志文件以及能稳定复现的方法,然后联系我们报告bug。
页: [1]
查看完整版本: 执行某些 SQL 导致数据库重启