The SE crashes when GSLB is configured with site persistence cookies, and an HTTP/1.0 request arrives without a Host header.
This issue was triggered by the subroutine ngx_http_persist_serialize_site_cookie
, which caused a failure during the processing of persistence-related tasks.
[New LWP 1700]
[New LWP 1701]
[New LWP 1702]
Core was generated by `se_dp: worker process 0: '.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
[Current thread is 1 (Thread 0x7f3502f62040 (LWP 1700))]
#0 0x00007f35065f9bee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x000055eff38cfe38 in ngx_http_persist_serialize_site_cookie (c=c@entry= , buffer=buffer@entry= "", cookie_name= ) at /home/aviuser/workspace/22.1.3-ci-build/service_engine/nginx/src/http/ngx_http_persist.c:1850
#2 0x000055eff38d04c0 in ngx_http_persist_insert_site_persistence_cookie (r= ) at /home/aviuser/workspace/22.1.3-ci-build/service_engine/nginx/src/http/ngx_http_persist.c:471
#3 ngx_http_persist_header_filter (r= ) at /home/aviuser/workspace/22.1.3-ci-build/service_engine/nginx/src/http/ngx_http_persist.c:650
If an HTTP/1.0 header arrives without a host header, i.e NULL (permissible in HTTP/1.0), and this header is internally processed for comparison with GS domain names, it results in SE failure.
The stack trace will include the function: ngx_http_persist_serialize_site_cookie. (It should be present in initial #1 Subroutine)
To investigate further, you can review the latest stack traces from the Controller or SE by accessing the following path:
CLI:
Login to Controller via ssh and run this command.Please note you have to replace the name of se_dp file here.
Fix: Issue is resolved in these versions - 30.1.1, 30.2.1, 22.1.5, 22.1.3-2p9, 22.1.4-2p4