Closed
Description
Problem:
if
- failover is disabled
- a replicaset master dies
- a router is restarted
- you then try to execute any crud operation
A cryptic error is returned.
Error:
myapp.router> crud.select('test', nil, {first=1})
---
- null
- line: 183
class_name: SelectError
err: '...app/.rocks/share/tarantool/crud/common/sharding/init.lua:183: ...repro/myapp/.rocks/share/tarantool/crud/common/utils.lua:100:
attempt to index field ''space'' (a nil value)'
file: '...app/.rocks/share/tarantool/crud/common/sharding/init.lua'
stack: "stack traceback:\n\t...app/.rocks/share/tarantool/crud/common/sharding/init.lua:183:
in function <...app/.rocks/share/tarantool/crud/common/sharding/init.lua:168>\n\t[C]:
in function 'xpcall'\n\t.../LocalCode/repro/myapp/.rocks/share/tarantool/errors.lua:145:
in function <.../LocalCode/repro/myapp/.rocks/share/tarantool/errors.lua:139>\n\t[C]:
in function 'pcall'\n\tbuiltin/box/console.lua:402: in function <builtin/box/console.lua:378>\n\t[string
\"local function func(...) return require('cons...\"]:1: in main chunk\n\t[C]:
in function 'pcall'\n\tbuiltin/box/console.lua:402: in function 'eval'\n\tbuiltin/box/console.lua:708:
in function 'repl'\n\tbuiltin/box/console.lua:842: in function <builtin/box/console.lua:828>\n\t[C]:
in function 'pcall'\n\tbuiltin/socket.lua:1081: in function <builtin/socket.lua:1079>"
str: 'SelectError: ...app/.rocks/share/tarantool/crud/common/sharding/init.lua:183:
...repro/myapp/.rocks/share/tarantool/crud/common/utils.lua:100: attempt to index
field ''space'' (a nil value)'
...
How to reproduce:
# any cartridge app will do
cd myapp
cartridge build
cartridge start -d
cartridge replicasets setup --bootstrap-vshard
cartridge stop s1-master
cartridge stop router && cartridge start -d router
cartridge enter router
# in console
crud.select('test', nil, {first=1})
Repoducer package:
repro.zip
Line that triggers the error:
Line 100 in 7504da3