envoyproxy / envoy

Cloud-native high-performance edge/middle/service proxy
https://www.envoyproxy.io
Apache License 2.0
24.9k stars 4.79k forks source link

Segfault when SDS call credential file is missing #9765

Open rmichela opened 4 years ago

rmichela commented 4 years ago

Description: When Istio is configured to use the Secret Discovery Service, it configures Envoy as follows. If the file /var/run/secrets/tokens/istio-token is missing or inaccessible, Envoy segfaults.

"tls_certificate_sds_secret_configs": [
    {
        "name": "default",
        "sds_config": {
            "api_config_source": {
                "api_type": "GRPC",
                "grpc_services": [
                    {
                        "google_grpc": {
                            "target_uri": "unix:/var/run/sds/uds_path",
                            "channel_credentials": {
                                "local_credentials": {}
                            },
                            "call_credentials": [
                                {
                                    "from_plugin": {
                                        "name": "envoy.grpc_credentials.file_based_metadata",
                                        "typed_config": {
                                            "@type": "type.googleapis.com/envoy.config.grpc_credential.v2alpha.FileBasedMetadataConfig",
                                            "secret_data": {
                                                "filename": "/var/run/secrets/tokens/istio-token"
                                            },
                                            "header_key": "istio_sds_credentials_header-bin"
                                        }
                                    }
                                }
                            ],
                            "stat_prefix": "sdsstat",
                            "credentials_factory_name": "envoy.grpc_credentials.file_based_metadata"
                        }
                    }
                ]
            }
        }
    }
]

Repro steps:

  1. Set up SDS similar to above.
  2. Remove /var/run/secrets/tokens/istio-token

Logs:

Click to expand full log...

