Creator3.5 插件系统BUG反馈

目前发现两个插件系统BUG:

1.在插件场景脚本函数里调用 query-script-name 接口必定导致编辑器卡死:

// 场景脚本
    'test-bug': async function (args,parent) {

                return await Editor.Message.request('scene','query-script-name',"8f1aef24-9f66-4b66-abd8-18569bf9a5d9");

            },

2.在插件场景脚本调用这个函数必定导致编辑器卡死:


'test-bug': async function (args,parent) {

	return Promise((resolve, reject )=>{
		// resolve([]) 没有返回或处理时间过长时导致编辑器卡死
	})

},

卡死1分钟后的报错信息:

[Scene] SceneFacadeManager.executeSceneScriptMethod timeout.
Error: SceneFacadeManager.executeSceneScriptMethod timeout.
at C:\CocosDashboard_1.1.0\resources\.editors\Creator\3.5.0\resources\app.asar\builtin\scene\dist\script\3d\manager\ipc.ccc:1:1125

以上场景脚本函数均通过以下方式调用:
await Editor.Message.request(‘scene’,‘execute-scene-script’,{xxxxxxxxxx})

测试多遍发现这问题越来越严重

在插件场景脚本自定义的事件函数里调用 await Editor.Message.request(‘scene’,‘xxxxxx’)
有不小的概率会导致场景编辑窗口卡死
已经调用以下api会导致卡死

Editor.Message.request(‘scene’,‘query-components’)
Editor.Message.request(‘scene’,‘query-script-name’,’‘)

这BUG会导致已安装插件可能会成为编辑器卡死的定时炸弹

非常抱歉
因为队列机制之前坏了,3.5.0 操作队列恢复后,正常的操作都会在队列内等待上一个操作完成,而这时候如果正在队列内的一个操作发起另一个等待场景操作的请求,就会出现死锁问题。

之后可以将场景脚本的调用排除等待队列,应该能解决类似问题。

1赞

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。