docs: def complete_offset_upload(self, chunk_num):
          # type: (Descriptor, int) -> None
          """Complete the upload for the offset
          :param Descriptor self: this
          :param int chunk_num: chunk num completed
          """
          with self._meta_lock:
              self._outstanding_ops -= 1
              # save resume state
              if self.is_resumable:
                  # only set resumable completed if all replicas for this
                  # chunk are complete
                  if blobxfer.util.is_not_empty(self._dst_ase.replica_targets):
                      if chunk_num not in self._replica_counters:
                          # start counter at -1 since we need 1 "extra" for the
                          # primary in addition to the replica targets
                          self._replica_counters[chunk_num] = -1
                      self._replica_counters[chunk_num] += 1
                      if (self._replica_counters[chunk_num] !=
                              len(self._dst_ase.replica_targets)):
                          return
                      else:
                          self._replica_counters.pop(chunk_num)
                  self._completed_chunks.set(True, chunk_num)
                  completed = self._outstanding_ops == 0
                  self._resume_mgr.add_or_update_record(
                      self._dst_ase, self._src_block_list, self._offset,
                      self._chunk_size, self._total_chunks,
                      self._completed_chunks.int, completed,
                  )