Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

注册真指令时概率性崩服 #304

Closed
VoryWork opened this issue Mar 7, 2022 · 8 comments
Closed

注册真指令时概率性崩服 #304

VoryWork opened this issue Mar 7, 2022 · 8 comments
Labels
bug Related to software malfunction

Comments

@VoryWork
Copy link

VoryWork commented Mar 7, 2022

Exceptions module 异常模块

ScriptEngine 脚本引擎

Operating System 操作系统

Windows Server 2019

LiteLoader version LiteLoader版本

2.1.3

BDS version BDS版本

1.18.12

What happened? 发生了什么问题?

[Crashed!]
-- Unhandled Exception in -> ntdll.dll
-- Exception Code: 0xC0000374
-- Minidump generated in Directory ./logs/Crash

[TrackBack] Function RtlIsZeroMemory at 0x7FFAEEEAF080 [ntdll.dll]
[TrackBack] Function RtlIsZeroMemory at 0x7FFAEEEAF080 [ntdll.dll]
[TrackBack] Function RtlpNtSetValueKey at 0x7FFAEEEB7A30 [ntdll.dll]
[TrackBack] Function RtlpNtSetValueKey at 0x7FFAEEEB7A30 [ntdll.dll]
[TrackBack] Function RtlpNtSetValueKey at 0x7FFAEEEB7A30 [ntdll.dll]
[TrackBack] Function RtlGetCurrentServiceSessionId at 0x7FFAEEDD4850 [ntdll.dll]
[TrackBack] Function RtlFreeHeap at 0x7FFAEEDD4760 [ntdll.dll]
[TrackBack] Function free_base at 0x7FFAEC59F040 [ucrtbase.dll]
[TrackBack] Function operator delete at 0x7FF7795EFC30 [bedrock_server_mod.exe]
[TrackBack] Function std::_Tree_val<std::_Tree_simple_types<std::pair<typeid_t const ,std::vector<int,std::allocator > > > >::_Erase_tree<std::allocator<std::_Tree_node<std::pair<typeid_t const ,std::vector<int,std::allocator > >,void * __ptr64> > > at 0x7FF7787C13A0 [bedrock_server_mod.exe]
[TrackBack] Function std::_Tree_val<std::_Tree_simple_types<std::pair<typeid_t const ,std::vector<int,std::allocator > > > >::_Erase_tree<std::allocator<std::_Tree_node<std::pair<typeid_t const ,std::vector<int,std::allocator > >,void * __ptr64> > > at 0x7FF7787C13A0 [bedrock_server_mod.exe]
[TrackBack] Function std::_Tree_val<std::_Tree_simple_types<std::pair<typeid_t const ,std::vector<int,std::allocator > > > >::_Erase_tree<std::allocator<std::_Tree_node<std::pair<typeid_t const ,std::vector<int,std::allocator > >,void * __ptr64> > > at 0x7FF7787C13A0 [bedrock_server_mod.exe]
[TrackBack] Function std::_Tree_val<std::_Tree_simple_types<std::pair<typeid_t const ,std::vector<int,std::allocator > > > >::_Erase_tree<std::allocator<std::_Tree_node<std::pair<typeid_t const ,std::vector<int,std::allocator > >,void * __ptr64> > > at 0x7FF7787C13A0 [bedrock_server_mod.exe]
[TrackBack] Function std::_Tree_val<std::_Tree_simple_types<std::pair<typeid_t const ,std::vector<int,std::allocator > > > >::_Erase_tree<std::allocator<std::_Tree_node<std::pair<typeid_t const ,std::vector<int,std::allocator > >,void * __ptr64> > > at 0x7FF7787C13A0 [bedrock_server_mod.exe]
[TrackBack] Function CommandRegistry::ParseTable::~ParseTable at 0x7FF7787DBE80 [bedrock_server_mod.exe]
[TrackBack] Function CommandRegistry::addRule at 0x7FF7787E7180 [bedrock_server_mod.exe]
[TrackBack] Function CommandRegistry::addSoftEnum at 0x7FF7787E7440 [bedrock_server_mod.exe]
[TrackBack] Function DynamicCommandInstance::setSoftEnum at 0x7FFAB76E1FB0 [LiteLoader.dll]
[TrackBack] Function DynamicCommandInstance::initCommandBuilder at 0x7FFAB76E2410 [LiteLoader.dll]
[TrackBack] Function DynamicCommandInstance::initCommandBuilder at 0x7FFAB76E2410 [LiteLoader.dll]
[TrackBack] Function DedicatedServer::start at 0x7FF7783782B0 [bedrock_server_mod.exe]
[TrackBack] Function main at 0x7FF7783A2300 [bedrock_server_mod.exe]
[TrackBack] Function __scrt_common_main_seh at 0x7FF7797F26D4 [bedrock_server_mod.exe]
[TrackBack] Function BaseThreadInitThunk at 0x7FFAEDC27020 [KERNEL32.DLL]
[TrackBack] Function RtlUserThreadStart at 0x7FFAEEE02630 [ntdll.dll]

