Closed engsr6982 closed 8 months ago
我这里传送到未加载区块直接崩服
啥版本,方便发log和dmp吗
经过调试,我发现问题出在这段代码上
_a = TPARequestPool;
TPARequestPool.requests = {};
TPARequestPool.cleanup = async () => {
try {
const thiz = _a;
for (const reciever in thiz.requests) {
for (const sender in thiz.requests[reciever]) {
const req = thiz.requests[reciever][sender];
if (req.available != Available.Available) {
if (req.sender != null) {
req.sender.tell(AvailDescription(req.available));
}
thiz.deleteRequest(sender, reciever);
}
}
}
if (config.Tpa.CacheCheckFrequency <= 0)
return;
setTimeout(_a.cleanup, config.Tpa.CacheCheckFrequency);
}
catch (e) {
formatAndPrintingError(e);
}
};
TPARequestPool.cleanup();
请问该插件在LL2是否存在假死情况?
请问该插件在LL2是否存在假死情况?
LL2/LL3截止目前均没有用户反映假死问题:(
LL2自己开服的时候也未出现假死问题 假死问题我在LL3测试插件功能的时候发现的
我也多次遇到假死的情况,但没有找到具体的原因。 假死可能出现在玩家正常游玩时或者玩家进服时,毫无征兆。 假死后难以发现,发现后只能手动关闭服务端,而且没有崩溃日志,难以排查问题。
在隔壁一个连锁采集插件也有同样的假死问题 后台也是没任何报错
而且也是概率假死 我启用连锁采集挖掘的时候 有些时候连锁采集正常没假死 有些时候会假死 假死的时候,一般都是如下情况: 玩家挖掘第一个方块,连锁采集插件把挖掘拦截了,没启用连锁采集 再挖掘方块,然后服务器就假死了,这个方块客户端显示挖掉了但没掉落物,也没连锁采集启用
已经在 5b3e40df41f772c1f913557a84af73dd4aefad55 中修复
Describe the bug
我在尝试Tpr查找安全坐标等待区块加载时,服务端概率性假死
具体为这几行,判断Y轴是否变动来判断是否加载区块 https://github.com/engsr6982/lse-workspace/blob/799d4f885de2b6b40f29def9b610a224d3346839/projects/LSE-TPSystem/src/tpr/TPR_Core.ts#L100-L111 区块加载后就开始获取方块对象进行查找安全方块 查找部分应该是没问题的,假死都出现在确认开始随机传送后就假死
①插件在LSE编写的查找安全坐标假死过一次 ②远程调用原生插件导出的API假死过两次
To Reproduce
Tpr.restrictedArea.Enable
为falseTpr.UseZoneCheckV3API
开启/关闭 可以测试1/2两种假死情况/tps tpr
执行随机传送Expected behavior
BDS正常运行,而不是假死
Screenshots
No response
Platform
win11
BDS Version
1.20.62-2.649+ecfbe63
LeviLamina Version
LeviLamina-0.9.2+2f58b1be9
LegacyScriptEngine Version
0.4.1
Additional context
ZoneCheckV3-windows-x64-c7daeac0a53e78c78cb17232b8813df8abbc1e6d.zip