envoyproxy/envoy

Stateful Session cookies incompatible between Envoy Processes.

已關閉

#44,111 建立於 2026年3月25日

 (1 則留言) (0 個反應) (1 位負責人)C++ (5,373 個分叉)batch import
bughelp wanted

倉庫指標

星標
 (27,997 顆星)
PR 合併指標
 (平均合併 8天) (30 天內合併 378 個 PR)

描述

Title: Stateful Session cookies incompatible between Envoy Processes.

Description: When using Envoy as an Edge Proxy with multiple instances (an NLB in front) AND using the StatefulSession with cookies doesn't work properly.

The cookie is encoded with the expiry time BUT it uses the monotonic clock:

https://github.com/envoyproxy/envoy/blob/21b70d126c0a5c16d844658ee2db68f94deb7548/source/extensions/http/stateful_session/cookie/cookie.cc#L21-L22

When HTTP requests are routed to different Envoy processes, they will have different values for their monotonic clock and the cookie can inadvertently expire sooner then its should, which will cause a new backend to get selected.

I believe the appropriate fix is for time_source_.systemTime() to be used so that two envoy processes can validate each other cookies.

cc @cpakulski

貢獻者指南