调试编译的服务器在数据库打开时崩溃

Debug-Compiled Server crashes on Database opening

本文关键字:崩溃 数据库 编译 服务器 调试      更新时间:2023-10-16

快速背景...
在我的服务器上为 WoW 3.3.5 运行 AC 将近 3 年了。(以前称为TrinityCore(
在旧系统上运行旧版本。
上周使用最新提交进行更新,并找到了依赖项更新。
恢复到我运行的先前版本,该版本在主服务器上运行良好。
安装在开发服务器上,以使用"发布"版本执行一些更新和测试配置设置。
客户端挂在"连接"或"获取字符列表"上,我将单独发布。(不是实例重置查询,"thread_wait"上的 ~11 个线程(

在调试模式下构建服务器,以尝试跟踪正在发生的事情。在
调试模式下启动,在"打开数据库池'acore_world'"时崩溃。

bt 显示这是在"request = (SQLOperation*((m_queue->dequeue(((;"在 'src/common/Database/DatabaseWorker.cpp:29' 中找到。

bt full
#0 0x00007ffff74129ef in ACE_Activation_Queue::dequeue (this=0x7ffff4c7f120, tv=0x0) at ../../ace/Activation_Queue.cpp:89
mb = 0x0
#1 0x00000000020b1874 in DatabaseWorker::svc (this=0x7ffff4cc61e0) at /backups/local/src/azerothcore/src/common/Database/DatabaseWorker.cpp:29
request = 0x0
#2 0x00007ffff74b7ccd in ACE_Task_Base::svc_run (args=0x7ffff4cc61e0) at ../../ace/Task.cpp:271
t = 0x7ffff4cc61e0
status = <optimized out>
thr_mgr_ptr = <optimized out>
#3 0x00007ffff74b9446 in ACE_Thread_Adapter::invoke_i (this=0x7ffff4ca0070) at ../../ace/Thread_Adapter.cpp:161
hook = <optimized out>
func = 0x7ffff74b7c60 <ACE_Task_Base::svc_run(void*)>
arg = 0x7ffff4cc61e0
cancel_flags = 4259842
status = 0x0
#4 0x00007ffff74b94fb in ACE_Thread_Adapter::invoke (this=0x7ffff4ca0070) at ../../ace/Thread_Adapter.cpp:96
exit_hook_instance = <optimized out>
exit_hook_maybe = {instance_ = 0x0}
exit_hook_ptr = 0x7ffff3a69000
exit_hook = @0x7ffff3a69000: {thread_control_ = {tm_ = 0x7ffff4cda140, status_ = 0x0}}
#5 0x00007ffff628f5bd in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#6 0x00007ffff559e59d in clone () from /lib64/libc.so.6
No symbol table info available.

我正在运行 Mageia 5、GCC 4.9.2、CMAKE 3.0.2、glibc 2.20.27、libACE 6.0.3

我认为这是一个数据库问题,因为我有很多"MYSQL 服务器已消失"的消息,并且服务器将在关闭时挂起。(无法调试那么远,所以不知道在哪里或为什么(

谢谢你的关注。

花了一段时间,但我终于弄清楚了这里发生了什么。

libACE 的编译和测试失败。 我没有看到这一点,当我"安装"时也没有明显。 这导致ACE_Activation_Queue::dequeue()失败,从而导致上述悬挂。

现在一切正常,使用 ACE 6.5.0。