Зарезервировать последнюю единицу без второго владельца

Ответы получены от MySQL через X Protocol. Созданные программой учебные объекты после чтения удалены.

Наблюдаемый результат программы
НаблюдениеРезультат
Первый прочитал остаток1
Обычное чтение до записи1
NOWAIT нашёл конфликтда
Второй прочитал после commit0
Второй создал резервнет
Финальный остаток0
Владелец резерваORDER-A
Строки и дополнительные наблюдения
{
    "connection_ids": [
        76,
        77
    ],
    "first": {
        "id": 1,
        "stock": 1
    },
    "ordinary": {
        "stock": 1
    },
    "nowait_error_chain": [
        {
            "class": "mysql_xdevapi\\Exception",
            "code": 10000,
            "message": "[HY000] Couldn't fetch data"
        },
        {
            "class": "mysql_xdevapi\\Exception",
            "code": 3572,
            "message": "[HY000] Statement aborted because lock(s) could not be acquired immediately and NOWAIT is set."
        }
    ],
    "second": {
        "id": 1,
        "stock": 0,
        "reserved_by": "ORDER-A"
    },
    "saved": {
        "sku": "LED",
        "stock": 0,
        "reserved_by": "ORDER-A"
    },
    "builder_type": "mysql_xdevapi\\TableSelect",
    "result_type": "mysql_xdevapi\\RowResult"
}

Полный JSON результата, включая реальные идентификаторы, сохранён рядом в result.json.