public LogicalSlot allocateLogicalSlot() {
        LOG.debug("Allocating logical slot from shared slot ({})", physicalSlotRequestId);
        Preconditions.checkState(
                state == State.ALLOCATED, "The shared slot has already been released.");

        final LogicalSlot slot =
                new SingleLogicalSlot(
                        new SlotRequestId(),
                        physicalSlot,
                        Locality.UNKNOWN,
                        this,
                        slotWillBeOccupiedIndefinitely);

        allocatedLogicalSlots.put(slot.getSlotRequestId(), slot);
        return slot;
    }
@Test
    void testAllocateLogicalSlotIssuesUniqueSlotRequestIds() {
        final TestingPhysicalSlot physicalSlot = TestingPhysicalSlot.builder().build();
        final SharedSlot sharedSlot =
                new SharedSlot(new SlotRequestId(), physicalSlot, false, () -> {});

        final LogicalSlot logicalSlot1 = sharedSlot.allocateLogicalSlot();
        final LogicalSlot logicalSlot2 = sharedSlot.allocateLogicalSlot();

        assertThat(logicalSlot1.getSlotRequestId()).isNotEqualTo(logicalSlot2.getSlotRequestId());
    }