SE crashed when GSLB is configured with site persistence cookie triggered by ngx_http_persist_serialize_site_cookie.
search cancel

SE crashed when GSLB is configured with site persistence cookie triggered by ngx_http_persist_serialize_site_cookie.

book

Article ID: 386272

calendar_today

Updated On:

Products

VMware Avi Load Balancer

Issue/Introduction

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
 

Cause

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.

Resolution

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.

root@<Controller ip>:#  cat /opt/avi/archive/stack_traces/<se_dp.timestamp>.stack_trace
 
UI:
Navigate to Administration>Support>Crash Reports>Expand the latest crash file.
 
 
Workaround: Remove the Site cookie persistence from GSLB pool.

Fix: Issue is resolved in these versions - 30.1.1, 30.2.1, 22.1.5, 22.1.3-2p9, 22.1.4-2p4