tarantool / queue

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

in_replicaset mode: create_tube on replica problem: #216

Closed 0x501D closed 10 months ago

0x501D commented 11 months ago

Repro:

replica:

box.cfg{
  replication = ... 
  read_only = true
    ---
}

queue = require("queue")
queue.cfg({ttr = 300, in_replicaset=true})
queue.create_tube('test_tube', 'fifottl', {temporary = false, if_not_exists = true})

Will fails with:

2023-09-04 14:01:11.000 [5990] main/103/replica.lua/box.load_cfg I> set 'read_only' configuration option to true
stack traceback:
    /home/void/tmp/cluster/repl/queue/init.lua:44: in function '__index'
    replica.lua:13: in main chunk
2023-09-04 14:01:11.004 [5990] main/105/checkpoint_daemon I> scheduled next checkpoint for Mon Sep  4 15:11:32 2023
2023-09-04 14:01:11.004 [5990] main utils.c:610 E> LuajitError: /home/void/tmp/cluster/repl/queue/init.lua:45: Please configure box.cfg{} in read/write mode first

create_tube method must correctly handle the situation of running a queue on a replica in replicaset mode.