envoyproxy / envoyproxy/envoy

GoogleAsyncClient should shutdown gracefully

Open
#15,072 7 comments 0 reactions 1 assignee Claimed by @antoniovicente View on GitHub
enhancement no stalebot
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 22h
Merged PRs (30d)
430

Description

Destroying GoogleAsyncClientThreadLocal put the reset streams in deferred deleted list. What's more, it expect the stream objects not destroyed. If these streams are destroyed, the GrpcStream, which hides google grpc and envoy grpc, holds a dangling pointer to the destroyed stream. The xds client may call sendMessage later and crash Envoy.

Essentially dispatcher should be able to clean up the deferred deleted list because the deferred deleted object may hold references to ssl ctx object. We want to clean it up in shutdown. Also this allows dispatcher to easier to detect unexpected behavior after shutdown.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.