【已解决】linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

网关设备, 语音中控设备等
liuzx
Posts: 25

新接入的linux3.4.2SD打开设备后,无论是在手机涂鸦APP还是在中控屏上,控制设备都会死机。附件是带有死机转储数据的日志。

Attachments
涂鸦dump死机日志.txt
(438.5 KiB) Downloaded 181 times

Tags:
luoji
Posts: 104

Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

明天安排处理

lightthgil
Posts: 41

Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

是控制“RGBCW彩灯”导致死机吗?日志显示最后一条是控制这个设备 开关:关。不过前面分别操作过该设备的颜色、场景、亮度、开关、模式,都是正常的。同时我添加虚拟该设备测试,也没有出现死机。
分析死机日志信息不够,需要提供死机时的堆栈

liuzx
Posts: 25

Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

这次复现问题还没到控制设备时就死机了,目前是在同步设备的时候打开设备(模拟控制时打开设备),然后中控直接段错误死机。
以下为在同步设备时打开设备的代码:

OPERATE_RET tuya_home_control_dev_room_sync_event(TY_INFO_SYNC_TP_E* sync_type)
{
TUYA_CHECK_NULL_RETURN(sync_type, OPRT_INVALID_PARM);

Code: Select all

if ((*sync_type != TY_SYNC_TP_ROOM) && (*sync_type != TY_SYNC_TP_DEV)) {
    return OPRT_OK;
}

TUYA_DEV_BRIEF_INFO_S* dev_list;
UINT_T dev_count = 0;
OPERATE_RET result = tuya_get_dev_brief_info_list(&dev_list, &dev_count);
if (OPRT_OK != result) {
    PR_ERR("tuya_get_dev_brief_info_list failed %d", result);
    return OPRT_COM_ERROR;
}

TY_HOME_CTRL_DEV_CB cb;
TY_HOME_CTRL_DEV_T des = NULL;
for(UINT_T level1 = 0; level1 < dev_count; ++level1)
{
    if(0 == strcmp("dj", dev_list[level1].category))
    {
        des = tuya_home_ctrl_dev_open(dev_list[level1].id, &cb);
        printf("--%d-- --%s-- 打开设备:%s des:%d name:%s\n", __LINE__, __FILE__, dev_list[level1].id, (int)des,dev_list[level1].name);
    }
    printf("--%d-- --%s-- 添加设备:%s \n", __LINE__, __FILE__, dev_list[level1].name);
}

test_devices_dp(dev_list, dev_count);

tuya_dev_brief_info_list_free(dev_list, dev_count);

return OPRT_OK;

}

Attachments
运行时的所有数据包括crash.rar
(1.98 MiB) Downloaded 174 times
涂鸦打开设备后不操作直接死机日志.txt
(244.55 KiB) Downloaded 210 times
luoji
Posts: 104

Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

目前其他sdk客户没有类似反馈,也无法从提供的log看出问题。需要你们提供挂死时的详细函数栈

liuzx
Posts: 25

Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

这个详细函数栈信息怎么弄出来??

luoji
Posts: 104

Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

使用gdb等调试工具

liuzx
Posts: 25

Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

死机的时候报错的位置识别成了??:
Thread 8 "cmmod" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 1355]
0x44e2e308 in ?? ()

这个应该是进入了静态库文件里面了,所以不知道函数名称是什么。

Attachments
gdb运行死机日志.txt
(281.71 KiB) Downloaded 197 times
luoji
Posts: 104

Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

没有打印出函数说明符号表信息被去除了。不要对bin进行strip

liuzx
Posts: 25

Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

这是用你们写的Makefile直接编译的,里面没有strip操作。是不是你们的静态库strip过了,如果是这样的话,麻烦提供没有strip过的库一下

Post Reply