tengine dyups灌入consistent_hash时,hash key使用新变量时导致worker coredump问题

jmp7cifd  于 3个月前  发布在  其他
关注(0)|答案(3)|浏览(72)

dyups灌入开启consistent hash策略的upstream数据时,如果hash key使用了新变量,比如$arg_FengXingYuXin,那么会通过ngx_http_get_variable_index新增一个变量结构体,默认get_handler、set_handler设置为NULL,data、flags设置为0,没有对新变量做进一步的初始化工作。
worker进程处理请求时,转发请求前,会对consistent hash的变量进行运行时渲染,在ngx_http_get_indexed_variable中调用变量arg_FengXingYuXin的get_handler导致段错误,调用栈如下:

这里是否可以参考Nginx reload后的ngx_http_variables_init_vars调用一样,增加对新变量的初始化设置工作。

33qvvth1

33qvvth11#

感谢反馈,可参考这个PR里面的修复。 #1133

fruv7luv

fruv7luv3#

因为Nginx官方1.13.6中有prefix flag,所以参考ngx_http_variables_init_vars进行了修复,整体代码会简介些。

相关问题