lua代码中报错Segmentation fault的一个情况
遇见场景
最近使用lua结合mqtt做一个升级系统的实现,mqtt相当于跑在一个协程里面,主程序用于不断循环访问服务器。两服务分开运行均可以正常使用,当结合到一块后,主动升级查询遇上mqtt推送信息升级时便有如下报错信息,'Segmentation fault' 或 'attempt to call a nil value
原因与解决
在协程与主程序中有一方使用io.popen时,若另一方也使用io.popen或os.execute,便会报如上的错误。为了避免以上漏洞出现以及维护系统安全性,应当使用互斥锁来保证两者不可同时进行升级便可解决以上问题。

浙公网安备 33010602011771号