Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions src/envoy/http/jwt_auth/auth_store.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,21 +66,25 @@ class JwtAuthStoreFactory : public Logger::Loggable<Logger::Id::config> {
JwtAuthStoreFactory(const ::istio::envoy::config::filter::http::jwt_auth::
v2alpha1::JwtAuthentication& config,
Server::Configuration::FactoryContext& context)
: config_(config), tls_(context.threadLocal().allocateSlot()) {
tls_->set(
[this](Event::Dispatcher&) -> ThreadLocal::ThreadLocalObjectSharedPtr {
return std::make_shared<JwtAuthStore>(config_);
});
: config_(
std::make_shared<::istio::envoy::config::filter::http::jwt_auth::
v2alpha1::JwtAuthentication>(config)),
tls_(context.threadLocal().allocateSlot()) {
tls_->set([config = this->config_](Event::Dispatcher&)
-> ThreadLocal::ThreadLocalObjectSharedPtr {
return std::make_shared<JwtAuthStore>(*config);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to create shared-pointer from shared-pointer? Can't we re-use the existing one?

tls_->set([config = this->config_](Event::Dispatcher&)
              -> ThreadLocal::ThreadLocalObjectSharedPtr { return config; }

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, nevermind, it's different type. Sorry for the noise.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

different type? config is proto and JwtAuthStore is not.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes they are different types.

It seems that the change to ControlFactory in tcp/mixer/control_factory.h causes Envoy crash.
It can be reproduced under istio.io/istio by
$ go test -v mixer/test/client/tcp_filter/tcp_filter_test.go, or
$ go test -v mixer/test/client/pilotplugin_tcp/pilotplugin_tcp_test.go
istio/istio#10987 fails at these two test.

I build the proxy binary and run tcp_filter_test.go locally, and get this output.
2019-01-15T23:25:26.198319Z info 15:25:26 Short live HTTP POST http://localhost:20121/echo
[libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/wire_format_lite.cc:625] String field 'istio.mixer.v1.CompressedAttributes.words' contains invalid UTF-8 data when serializing a protocol buffer. Use the 'bytes' type if you intend to send raw bytes.
[libprotobuf INFO src/istio/mixerclient/check_cache.cc:160] Add a new Referenced for check cache: Absence-keys: Exact-keys: connection.id, connection.mtls, context.protocol, context.reporter.uid, context.time, destination.namespace, destination.uid, mesh1.ip, origin.ip, source.ip, target.namespace, target.uid,
2019-01-15T23:25:26.205587Z info 15:25:26 Hello World!
[libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/wire_format_lite.cc:625] String field 'istio.mixer.v1.ReportRequest.default_words' contains invalid UTF-8 data when serializing a protocol buffer. Use the 'bytes' type if you intend to send raw bytes.
2019-01-15T23:25:27.207326Z info 15:25:27 Short live HTTP POST http://localhost:20121/echo
tcmalloc: large alloc 94105249480704 bytes == (nil) @ 0x559694eee0ce 0x559694fb225b 0x559693bb5b32 0x559694f690ef 0x559693c52101 0x559693c5d6fb 0x559693c5c289 0x559693c50fa6 0x559693c512f3 0x5596943f03d7 0x5596943f04ee 0x5596943e7756 0x5596943e8e09 0x5596943e8ba7 0x5596943e552f 0x5596943eab49 0x5596943de488 0x5596943de1de 0x5596943de25c 0x559694a1c59b 0x559694a1cb7f 0x559694a20700 0x5596943d97e6 0x5596943caacd 0x5596943ca39c 0x5596943cb3db 0x559693c14730 0x559694e90f3c 0x559694e90f60 0x7f90d4cae494
[2019-01-15 15:25:27.209][184436][critical][main] [external/envoy/source/exe/terminate_handler.cc:13] std::terminate called! (possible uncaught exception, see trace)
[2019-01-15 15:25:27.209][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:94] Backtrace thr<184436> obj</usr/local/google/home/yinjie/go/bin/envoy> (If unsymbolized, use tools/stack_decode.py):
[2019-01-15 15:25:27.235][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #0 0x559694e8eb7c backward::details::unwind<>()
[2019-01-15 15:25:27.253][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #1 0x559694e8dd66 backward::StackTraceImpl<>::load_here()
[2019-01-15 15:25:27.271][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #2 0x559694e8e408 Envoy::BackwardsTrace::capture()
[2019-01-15 15:25:27.288][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #3 0x559694e9084f Envoy::TerminateHandler::logOnTerminate()::{lambda()#1}::operator()()
[2019-01-15 15:25:27.306][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #4 0x559694e90894 Envoy::TerminateHandler::logOnTerminate()::{lambda()#1}::_FUN()
[2019-01-15 15:25:27.324][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #5 0x559694f0da45 __cxxabiv1::__terminate()
[2019-01-15 15:25:27.341][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #6 0x559694f0da90 std::terminate()
[2019-01-15 15:25:27.359][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #7 0x559694f0dc13 __cxa_throw
[2019-01-15 15:25:27.376][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #8 0x559694eed997 (anonymous namespace)::handle_oom()
[2019-01-15 15:25:27.394][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #9 0x559694fb21cd tcmalloc::allocate_full_cpp_throw_oom()
[2019-01-15 15:25:27.411][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #10 0x559693bb5b31 std::__cxx11::basic_string<>::_M_construct<>()
[2019-01-15 15:25:27.428][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #11 0x559694f690ee std::__cxx11::basic_string<>::basic_string()
[2019-01-15 15:25:27.446][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #12 0x559693bb2a7e std::operator+<>()
[2019-01-15 15:25:27.463][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #13 0x559693c52100 _ZNK5Envoy3Tcp5Mixer6Filter15GetConnectionIdB5cxx11Ev
[2019-01-15 15:25:27.480][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #14 0x559693c5d6fa istio::control::tcp::AttributesBuilder::ExtractCheckAttributes()
[2019-01-15 15:25:27.497][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #15 0x559693c5c288 istio::control::tcp::RequestHandlerImpl::Check()
[2019-01-15 15:25:27.514][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #16 0x559693c50fa5 Envoy::Tcp::Mixer::Filter::callCheck()
[2019-01-15 15:25:27.531][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #17 0x559693c512f2 Envoy::Tcp::Mixer::Filter::onData()
[2019-01-15 15:25:27.549][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #18 0x5596943f03d6 Envoy::Network::FilterManagerImpl::onContinueReading()
[2019-01-15 15:25:27.565][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #19 0x5596943f04ed Envoy::Network::FilterManagerImpl::onRead()
[2019-01-15 15:25:27.582][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #20 0x5596943e7755 Envoy::Network::ConnectionImpl::onRead()
[2019-01-15 15:25:27.598][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #21 0x5596943e8e08 Envoy::Network::ConnectionImpl::onReadReady()
[2019-01-15 15:25:27.615][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #22 0x5596943e8ba6 Envoy::Network::ConnectionImpl::onFileEvent()
[2019-01-15 15:25:27.631][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #23 0x5596943e552e Envoy::Network::ConnectionImpl::ConnectionImpl()::{lambda()#3}::operator()()
[2019-01-15 15:25:27.647][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #24 0x5596943eab48 std::_Function_handler<>::_M_invoke()
[2019-01-15 15:25:27.664][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #25 0x5596943de487 std::function<>::operator()()
[2019-01-15 15:25:27.680][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #26 0x5596943de1dd Envoy::Event::FileEventImpl::assignEvents()::{lambda()#1}::operator()()
[2019-01-15 15:25:27.696][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #27 0x5596943de25b Envoy::Event::FileEventImpl::assignEvents()::{lambda()#1}::_FUN()
[2019-01-15 15:25:27.713][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #28 0x559694a1c59a event_process_active_single_queue.isra.29
[2019-01-15 15:25:27.729][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #29 0x559694a1cb7e event_process_active
[2019-01-15 15:25:27.745][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #30 0x559694a206ff event_base_loop
[2019-01-15 15:25:27.762][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #31 0x5596943d97e5 Envoy::Event::DispatcherImpl::run()
[2019-01-15 15:25:27.778][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #32 0x5596943caacc Envoy::Server::WorkerImpl::threadRoutine()
[2019-01-15 15:25:27.795][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #33 0x5596943ca39b Envoy::Server::WorkerImpl::start()::{lambda()#1}::operator()()
[2019-01-15 15:25:27.811][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #34 0x5596943cb3da std::_Function_handler<>::_M_invoke()
[2019-01-15 15:25:27.827][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #35 0x559693c1472f std::function<>::operator()()
[2019-01-15 15:25:27.843][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #36 0x559694e90f3b Envoy::Thread::ThreadImplPosix::ThreadImplPosix()::{lambda()#1}::operator()()
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #37 0x559694e90f5f Envoy::Thread::ThreadImplPosix::ThreadImplPosix()::{lambda()#1}::_FUN()
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:104] thr<184436> obj</lib/x86_64-linux-gnu/libpthread.so.0>
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #38 0x7f90d4cae493 start_thread
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:104] thr<184436> obj</lib/x86_64-linux-gnu/libc.so.6>
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:117] thr<184436> #39 0x7f90d46eca8e (unknown)
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:121] end backtrace thread 184436
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:125] Caught Aborted, suspect faulting address 0x3b5be0002d06d
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:94] Backtrace thr<184436> obj</lib/x86_64-linux-gnu/libc.so.6> (If unsymbolized, use tools/stack_decode.py):
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:117] thr<184436> #0 0x7f90d4636fcf (unknown)
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:117] thr<184436> #1 0x7f90d46383f9 (unknown)
[2019-01-15 15:25:27.860][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:104] thr<184436> obj</usr/local/google/home/yinjie/go/bin/envoy>
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #2 0x559694e9086c Envoy::TerminateHandler::logOnTerminate()::{lambda()#1}::operator()()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #3 0x559694e90894 Envoy::TerminateHandler::logOnTerminate()::{lambda()#1}::_FUN()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #4 0x559694f0da45 __cxxabiv1::__terminate()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #5 0x559694f0da90 std::terminate()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #6 0x559694f0dc13 __cxa_throw
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #7 0x559694eed997 (anonymous namespace)::handle_oom()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #8 0x559694fb21cd tcmalloc::allocate_full_cpp_throw_oom()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #9 0x559693bb5b31 std::__cxx11::basic_string<>::_M_construct<>()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #10 0x559694f690ee std::__cxx11::basic_string<>::basic_string()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #11 0x559693bb2a7e std::operator+<>()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #12 0x559693c52100 _ZNK5Envoy3Tcp5Mixer6Filter15GetConnectionIdB5cxx11Ev
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #13 0x559693c5d6fa istio::control::tcp::AttributesBuilder::ExtractCheckAttributes()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #14 0x559693c5c288 istio::control::tcp::RequestHandlerImpl::Check()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #15 0x559693c50fa5 Envoy::Tcp::Mixer::Filter::callCheck()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #16 0x559693c512f2 Envoy::Tcp::Mixer::Filter::onData()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #17 0x5596943f03d6 Envoy::Network::FilterManagerImpl::onContinueReading()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #18 0x5596943f04ed Envoy::Network::FilterManagerImpl::onRead()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #19 0x5596943e7755 Envoy::Network::ConnectionImpl::onRead()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #20 0x5596943e8e08 Envoy::Network::ConnectionImpl::onReadReady()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #21 0x5596943e8ba6 Envoy::Network::ConnectionImpl::onFileEvent()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #22 0x5596943e552e Envoy::Network::ConnectionImpl::ConnectionImpl()::{lambda()#3}::operator()()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #23 0x5596943eab48 std::_Function_handler<>::_M_invoke()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #24 0x5596943de487 std::function<>::operator()()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #25 0x5596943de1dd Envoy::Event::FileEventImpl::assignEvents()::{lambda()#1}::operator()()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #26 0x5596943de25b Envoy::Event::FileEventImpl::assignEvents()::{lambda()#1}::_FUN()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #27 0x559694a1c59a event_process_active_single_queue.isra.29
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #28 0x559694a1cb7e event_process_active
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #29 0x559694a206ff event_base_loop
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #30 0x5596943d97e5 Envoy::Event::DispatcherImpl::run()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #31 0x5596943caacc Envoy::Server::WorkerImpl::threadRoutine()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #32 0x5596943ca39b Envoy::Server::WorkerImpl::start()::{lambda()#1}::operator()()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #33 0x5596943cb3da std::_Function_handler<>::_M_invoke()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #34 0x559693c1472f std::function<>::operator()()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #35 0x559694e90f3b Envoy::Thread::ThreadImplPosix::ThreadImplPosix()::{lambda()#1}::operator()()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #36 0x559694e90f5f Envoy::Thread::ThreadImplPosix::ThreadImplPosix()::{lambda()#1}::_FUN()
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:104] thr<184436> obj</lib/x86_64-linux-gnu/libpthread.so.0>
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] thr<184436> #37 0x7f90d4cae493 start_thread
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:104] thr<184436> obj</lib/x86_64-linux-gnu/libc.so.6>
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:117] thr<184436> #38 0x7f90d46eca8e (unknown)
[2019-01-15 15:25:27.877][184436][critical][backtrace] [bazel-out/k8-fastbuild/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:121] end backtrace thread 184436

});
ENVOY_LOG(debug, "Loaded JwtAuthConfig: {}",
MessageUtil::getJsonStringFromMessage(config_, true));
MessageUtil::getJsonStringFromMessage(*config_, true));
}

// Get per-thread auth store object.
JwtAuthStore& store() { return tls_->getTyped<JwtAuthStore>(); }

private:
// The auth config.
::istio::envoy::config::filter::http::jwt_auth::v2alpha1::JwtAuthentication
std::shared_ptr<::istio::envoy::config::filter::http::jwt_auth::v2alpha1::
JwtAuthentication>
config_;
// Thread local slot to store per-thread auth store
ThreadLocal::SlotPtr tls_;
Expand Down
14 changes: 7 additions & 7 deletions src/envoy/http/mixer/control_factory.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,19 @@ class ControlFactory : public Logger::Loggable<Logger::Id::config> {
Stats::Scope& scope = context.scope();
const LocalInfo::LocalInfo& local_info = context.localInfo();

tls_->set(
[this, &cm, &random, &scope, &local_info](Event::Dispatcher& dispatcher)
-> ThreadLocal::ThreadLocalObjectSharedPtr {
return std::make_shared<Control>(*config_, cm, dispatcher, random,
scope, stats_, local_info);
});
tls_->set([config = this->config_, &stats = this->stats_, &cm, &random,
&scope, &local_info](Event::Dispatcher& dispatcher)
-> ThreadLocal::ThreadLocalObjectSharedPtr {
return std::make_shared<Control>(*config, cm, dispatcher, random, scope,
stats, local_info);
});
}

Control& control() { return tls_->getTyped<Control>(); }

private:
// Own the config object.
std::unique_ptr<Config> config_;
std::shared_ptr<Config> config_;
// Thread local slot.
ThreadLocal::SlotPtr tls_;
// This stats object.
Expand Down
7 changes: 4 additions & 3 deletions src/envoy/tcp/mixer/control_factory.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,12 @@ class ControlFactory : public Logger::Loggable<Logger::Id::filter> {
Stats::Scope& scope = context.scope();
const LocalInfo::LocalInfo& local_info = context.localInfo();

tls_->set([this, &random, &scope,
tls_->set([config = this->config_, &cm = this->cm_, uuid = this->uuid_,
&stats = this->stats_, &random, &scope,
&local_info](Event::Dispatcher& dispatcher)
-> ThreadLocal::ThreadLocalObjectSharedPtr {
return ThreadLocal::ThreadLocalObjectSharedPtr(new Control(
*config_, cm_, dispatcher, random, scope, stats_, uuid_, local_info));
*config, cm, dispatcher, random, scope, stats, uuid, local_info));
});
}

Expand All @@ -60,7 +61,7 @@ class ControlFactory : public Logger::Loggable<Logger::Id::filter> {
}

// The config object
std::unique_ptr<Config> config_;
std::shared_ptr<Config> config_;
// The cluster manager
Upstream::ClusterManager& cm_;
// the thread local slots
Expand Down