``` 2020-01-21T19:29:35.136910Z info FLAG: --applicationPorts="[]" 2020-01-21T19:29:35.136933Z info FLAG: --binaryPath="/usr/local/bin/envoy" 2020-01-21T19:29:35.136937Z info FLAG: --concurrency="2" 2020-01-21T19:29:35.136940Z info FLAG: --configPath="/etc/istio/proxy" 2020-01-21T19:29:35.136944Z info FLAG: --connectTimeout="10s" 2020-01-21T19:29:35.136947Z info FLAG: --controlPlaneAuthPolicy="NONE" 2020-01-21T19:29:35.136952Z info FLAG: --controlPlaneBootstrap="true" 2020-01-21T19:29:35.136955Z info FLAG: --customConfigFile="" 2020-01-21T19:29:35.136960Z info FLAG: --datadogAgentAddress="" 2020-01-21T19:29:35.136963Z info FLAG: --disableInternalTelemetry="false" 2020-01-21T19:29:35.136966Z info FLAG: --discoveryAddress="istio-pilot.istio-system:15010" 2020-01-21T19:29:35.136968Z info FLAG: --dnsRefreshRate="300s" 2020-01-21T19:29:35.136972Z info FLAG: --domain="service.svc.cluster.local" 2020-01-21T19:29:35.136977Z info FLAG: --drainDuration="45s" 2020-01-21T19:29:35.136980Z info FLAG: --envoyAccessLogService="" 2020-01-21T19:29:35.136983Z info FLAG: --envoyMetricsService="" 2020-01-21T19:29:35.136987Z info FLAG: --help="false" 2020-01-21T19:29:35.136990Z info FLAG: --id="" 2020-01-21T19:29:35.136993Z info FLAG: --ip="" 2020-01-21T19:29:35.136997Z info FLAG: --lightstepAccessToken="" 2020-01-21T19:29:35.137000Z info FLAG: --lightstepAddress="" 2020-01-21T19:29:35.137004Z info FLAG: --lightstepCacertPath="" 2020-01-21T19:29:35.137008Z info FLAG: --lightstepSecure="false" 2020-01-21T19:29:35.137011Z info FLAG: --log_as_json="false" 2020-01-21T19:29:35.137014Z info FLAG: --log_caller="" 2020-01-21T19:29:35.137018Z info FLAG: --log_output_level="default:info" 2020-01-21T19:29:35.137021Z info FLAG: --log_rotate="" 2020-01-21T19:29:35.137025Z info FLAG: --log_rotate_max_age="30" 2020-01-21T19:29:35.137036Z info FLAG: --log_rotate_max_backups="1000" 2020-01-21T19:29:35.137041Z info FLAG: --log_rotate_max_size="104857600" 2020-01-21T19:29:35.137045Z info FLAG: --log_stacktrace_level="default:none" 2020-01-21T19:29:35.137054Z info FLAG: --log_target="[stdout]" 2020-01-21T19:29:35.137062Z info FLAG: --mixerIdentity="" 2020-01-21T19:29:35.137066Z info FLAG: --parentShutdownDuration="1m0s" 2020-01-21T19:29:35.137069Z info FLAG: --pilotIdentity="" 2020-01-21T19:29:35.137074Z info FLAG: --proxyAdminPort="15000" 2020-01-21T19:29:35.137077Z info FLAG: --proxyComponentLogLevel="misc:error" 2020-01-21T19:29:35.137081Z info FLAG: --proxyLogLevel="warning" 2020-01-21T19:29:35.137090Z info FLAG: --serviceCluster="clustername" 2020-01-21T19:29:35.137093Z info FLAG: --serviceregistry="Kubernetes" 2020-01-21T19:29:35.137096Z info FLAG: --statsdUdpAddress="" 2020-01-21T19:29:35.137100Z info FLAG: --statusPort="15020" 2020-01-21T19:29:35.137103Z info FLAG: --templateFile="" 2020-01-21T19:29:35.137106Z info FLAG: --trust-domain="" 2020-01-21T19:29:35.137111Z info FLAG: --zipkinAddress="zipkin:80" 2020-01-21T19:29:35.137140Z info Version 1.4.2-35eb9dc7c6e78dac5bd8c3d142bc2a4601616932-Clean 2020-01-21T19:29:35.137267Z info Obtained private IP [10.16.2.16] 2020-01-21T19:29:35.137316Z info Proxy role: &model.Proxy{ClusterID:"", Type:"sidecar", IPAddresses:[]string{"10.16.2.16", "10.16.2.16"}, ID:"service-58f76459cd-4stp4", Locality:(*envoy_api_v2_core.Locality)(nil), DNSDomain:"service.svc.cluster.local", ConfigNamespace:"", Metadata:(*model.NodeMetadata)(nil), SidecarScope:(*model.SidecarScope)(nil), MergedGateway:(*model.MergedGateway)(nil), ServiceInstances:[]*model.ServiceInstance(nil), WorkloadLabels:labels.Collection(nil), IstioVersion:(*model.IstioVersion)(nil)} 2020-01-21T19:29:35.137325Z info PilotSAN []string(nil) 2020-01-21T19:29:35.137329Z info MixerSAN []string(nil) 2020-01-21T19:29:35.137762Z info Effective config: binaryPath: /usr/local/bin/envoy concurrency: 2 configPath: /etc/istio/proxy connectTimeout: 10s discoveryAddress: istio-pilot.istio-system:15010 drainDuration: 45s envoyAccessLogService: {} envoyMetricsService: {} parentShutdownDuration: 60s proxyAdminPort: 15000 serviceCluster: service.namespace statNameLength: 189 tracing: zipkin: address: zipkin:80 2020-01-21T19:29:35.137800Z info PilotSAN []string(nil) 2020-01-21T19:29:35.137813Z info Starting proxy agent 2020-01-21T19:29:35.137876Z info Received new config, creating new Envoy epoch 0 2020-01-21T19:29:35.137937Z warn watching /etc/certs encountered an error no such file or directory 2020-01-21T19:29:35.137945Z info Epoch 0 starting 2020-01-21T19:29:35.138522Z info Opening status port 15020 2020-01-21T19:29:35.141914Z info Envoy command: [-c /etc/istio/proxy/envoy-rev0.json --restart-epoch 0 --drain-time-s 45 --parent-shutdown-time-s 60 --service-cluster service --service-node sidecar~10.16.2.16~service-58f76459cd-4stp4.namespace~namespace.svc.cluster.local --max-obj-name-len 189 --local-address-ip-version v4 --log-format [Envoy (Epoch 0)] [%Y-%m-%d %T.%e][%t][%l][%n] %v -l warning --component-log-level misc:error --concurrency 2] [Envoy (Epoch 0)] [2020-01-21 19:29:35.200][19][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:91] gRPC config stream closed: 14, no healthy upstream [Envoy (Epoch 0)] [2020-01-21 19:29:35.200][19][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:54] Unable to establish new stream [Envoy (Epoch 0)] [2020-01-21 19:29:37.065][19][warning][config] [external/envoy/source/common/config/grpc_mux_subscription_impl.cc:82] gRPC config for type.googleapis.com/envoy.api.v2.Cluster rejected: Error adding/updating cluster(s) outbound|9093||ajna-kafka.events.ajna.local.sfdc.net: unable to read file: /etc/identity/client/keys/client-key.pem [Envoy (Epoch 0)] [2020-01-21 19:29:37.074][28][critical][main] [external/envoy/source/exe/terminate_handler.cc:13] std::terminate called! (possible uncaught exception, see trace) [Envoy (Epoch 0)] [2020-01-21 19:29:37.074][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:70] Backtrace (use tools/stack_decode.py to get line numbers): [Envoy (Epoch 0)] [2020-01-21 19:29:37.074][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:71] Envoy version: a7b2578494d79fe098f0e99282e0236946562fa0/1.12.0/Clean/RELEASE/BoringSSL [Envoy (Epoch 0)] [2020-01-21 19:29:37.075][31][critical][main] [external/envoy/source/exe/terminate_handler.cc:13] std::terminate called! (possible uncaught exception, see trace) [Envoy (Epoch 0)] [2020-01-21 19:29:37.075][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:70] Backtrace (use tools/stack_decode.py to get line numbers): [Envoy (Epoch 0)] [2020-01-21 19:29:37.075][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:71] Envoy version: a7b2578494d79fe098f0e99282e0236946562fa0/1.12.0/Clean/RELEASE/BoringSSL [Envoy (Epoch 0)] [2020-01-21 19:29:37.080][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #0: Envoy::TerminateHandler::logOnTerminate()::$_0::operator()() [0x5616fb1973ae] [Envoy (Epoch 0)] [2020-01-21 19:29:37.081][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #0: Envoy::TerminateHandler::logOnTerminate()::$_0::operator()() [0x5616fb1973ae] [Envoy (Epoch 0)] [2020-01-21 19:29:37.086][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:77] #1: [0x5616fb1972b9] [Envoy (Epoch 0)] [2020-01-21 19:29:37.087][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:77] #1: [0x5616fb1972b9] [Envoy (Epoch 0)] [2020-01-21 19:29:37.092][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #2: std::__terminate() [0x5616fb4e9d93] [Envoy (Epoch 0)] [2020-01-21 19:29:37.092][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #2: std::__terminate() [0x5616fb4e9d93] [Envoy (Epoch 0)] [2020-01-21 19:29:37.097][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #3: Envoy::Config::DataSource::read() [0x5616fad80b20] [Envoy (Epoch 0)] [2020-01-21 19:29:37.098][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #3: Envoy::Config::DataSource::read() [0x5616fad80b20] [Envoy (Epoch 0)] [2020-01-21 19:29:37.103][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #4: Envoy::Extensions::GrpcCredentials::FileBasedMetadata::FileBasedMetadataAuthenticator::GetMetadata() [0x5616f9ea5820] [Envoy (Epoch 0)] [2020-01-21 19:29:37.103][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #4: Envoy::Extensions::GrpcCredentials::FileBasedMetadata::FileBasedMetadataAuthenticator::GetMetadata() [0x5616f9ea5820] [Envoy (Epoch 0)] [2020-01-21 19:29:37.109][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #5: grpc::MetadataCredentialsPluginWrapper::InvokePlugin() [0x5616fad84508] [Envoy (Epoch 0)] [2020-01-21 19:29:37.109][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #5: grpc::MetadataCredentialsPluginWrapper::InvokePlugin() [0x5616fad84508] [Envoy (Epoch 0)] [2020-01-21 19:29:37.114][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #6: std::__1::__function::__func<>::operator()() [0x5616fad85393] [Envoy (Epoch 0)] [2020-01-21 19:29:37.115][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #6: std::__1::__function::__func<>::operator()() [0x5616fad85393] [Envoy (Epoch 0)] [2020-01-21 19:29:37.120][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #7: grpc::DynamicThreadPool::ThreadFunc() [0x5616fad8acb1] [Envoy (Epoch 0)] [2020-01-21 19:29:37.121][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #7: grpc::DynamicThreadPool::ThreadFunc() [0x5616fad8acb1] [Envoy (Epoch 0)] [2020-01-21 19:29:37.126][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #8: grpc::DynamicThreadPool::DynamicThread::ThreadFunc() [0x5616fad8aa05] [Envoy (Epoch 0)] [2020-01-21 19:29:37.126][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #8: grpc::DynamicThreadPool::DynamicThread::ThreadFunc() [0x5616fad8aa05] [Envoy (Epoch 0)] [2020-01-21 19:29:37.131][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #9: grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix()::{lambda()#1}::__invoke() [0x5616fae4fca3] [Envoy (Epoch 0)] [2020-01-21 19:29:37.131][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #10: start_thread [0x7fd05ee266db] [Envoy (Epoch 0)] [2020-01-21 19:29:37.131][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:83] Caught Aborted, suspect faulting address 0x53900000013 [Envoy (Epoch 0)] [2020-01-21 19:29:37.131][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:70] Backtrace (use tools/stack_decode.py to get line numbers): [Envoy (Epoch 0)] [2020-01-21 19:29:37.131][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:71] Envoy version: a7b2578494d79fe098f0e99282e0236946562fa0/1.12.0/Clean/RELEASE/BoringSSL [Envoy (Epoch 0)] [2020-01-21 19:29:37.132][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #0: __restore_rt [0x7fd05ee31890] [Envoy (Epoch 0)] [2020-01-21 19:29:37.132][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #9: grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix()::{lambda()#1}::__invoke() [0x5616fae4fca3] [Envoy (Epoch 0)] [2020-01-21 19:29:37.132][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #10: start_thread [0x7fd05ee266db] 2020-01-21T19:29:37.134846Z error Epoch 0 exited with error: signal: aborted 2020-01-21T19:29:37.134869Z info No more active epochs, terminating ```

