def send_pending_requests(self):
        """Can block on network if request is larger than send_buffer_bytes"""
        try:
            with self._lock:
                if not self._can_send_recv():
                    return Errors.NodeNotReadyError(str(self))
                # In the future we might manage an internal write buffer
                # and send bytes asynchronously. For now, just block
                # sending each request payload
                data = self._protocol.send_bytes()
                total_bytes = self._send_bytes_blocking(data)
            if self._sensors:
                self._sensors.bytes_sent.record(total_bytes)
            return total_bytes
        except ConnectionError as e:
            log.exception("Error sending request data to %s", self)
            error = Errors.KafkaConnectionError("%s: %s" % (self, e))
            self.close(error=error)
            return error