tarantool / queue

Create task queues, add and take jobs, monitor failed tasks
Other
234 stars 52 forks source link

Unable to queue.cfg{in_replicaset = true} with Tarantool 1.10 #185

Closed oleg-jukovec closed 1 year ago

oleg-jukovec commented 1 year ago

How-to reproduce:

$ tarantool config.lua 
...
2022-08-25 18:00:53.885 [78123] main/101/config.lua I> Started queue state fiber
2022-08-25 18:00:53.887 [78123] main txn.c:438 E> ER_UNSUPPORTED: DDL does not support multi-statement transactions
2022-08-25 18:00:53.887 [78123] main F> fatal error, exiting the event loop

Reproducer:

#!/usr/bin/env tarantool

box.cfg{}
queue = require("queue")
queue.cfg{in_replicaset = true}

Caused by:

https://github.com/tarantool/queue/blob/fd3616c9ba121bbaf858d79c0e1a21fa3d3727e4/queue/abstract.lua#L666-L667

https://github.com/tarantool/queue/blob/fd3616c9ba121bbaf858d79c0e1a21fa3d3727e4/queue/abstract/queue_session.lua#L65-L66

oleg-jukovec commented 1 year ago

https://github.com/tarantool/tarantool/commit/f266559b167b4643c377724eebde9651877d6cc9

$ (needle='allow to execute non-yielding DDL statements in transactions'; for branch in 1.7 1.9 1.10 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 master; do printf "${branch}\t"; commit_description=$(git log --oneline "origin/${branch}" | grep -F "${needle}"); [ -n "${commit_description}" ] && echo "$(git describe --long --always $(echo "${commit_description}" | cut -d" " -f1)) $(echo "${commit_description}" | cut -d" " -f2-)" || echo "(not found)"; done)
1.7 (not found)
1.9 (not found)
1.10    (not found)
2.1 (not found)
2.2 2.2.0-564-gf266559b1 ddl: allow to execute non-yielding DDL statements in transactions
2.3 2.2.0-564-gf266559b1 ddl: allow to execute non-yielding DDL statements in transactions
2.4 2.2.0-564-gf266559b1 ddl: allow to execute non-yielding DDL statements in transactions
2.5 2.2.0-564-gf266559b1 ddl: allow to execute non-yielding DDL statements in transactions
2.6 2.2.0-564-gf266559b1 ddl: allow to execute non-yielding DDL statements in transactions
2.7 2.2.0-564-gf266559b1 ddl: allow to execute non-yielding DDL statements in transactions
2.8 2.2.0-564-gf266559b1 ddl: allow to execute non-yielding DDL statements in transactions
master  2.2.0-564-gf266559b1 ddl: allow to execute non-yielding DDL statements in transactions