Steps to reproduce? 复现此问题的步骤

1.反复重启服务器

Relevant log output 有关的日志/输出

[Crashed!]
-- Unhandled Exception in -> ntdll.dll
-- Exception Code: 0xC0000374
-- Minidump generated in Directory ./logs/Crash

[TrackBack] Function RtlIsZeroMemory at 0x7FFAEEEAF080  [ntdll.dll]
[TrackBack] Function RtlIsZeroMemory at 0x7FFAEEEAF080  [ntdll.dll]
[TrackBack] Function RtlpNtSetValueKey at 0x7FFAEEEB7A30  [ntdll.dll]
[TrackBack] Function RtlpNtSetValueKey at 0x7FFAEEEB7A30  [ntdll.dll]
[TrackBack] Function RtlpNtSetValueKey at 0x7FFAEEEB7A30  [ntdll.dll]
[TrackBack] Function RtlGetCurrentServiceSessionId at 0x7FFAEEDD4850  [ntdll.dll]
[TrackBack] Function RtlFreeHeap at 0x7FFAEEDD4760  [ntdll.dll]
[TrackBack] Function free_base at 0x7FFAEC59F040  [ucrtbase.dll]
[TrackBack] Function operator delete at 0x7FF7795EFC30  [bedrock_server_mod.exe]
[TrackBack] Function std::_Tree_val<std::_Tree_simple_types<std::pair<typeid_t<CommandRegistry> const ,std::vector<int,std::allocator<int> > > > >::_Erase_tree<std::allocator<std::_Tree_node<std::pair<typeid_t<CommandRegistry> const ,std::vector<int,std::allocator<int> > >,void * __ptr64> > > at 0x7FF7787C13A0  [bedrock_server_mod.exe]
[TrackBack] Function std::_Tree_val<std::_Tree_simple_types<std::pair<typeid_t<CommandRegistry> const ,std::vector<int,std::allocator<int> > > > >::_Erase_tree<std::allocator<std::_Tree_node<std::pair<typeid_t<CommandRegistry> const ,std::vector<int,std::allocator<int> > >,void * __ptr64> > > at 0x7FF7787C13A0  [bedrock_server_mod.exe]
[TrackBack] Function std::_Tree_val<std::_Tree_simple_types<std::pair<typeid_t<CommandRegistry> const ,std::vector<int,std::allocator<int> > > > >::_Erase_tree<std::allocator<std::_Tree_node<std::pair<typeid_t<CommandRegistry> const ,std::vector<int,std::allocator<int> > >,void * __ptr64> > > at 0x7FF7787C13A0  [bedrock_server_mod.exe]
[TrackBack] Function std::_Tree_val<std::_Tree_simple_types<std::pair<typeid_t<CommandRegistry> const ,std::vector<int,std::allocator<int> > > > >::_Erase_tree<std::allocator<std::_Tree_node<std::pair<typeid_t<CommandRegistry> const ,std::vector<int,std::allocator<int> > >,void * __ptr64> > > at 0x7FF7787C13A0  [bedrock_server_mod.exe]
[TrackBack] Function std::_Tree_val<std::_Tree_simple_types<std::pair<typeid_t<CommandRegistry> const ,std::vector<int,std::allocator<int> > > > >::_Erase_tree<std::allocator<std::_Tree_node<std::pair<typeid_t<CommandRegistry> const ,std::vector<int,std::allocator<int> > >,void * __ptr64> > > at 0x7FF7787C13A0  [bedrock_server_mod.exe]
[TrackBack] Function CommandRegistry::ParseTable::~ParseTable at 0x7FF7787DBE80  [bedrock_server_mod.exe]
[TrackBack] Function CommandRegistry::addRule at 0x7FF7787E7180  [bedrock_server_mod.exe]
[TrackBack] Function CommandRegistry::addSoftEnum at 0x7FF7787E7440  [bedrock_server_mod.exe]
[TrackBack] Function DynamicCommandInstance::setSoftEnum at 0x7FFAB76E1FB0  [LiteLoader.dll]
[TrackBack] Function DynamicCommandInstance::initCommandBuilder at 0x7FFAB76E2410  [LiteLoader.dll]
[TrackBack] Function DynamicCommandInstance::initCommandBuilder at 0x7FFAB76E2410  [LiteLoader.dll]
[TrackBack] Function DedicatedServer::start at 0x7FF7783782B0  [bedrock_server_mod.exe]
[TrackBack] Function main at 0x7FF7783A2300  [bedrock_server_mod.exe]
[TrackBack] Function __scrt_common_main_seh at 0x7FF7797F26D4  [bedrock_server_mod.exe]
[TrackBack] Function BaseThreadInitThunk at 0x7FFAEDC27020  [KERNEL32.DLL]
[TrackBack] Function RtlUserThreadStart at 0x7FFAEEE02630  [ntdll.dll]

