调试编译服务器在数据库打开时崩溃
Debug-Compiled Server crashes on Database opening
快速背景...
在我的服务器上 运行 AC for WoW 3.3.5 将近 3 年了。(以前是 TrinityCore)
运行 旧系统上的旧版本。
上周去更新了最新的提交并发现了依赖更新。
恢复到以前的版本我是 运行,它在主服务器上运行良好。
安装在开发服务器上使用 'Release' build.
进行一些更新和测试配置设置
客户端挂在“正在连接”或“获取字符列表”上,我将 post 单独讨论。 (不是实例重置查询,“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。
快速背景...
在我的服务器上 运行 AC for WoW 3.3.5 将近 3 年了。(以前是 TrinityCore)
运行 旧系统上的旧版本。
上周去更新了最新的提交并发现了依赖更新。
恢复到以前的版本我是 运行,它在主服务器上运行良好。
安装在开发服务器上使用 'Release' build.
进行一些更新和测试配置设置
客户端挂在“正在连接”或“获取字符列表”上,我将 post 单独讨论。 (不是实例重置查询,“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。