queue icon indicating copy to clipboard operation
queue copied to clipboard

utubettl: commit transaction after on_task_change

Open Alekseizor opened this issue 3 months ago • 2 comments

Встретил такую ситуацию при использовании, фикс в данном мр:

Файбер utubettl_fiber_iteration перевел задачу в статус R, сделав коммит, и в этот момент произошел свич контекст и пошел выполняться мой take из другого файбера, который взял задачу, обновил ее и даже записал инфу о take в _queue_taken_2, а уже после пришел в on_task_change файбер с delayed и удалил запись о взятой задаче. Как итог - задаче не может быть выполнен ack/release, так как не проходим проверку в функции check_task_is_taken.

Также исправил форматирование в логе на %s, так как при большом числе, которое не вмещается в number, будет ошибка.

Alekseizor avatar Sep 22 '25 11:09 Alekseizor

пошел выполняться мой take из другого файбера, который взял задачу, обновил ее и даже записал инфу о take в _queue_taken_2

Значит ли это, что операции с queue вы выполняете внутри транзакций?

oleg-jukovec avatar Oct 05 '25 10:10 oleg-jukovec

Привет! По PR'у есть замечание: если mvcc отключен, то если внутри on_task_change колбека случится yield, то вся транзакция откатится и изменений не случится. Нужно подумать как это правильно поправить, что-бы логика выставляемая в abstract.on_task_change была синхронизирована, а внешний on_task_change - нет.

bigbes avatar Oct 07 '25 11:10 bigbes