docs: public void moveSegmentOut(final String sequenceName, final List<SegmentIdWithShardSpec> identifiers)
    {
      synchronized (segments) {
        final SegmentsForSequence activeSegmentsForSequence = segments.get(sequenceName);
        if (activeSegmentsForSequence == null) {
          throw new ISE("WTF?! Asked to remove segments for sequenceName[%s] which doesn't exist...", sequenceName);
        }
  
        for (final SegmentIdWithShardSpec identifier : identifiers) {
          log.info("Moving segment[%s] out of active list.", identifier);
          final long key = identifier.getInterval().getStartMillis();
          final SegmentsOfInterval segmentsOfInterval = activeSegmentsForSequence.get(key);
          if (segmentsOfInterval == null ||
              segmentsOfInterval.getAppendingSegment() == null ||
              !segmentsOfInterval.getAppendingSegment().getSegmentIdentifier().equals(identifier)) {
            throw new ISE("WTF?! Asked to remove segment[%s] that didn't exist...", identifier);
          }
          segmentsOfInterval.finishAppendingToCurrentActiveSegment(SegmentWithState::finishAppending);
        }
      }
    }