code: @Override
    public void failSocket(long time)
    {
      getRequestFailProbe().start();
  
      _failCountTotal.incrementAndGet();
      
      logFinest(L.l("failSocket: time={0}, _failTime={1}",
                    time, _failTime));
      
      synchronized (this) {
        if (_failTime < time) {
          degrade(time);
          
          _firstSuccessTime = 0;
          _failTime = time;
          _lastFailTime = _failTime;
  
          _dynamicFailRecoverTime = Math.min(2 * _dynamicFailRecoverTime,
                                             _loadBalanceFailRecoverTime);
    
          _state = _state.toFail();
        }
      }
    }
docs: Called when the socket read/write fails.