heiyan 发表于 2025-2-18 10:52:47

ARM版mysql shell运行报错

服务器信息:
阿里云ARM版OpenEuler 22.03 sp4 ,安装GreaSQL 8.0.32-26。

https://greatsql.cn/data/attachment/forum/202502/17/144903d9sb595197l0f1uz.png

部署greatsql-shell-8.0.32-25-glibc2.28-aarch64.tar.xz,运行报错:Segmentation fault (core dumped)

dump Core数据见附件:

执行 strace -f /usr/local/mysqlsh/bin/mysqlsh 见附件“strace.txt”:

heiyan 发表于 2025-2-18 10:55:53

AI分析 strace 输出的几个关键点:

1、库加载:mysqlsh 正确加载了所有依赖的库文件,没有出现 ENOENT 错误 (文件未找到)。这表明依赖关系没有问题。

2、内存映射:mmap 和 munmap 调用显示程序进行了一些内存映射操作。其中一些 munmap 调用返回了 EINVAL 错误 (无效参数),但这通常不会导致程序崩溃。

3、信号:SIGSEGV 信号是导致程序崩溃的直接原因。SEGV_MAPERR 代码表示访问了无效的内存地址。

结合之前的分析,我们可以初步推断:

1、问题可能出在 mysqlsh 本身: 由于故障地址是 NULL,这很可能意味着程序内部存在 bug,导致访问了空指针。
2、时间函数可能不是直接原因: 虽然之前的 backtrace 显示崩溃发生在 gettimeofday 调用附近,但 strace 的输出并没有显示任何与时间相关的系统调用出错。 这表明时间函数可能不是直接原因,而只是崩溃发生的位置。

yejr 发表于 2025-2-18 14:49:46

openEuler 22.03 sp4的glibc版本较高,我们发行的greatsql-shell-8.0.32-25-glibc2.28-aarch64可能适配性做的不够好,您可以试试改用docker方式运行

参考:https://gitee.com/GreatSQL/GreatSQL-Docker/tree/master/GreatSQL-Shell

heiyan 发表于 2025-2-18 15:38:58

yejr 发表于 2025-2-18 14:49
openEuler 22.03 sp4的glibc版本较高,我们发行的greatsql-shell-8.0.32-25-glibc2.28-aarch64可能适配性做 ...

收到,叶老师,感谢。
页: [1]
查看完整版本: ARM版mysql shell运行报错