pingostack/pingos

arm嵌入平台(jetson)运行出错

tonyskypc opened this issue · 3 comments

在arm平台编译可以,运行出错,主要是到rtmp这个配置加载出错,提示segmentation fault,通过gdb跟踪,提示src/core/ngx_string.c 26行。
请大神帮忙解决,在x86编译运行正常。

我也遇到了这个问题,今天定位了下找到了原因。

modules/nginx-rtmp-module/ngx_rtmp_codec_module.c 里有个函数 ngx_rtmp_codec_add_variables
1659088971180

函数里的for循环条件是v->name.len;也就是当v->name.len为0时才会退出循环。
我在arm下调试的时候发现这里定义的ngx_rtmp_codec_variabes数组实际数据有两个,当处理完这两个的时候v指向下一个是有值的,导致v->name.len不为0,我这里跟踪的时候是2,这会导致指针指向未定义的数据,实际上跟踪后会发现v->name.data为NULL,ngx_rtmp_add_variable函数里会执行ngx_strlow,但name->data为NULL时即触发段错误。

解决这个问题的方式可以清晰指定循环条件,例如取数据个数然后判断。
1659089575563

目前用这种方式改完之后编译可以正常运行,至于还有没有问题就需要继续测试了。

已经在arm平台编译通过,测试运行正常,谢谢。@WK-LLP

我也在arm64编译成功后运行遇到该问题,按上面修改,运行正常。