Skip to content

Unclear error if no leader #331

Closed
@WeCodingNow

Description

@WeCodingNow

Problem:
if

  1. failover is disabled
  2. a replicaset master dies
  3. a router is restarted
  4. 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:

local space = replicaset.master.conn.space[space_name]

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions