drogonframework / drogon

Drogon: A C++14/17/20 based HTTP web application framework running on Linux/macOS/Unix/Windows
MIT License
11.04k stars 1.06k forks source link

进程已结束,退出代码为 139 (interrupted by signal 11:SIGSEGV) #2036

Closed AmdRyZen closed 1 month ago

AmdRyZen commented 1 month ago

macos m2 pro gcc 14.1 最新一个commit 数据库操作 进程已结束,退出代码为 139 (interrupted by signal 11:SIGSEGV) 上一个commit 就没问题

hwc0919 commented 1 month ago

用的什么数据库?能否贴一下代码/配置/log/堆栈

AmdRyZen commented 1 month ago

MySQL 155ae9ad65580e7faa038a3df8eb9e23fa45541b 这个有问题 代码肯定是没问题的 我回退了一个commit 就行了 所有和数据库操作相关的 直接退出 退出代码为 139 (interrupted by signal 11:SIGSEGV) https://github.com/AmdRyZen/drogon-http
这是我的仓库 前两天还有一个gcc 14。1 的问题 项目还是可以运行

image
hwc0919 commented 1 month ago

debug不是靠猜。。能跑也不代表没问题。。

准备环境很麻烦,你的项目还有各种别的依赖。 如果你能提供一下报错的堆栈,或者一个最小复现repo,会方便很多。

AmdRyZen commented 1 month ago

155ae9ad65580e7faa038a3df8eb9e23fa45541b 用这个 commit 随便跑一个sql都有问题
auto xxx = co_await clientPtr->execSqlCoro("select * from xxl_job_info limit 1");

hwc0919 commented 1 month ago

https://github.com/drogonframework/drogon/commit/155ae9ad65580e7faa038a3df8eb9e23fa45541b 可以通过全部的测试用例。你在升级drogon后是否从头重新编译了应用程序?

AmdRyZen commented 1 month ago

今天有更新了 6726df139d6b7cee980676ef6b671049252461d1 我现在在重新编译一下

AmdRyZen commented 1 month ago

首先 dg_ctl -v

dg_ctl(10495,0x201608c00) malloc: error for object 0x10270f910: pointer being freed was not allocated dg_ctl(10495,0x201608c00) malloc: set a breakpoint in malloc_error_break to debug [1] 10495 abort dg_ctl -v

image
AmdRyZen commented 1 month ago

最新的commit 执行sql 还是 进程直接退出

image image
hwc0919 commented 1 month ago

能否展示一下配置文件? 是否配置了 is_fast ?

AmdRyZen commented 1 month ago

https://github.com/drogonframework/drogon/issues/2036#issuecomment-2133114804 是的 我升级是 肯定是重新编译的 我比较喜欢更新版本 包括gcc 可能遇到的问题比别人多一点 现在是 14.1
我只有回退 重新编译就没问题

AmdRyZen commented 1 month ago

https://github.com/drogonframework/drogon/issues/2036#issuecomment-2133133114
不存在配置不对 等其他原因 回退是一个版本就能解决 肯定是 155ae9ad65580e7faa038a3df8eb9e23fa45541b 的问题 306df8a8fbf64dd887242ab9c84342e8114a3b75 一切都是 正常的 可以压测

image
AmdRyZen commented 1 month ago

一开始我就说的比较清楚了 你找一个 Mac 用 gcc14.1 去复现一下

image
AmdRyZen commented 1 month ago

上面是用最新的编译 下面是 306df8a8fbf64dd887242ab9c84342e8114a3b75 编译

image image
hwc0919 commented 1 month ago

感谢你的反馈。问题找到了, 两个函数参数顺序传错了,已经提交PR #2040。

如果能早点给出这些信息,会很快就解决了。

一开始我就说的比较清楚了 你找一个 Mac 用 gcc14.1 去复现一下 image

可惜你这句话里并没有 “说的比较清楚了”,没有任何信息能让我定位到错误, 在我一再追问下才得到需要的信息。希望下次能直接给出 代码/配置/报错堆栈 等信息, 提高交流效率。

AmdRyZen commented 1 month ago

https://github.com/drogonframework/drogon/issues/2036#issuecomment-2133213543 ......... 其实这种 换一个 commit 就没问题的 肯定是 新的提交哪里写错了 我还提交了几个其他的问题 你们那边好像也没办法复现 比如这个 在 gcc 14.1 下面
dg_ctl -v dg_ctl(16428,0x201608c00) malloc: error for object 0x1066c3910: pointer being freed was not allocated dg_ctl(16428,0x201608c00) malloc: set a breakpoint in malloc_error_break to debug [1] 16428 abort dg_ctl -v

hwc0919 commented 1 month ago

如果debug真的这么简单就好了。

AmdRyZen commented 1 month ago

cpp 不一样的操作系统 和 不一样的 编译器 mavc gcc llvm 出来的结果都不一样 确实比较麻烦 其他的语言 起码版本号一样 在不同的环境出来的结果一样

hwc0919 commented 1 month ago

Fixed by #2040