Call Stack: I couldn't get stack_decode.py working on my mac. 😕 Here's what I had in the logs:

[Envoy (Epoch 0)] [2020-01-21 19:29:37.075][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:70] Backtrace (use tools/stack_decode.py to get line numbers):
[Envoy (Epoch 0)] [2020-01-21 19:29:37.075][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:71] Envoy version: a7b2578494d79fe098f0e99282e0236946562fa0/1.12.0/Clean/RELEASE/BoringSSL
[Envoy (Epoch 0)] [2020-01-21 19:29:37.080][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #0: Envoy::TerminateHandler::logOnTerminate()::$_0::operator()() [0x5616fb1973ae]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.086][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:77] #1: [0x5616fb1972b9]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.092][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #2: std::__terminate() [0x5616fb4e9d93]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.097][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #3: Envoy::Config::DataSource::read() [0x5616fad80b20]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.103][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #4: Envoy::Extensions::GrpcCredentials::FileBasedMetadata::FileBasedMetadataAuthenticator::GetMetadata() [0x5616f9ea5820]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.109][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #5: grpc::MetadataCredentialsPluginWrapper::InvokePlugin() [0x5616fad84508]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.115][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #6: std::__1::__function::__func<>::operator()() [0x5616fad85393]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.121][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #7: grpc::DynamicThreadPool::ThreadFunc() [0x5616fad8acb1]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.126][31][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #8: grpc::DynamicThreadPool::DynamicThread::ThreadFunc() [0x5616fad8aa05]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.131][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #9: grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix()::{lambda()#1}::__invoke() [0x5616fae4fca3]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.131][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #10: start_thread [0x7fd05ee266db]
[Envoy (Epoch 0)] [2020-01-21 19:29:37.131][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:83] Caught Aborted, suspect faulting address 0x53900000013
[Envoy (Epoch 0)] [2020-01-21 19:29:37.132][28][critical][backtrace] [bazel-out/k8-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #0: __restore_rt [0x7fd05ee31890]
wozz commented 4 years ago

can you retest on v1.13.0 or later? this appears to be a duplicate of #8941 fixed by #8958, shortly after v1.12.0 was released

surki commented 4 years ago

@wozz Looks I am running into the same problem in 1.13.0, but strangely the crash for me is in Lua filter. Below are relevant snippets, please let me know if you need any other information.

Thread 7 "envoy" received signal SIGSEGV, Segmentation fault.
....
....
Thread 7 (Thread 0x7ffff5431700 (LWP 38)):
#0  0x0000555556d2c507 in Envoy::ThreadLocal::Slot::getTyped<Envoy::Extensions::Filters::Common::Lua::ThreadLocalState::LuaThreadLocal> (this=0x5555597fa420) at bazel-out/k8-opt/bin/include/envoy/thread_local/_virtual_includes/thread_local_interface/envoy/thread_local/thread_local.h:51
#1  0x0000555556d2e75a in Envoy::Extensions::Filters::Common::Lua::ThreadLocalState::registerType<Envoy::Extensions::Filters::Common::Lua::BufferWrapper>()::{lambda()#1}::operator()() const (this=<optimized out>) at /usr/include/c++/8/bits/unique_ptr.h:342
#2  std::_Function_handler<void (), Envoy::Extensions::Filters::Common::Lua::ThreadLocalState::registerType<Envoy::Extensions::Filters::Common::Lua::BufferWrapper>()::{lambda()#1}>::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/8/bits/std_function.h:297
#3  0x000055555749e8a3 in std::function<void ()>::operator()() const (this=0x7ffff541c7f0) at /usr/include/c++/8/bits/std_function.h:682
#4  Envoy::Event::DispatcherImpl::runPostCallbacks (this=0x5555593dc840) at source/common/event/dispatcher_impl.cc:224
#5  0x000055555749e97c in Envoy::Event::DispatcherImpl::run (this=0x5555593dc840, type=Envoy::Event::Dispatcher::RunType::Block) at source/common/event/dispatcher_impl.cc:195
#6  0x0000555557498887 in Envoy::Server::WorkerImpl::threadRoutine (this=0x55555969eaf0, guard_dog=...) at /usr/include/c++/8/bits/unique_ptr.h:342
#7  0x00005555579cd085 in std::function<void ()>::operator()() const (this=<optimized out>) at /usr/include/c++/8/bits/std_function.h:682
#8  Envoy::Thread::ThreadImplPosix::<lambda(void*)>::operator() (__closure=0x0, arg=<optimized out>) at source/common/common/posix/thread_impl.cc:33
#9  Envoy::Thread::ThreadImplPosix::<lambda(void*)>::_FUN(void *) () at source/common/common/posix/thread_impl.cc:35
#10 0x00007ffff7e1efa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00007ffff7d4f4cf in clone () from /lib/x86_64-linux-gnu/libc.so.6
envoy.yaml: ``` ... dynamic_resources: lds_config: path: "/etc/envoy/xds/lds.yaml" cds_config: path: "/etc/envoy/xds/cds.yaml" ... ```
lds.yaml: ``` version_info: "0" resources: - "@type": type.googleapis.com/envoy.api.v2.Listener ... ... filter_chains: - filter_chain_match: {} transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.api.v2.auth.DownstreamTlsContext common_tls_context: tls_certificates: - certificate_chain: filename: "/etc/envoy/example-com.crt" private_key: filename: "/etc/envoy//example-com.key" validation_context: {} alpn_protocols: - h2 - http/1.1 ... ... ```

If the /etc/envoy/example-com.{crt,key} files are missing, I am getting the above crash.