Plugin list 插件列表

No response

@VoryWork VoryWork added the bug Related to software malfunction label Mar 7, 2022
@github-actions github-actions bot added the status: review needed Requires assessment or evaluation label Mar 7, 2022
@xiaoqch
Copy link

xiaoqch commented Mar 9, 2022

堆栈信息有点奇怪,是不是pdb和ll版本没有对应?

@github-actions github-actions bot added status: on hold Temporarily paused or delayed and removed status: review needed Requires assessment or evaluation labels Mar 9, 2022
@xiaoqch
Copy link

xiaoqch commented Mar 9, 2022

最新构建重启一个小时,每次注册10个指令无复现

@xiaoqch
Copy link

xiaoqch commented Mar 13, 2022

发现常规的指令在RegCmdEvent外注册崩服,考虑将指令注册自动延迟到RegCmdEvent里执行,但是如果插件在该事件后执行的注册或者热加载插件暂时没有找到好的防止崩服的办法

@VoryWork
Copy link
Author

考虑注册指令时机有问题,在服务器未初始化状态下注册崩服。

@github-actions github-actions bot added status: review needed Requires assessment or evaluation and removed status: on hold Temporarily paused or delayed labels Mar 13, 2022
@Jasonzyt
Copy link
Member

LLSE的动态真命令可以在onServerStarted事件setup,LL的真命令要在RegCmdEvent执行setup

@github-actions github-actions bot added status: on hold Temporarily paused or delayed and removed status: review needed Requires assessment or evaluation labels Mar 13, 2022
@xiaoqch
Copy link

xiaoqch commented Mar 13, 2022

LLSE的动态真命令可以在onServerStarted事件setup,LL的真命令要在RegCmdEvent执行setup

最新构建已经可以(而且推荐)在插件加载时注册,会自动延迟到RegCmdEvent里注册,onServerStarted事件是在RegCmdEvent后的,目前发现貌似是在RegCmdEvent外注册插件均有小概率出问题,动态指令和常规指令注册都出现过

@xiaoqch
Copy link

xiaoqch commented Mar 14, 2022

考虑注册指令时机有问题,在服务器未初始化状态下注册崩服。

目前仅actions构建版本支持自动延迟注册指令

@github-actions github-actions bot removed the status: on hold Temporarily paused or delayed label Mar 20, 2022
xiaoqch added a commit that referenced this issue Mar 28, 2022
move onServerStarted Event and to tick
move dynamic command setup to tick or CmdRegEvent
@xiaoqch
Copy link

xiaoqch commented Mar 28, 2022

此问题已于commit #56a012d 修复,如仍有问题请重新打开此issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Related to software malfunction
Development

No branches or pull requests

4 participants