diff --git a/src/core/client_config/subchannel_index.c b/src/core/client_config/subchannel_index.c
index f78a7fd588c48640c8ffe15dc79a59205af07932..3f948998f9cae1f4f4d81ae46c2ce51ffdedcc7b 100644
--- a/src/core/client_config/subchannel_index.c
+++ b/src/core/client_config/subchannel_index.c
@@ -149,11 +149,13 @@ static const gpr_avl_vtable subchannel_avl_vtable = {
 void grpc_subchannel_index_init(void) {
   g_subchannel_index = gpr_avl_create(&subchannel_avl_vtable);
   gpr_mu_init(&g_mu);
+  gpr_tls_init(&subchannel_index_exec_ctx);
 }
 
 void grpc_subchannel_index_shutdown(void) {
   gpr_mu_destroy(&g_mu);
   gpr_avl_unref(g_subchannel_index);
+  gpr_tls_destroy(&subchannel_index_exec_ctx);
 }
 
 grpc_subchannel *grpc_subchannel_index_find(grpc_exec_ctx *exec_ctx,
diff --git a/third_party/nanopb b/third_party/nanopb
index f8ac463766281625ad710900479130c7fcb4d63b..5497a1dfc91a86965383cdd1652e348345400435 160000
--- a/third_party/nanopb
+++ b/third_party/nanopb
@@ -1 +1 @@
-Subproject commit f8ac463766281625ad710900479130c7fcb4d63b
+Subproject commit 5497a1dfc91a86965383cdd1652e348345400435