code: @VisibleForTesting
    void panic(final Throwable t) {
      if (panicMode) {
        // Preserve the first panic information
        return;
      }
      panicMode = true;
      cancelIdleTimer(/* permanent= */ true);
      shutdownNameResolverAndLoadBalancer(false);
      final class PanicSubchannelPicker extends SubchannelPicker {
        private final PickResult panicPickResult =
            PickResult.withDrop(
                Status.INTERNAL.withDescription("Panic! This is a bug!").withCause(t));
  
        @Override
        public PickResult pickSubchannel(PickSubchannelArgs args) {
          return panicPickResult;
        }
      }
  
      updateSubchannelPicker(new PanicSubchannelPicker());
      channelLogger.log(ChannelLogLevel.ERROR, "PANIC! Entering TRANSIENT_FAILURE");
      channelStateManager.gotoState(TRANSIENT_FAILURE);
    }
docs: Called from syncContext