Size: a a a

2021 January 22

A

Aleksandr in Tarantool
Всем привет! Вот такая проблемка нарисовалась..

Сразу схема:

{name = 'id', type = 'unsigned'},
{name = 'bucket_id', type = 'unsigned'},
{name = 'name', type = 'string'},
{name = 'appid', type = 'number'},

____________________________________________

проблемка:

localhost:3301> crud.insert_object('name2id', {id = 228, name = '123321', appid = 280})
---
- null
- line: 76
 class_name: Insert
 err: "Failed to insert: Call: Failed for 9c4a3fd6-c51c-4765-87af-111a2db5ddfd: Function
   returned an error: {\"code\":32,\"base_type\":\"ClientError\",\"type\":\"ClientError\",\"message\":\"Tuple
   field 3 type does not match one required by operation: expected unsigned\",\"trace\":[{\"file\":\"[C]\",\"line\":4294967295}]}\nstack
   traceback:\n\t...work/testapp/.rocks/share/tarantool/crud/common/call.lua:163:
   in function 'rw_single'\n\t...ntos/work/testapp/.rocks/share/tarantool/crud/insert.lua:71:
   in function <...ntos/work/testapp/.rocks/share/tarantool/crud/insert.lua:52>\n\t[C]:
   in function 'pcall'\n\tbuiltin/box/console.lua:402: in function <builtin/box/console.lua:378>\n\t[C]:
   at 0x55d0f7789d50"
 file: '...ntos/work/testapp/.rocks/share/tarantool/crud/insert.lua'
 str: "Insert: Failed to insert: Call: Failed for 9c4a3fd6-c51c-4765-87af-111a2db5ddfd:
   Function returned an error: {\"code\":32,\"base_type\":\"ClientError\",\"type\":\"ClientError\",\"message\":\"Tuple
   field 3 type does not match one required by operation: expected unsigned\",\"trace\":[{\"file\":\"[C]\",\"line\":4294967295}]}\nstack
   traceback:\n\t...work/testapp/.rocks/share/tarantool/crud/common/call.lua:163:
   in function 'rw_single'\n\t...ntos/work/testapp/.rocks/share/tarantool/crud/insert.lua:71:
   in function <...ntos/work/testapp/.rocks/share/tarantool/crud/insert.lua:52>\n\t[C]:
   in function 'pcall'\n\tbuiltin/box/console.lua:402: in function <builtin/box/console.lua:378>\n\t[C]:
   at 0x55d0f7789d50"
...


А если кавычки с поля имени уберу вот так, то работает адекватно:

localhost:3301> crud.insert_object('name2id', {id = 228, name = 123321, appid = 280})
---
- metadata: [{'name': 'id', 'type': 'number'}, {'name': 'bucket_id', 'type': 'unsigned'},
   {'name': 'name', 'type': 'string'}, {'name': 'appid', 'type': 'number'}]
 rows:
 - [228, 17334, 123321, 280]
...

🤯🤯🤯🤯🤯🤯
хелп!
источник

VG

Vladislav Grubov in Tarantool
Вероятно схема у вас не применилась.
Tuple field 3 type does not match one required by operation: expected unsigned

Что говорит box.space.name2id:format() ?
источник

A

Aleksandr in Tarantool
---
- [{'name': 'id', 'type': 'number'}, {'name': 'bucket_id', 'type': 'unsigned'}, {
   'name': 'name', 'type': 'string'}, {'name': 'appid', 'type': 'number'}]
...
источник

A

Aleksandr in Tarantool
стринг
источник

A

Aleksandr in Tarantool
в том то и дело
источник

DS

Dmitry Sharonov in Tarantool
Aleksandr
---
- [{'name': 'id', 'type': 'number'}, {'name': 'bucket_id', 'type': 'unsigned'}, {
   'name': 'name', 'type': 'string'}, {'name': 'appid', 'type': 'number'}]
...
а если на роутере проверить?
источник

A

Aleksandr in Tarantool
через обычный инсерт закинул 😕
источник

A

Aleksandr in Tarantool
странная странность
источник

A

Aleksandr in Tarantool
Наверное просто я не понимаю что-то
источник

DS

Dmitry Sharonov in Tarantool
нет, что-то где-то не так.
а) на роутере такой спейс есть? (если вы модуль ddl пользуетесь) какой у него тогда формат?
б) а рестарт роутера часом не помогает?
в) а вообще, изначально схему не меняли с числа на строку?
источник

A

Aleksandr in Tarantool
а) у меня на учебной виртуалке все роли на одной ноде, ддл не знаю что такое
б) рестартил ноду 100500 раз
в) а вот тут менял! Может, дропнуть спейс? 😈
источник

DS

Dmitry Sharonov in Tarantool
дропнуть то поможет, но я например все равно не понимаю почему рестарт тогда не помог
источник

A

Aleksandr in Tarantool
Но в нём почему-то есть адекватные записи!
источник

A

Aleksandr in Tarantool
Я уже давно закидывал как-то.
источник

A

Aleksandr in Tarantool
Что забыл как я это делал и какая была схема 😅
источник

IB

Ivan Blohin in Tarantool
Евгений Радченко
У нас бывает такая проблема при перегрузке одной из реплик на двух разных машинах, делаем полную очистку содержимого инстанса в /var/lib/tarantool/<name> и после этого ER_READONLY уходит. Решение не нравится категорически, но помогает.
Спасибо! Почистил .xlog и .snap - взлетело, ошибок нет. Вроде как по логам вижу, что реплика ок. Надо тестить.

Заюзать картридж нам не подходит, мы не так много данных гоняем через тарантул - больно жирно.
источник

KN

Konstantin Nazarov in Tarantool
Ivan Blohin
Спасибо! Почистил .xlog и .snap - взлетело, ошибок нет. Вроде как по логам вижу, что реплика ок. Надо тестить.

Заюзать картридж нам не подходит, мы не так много данных гоняем через тарантул - больно жирно.
картридж не обязательно использовать с шардингом
источник

KN

Konstantin Nazarov in Tarantool
ну и он довольно небольшой сам по себе. в тарантуле больше 100к строк кода, а в cartridge — несколько тысяч
источник

IB

Ivan Blohin in Tarantool
Я про саму идею. Зачем тащить что-то неизвестное и изучать (нам), если можно сделать это через пару строчек конфига)
источник

KN

Konstantin Nazarov in Tarantool
его можно использовать для облегчения деплоя
источник