Size: a a a

2020 December 29

R

R-omk in Tarantool
Dmitry Sharonov
а все равно же делают
ну те кто так  делают  уже  очень хорошо понимаю как  все устроено в этом мире
источник

DS

Dmitry Sharonov in Tarantool
Vladyslav Sakun
Вы о том, что спейсы нужно создать заранее на каждом из стораджей?
Я думал роутер это некий балансер, который выбирает живой сторадж и отдает ему на обработку запрос
лучше всего да. или задавайте их через апи картриджа, раздел схема
источник

DS

Dmitry Sharonov in Tarantool
но первое проще для понимания
источник

DS

Dmitry Sharonov in Tarantool
R-omk
ну те кто так  делают  уже  очень хорошо понимаю как  все устроено в этом мире
это правда
источник

ИМ

Игрь Минеев... in Tarantool
Добрый день, собираю для arm64
Получаю какую-то странную вещь в unwind:
/src/backtrace.cc: In function ‘void coro_unwcontext(unw_context_t*, coro_context*)’:
/src/backtrace.cc:365:3: warning: asm operand 2 probably doesn’t match constraints
 365 |  );
     |   ^
/src/backtrace.cc:365:3: error: impossible constraint in ‘asm’
В асм вставке меняю у третьего аргумента "i" на "rm" и все компилируется, НО
Будет ли оно работать? Как проверить?
источник

ИМ

Игрь Минеев... in Tarantool
Игрь Минеев
Добрый день, собираю для arm64
Получаю какую-то странную вещь в unwind:
/src/backtrace.cc: In function ‘void coro_unwcontext(unw_context_t*, coro_context*)’:
/src/backtrace.cc:365:3: warning: asm operand 2 probably doesn’t match constraints
 365 |  );
     |   ^
/src/backtrace.cc:365:3: error: impossible constraint in ‘asm’
В асм вставке меняю у третьего аргумента "i" на "rm" и все компилируется, НО
Будет ли оно работать? Как проверить?
Та самая вставка:

#elif __aarch64__
__asm__ volatile(
 /* Save current context */
 "\tsub x1, sp, #8 * 20\n"
 "\tstp x19, x20, [x1, #16 * 0]\n"
 "\tstp x21, x22, [x1, #16 * 1]\n"
 "\tstp x23, x24, [x1, #16 * 2]\n"
 "\tstp x25, x26, [x1, #16 * 3]\n"
 "\tstp x27, x28, [x1, #16 * 4]\n"
 "\tstp x29, x30, [x1, #16 * 5]\n"
 "\tstp d8,  d9,  [x1, #16 * 6]\n"
 "\tstp d10, d11, [x1, #16 * 7]\n"
 "\tstp d12, d13, [x1, #16 * 8]\n"
 "\tstp d14, d15, [x1, #16 * 9]\n"
 /* Restore target context */
 "\tldr x2, [%1]\n"
 "\tldp x19, x20, [x2, #16 * 0]\n"
 "\tldp x21, x22, [x2, #16 * 1]\n"
 "\tldp x23, x24, [x2, #16 * 2]\n"
 "\tldp x25, x26, [x2, #16 * 3]\n"
 "\tldp x27, x28, [x2, #16 * 4]\n"
 "\tldp x29, x30, [x2, #16 * 5]\n"
 "\tldp d8,  d9,  [x2, #16 * 6]\n"
 "\tldp d10, d11, [x2, #16 * 7]\n"
 "\tldp d12, d13, [x2, #16 * 8]\n"
 "\tldp d14, d15, [x2, #16 * 9]\n"
 "\tmov sp, x2\n"
 /* Setup fisrst arg */
 "\tmov x0, %0\n"
 "\tbl %2\n"
 /* Restore context (old sp in x0) */
 "\tldp x19, x20, [x0, #16 * 0]\n"
 "\tldp x21, x22, [x0, #16 * 1]\n"
 "\tldp x23, x24, [x0, #16 * 2]\n"
 "\tldp x25, x26, [x0, #16 * 3]\n"
 "\tldp x27, x28, [x0, #16 * 4]\n"
 "\tldp x29, x30, [x0, #16 * 5]\n"
 "\tldp d8,  d9,  [x0, #16 * 6]\n"
 "\tldp d10, d11, [x0, #16 * 7]\n"
 "\tldp d12, d13, [x0, #16 * 8]\n"
 "\tldp d14, d15, [x0, #16 * 9]\n"
 "\tadd sp, x0, #8 * 20\n"
 :
 : "r" (unw_context), "r" (coro_ctx), "i" (unw_getcontext_f)
 : /*"lr", "r0", "r1", "ip" */
  "x0", "x1", "x2", "x30"
 );
#endif

Аргумент unw_getcontext_f

"i" : An immediate integer operand (one with constant value) is allowed. This includes symbolic constants whose values will be known only at assembly time.
источник

ИМ

Игрь Минеев... in Tarantool
источник

ИМ

Игрь Минеев... in Tarantool
@rtsisyk ваш код, подскажите пожалуйста
источник

RT

Roman Tsisyk in Tarantool
Игрь Минеев
Та самая вставка:

#elif __aarch64__
__asm__ volatile(
 /* Save current context */
 "\tsub x1, sp, #8 * 20\n"
 "\tstp x19, x20, [x1, #16 * 0]\n"
 "\tstp x21, x22, [x1, #16 * 1]\n"
 "\tstp x23, x24, [x1, #16 * 2]\n"
 "\tstp x25, x26, [x1, #16 * 3]\n"
 "\tstp x27, x28, [x1, #16 * 4]\n"
 "\tstp x29, x30, [x1, #16 * 5]\n"
 "\tstp d8,  d9,  [x1, #16 * 6]\n"
 "\tstp d10, d11, [x1, #16 * 7]\n"
 "\tstp d12, d13, [x1, #16 * 8]\n"
 "\tstp d14, d15, [x1, #16 * 9]\n"
 /* Restore target context */
 "\tldr x2, [%1]\n"
 "\tldp x19, x20, [x2, #16 * 0]\n"
 "\tldp x21, x22, [x2, #16 * 1]\n"
 "\tldp x23, x24, [x2, #16 * 2]\n"
 "\tldp x25, x26, [x2, #16 * 3]\n"
 "\tldp x27, x28, [x2, #16 * 4]\n"
 "\tldp x29, x30, [x2, #16 * 5]\n"
 "\tldp d8,  d9,  [x2, #16 * 6]\n"
 "\tldp d10, d11, [x2, #16 * 7]\n"
 "\tldp d12, d13, [x2, #16 * 8]\n"
 "\tldp d14, d15, [x2, #16 * 9]\n"
 "\tmov sp, x2\n"
 /* Setup fisrst arg */
 "\tmov x0, %0\n"
 "\tbl %2\n"
 /* Restore context (old sp in x0) */
 "\tldp x19, x20, [x0, #16 * 0]\n"
 "\tldp x21, x22, [x0, #16 * 1]\n"
 "\tldp x23, x24, [x0, #16 * 2]\n"
 "\tldp x25, x26, [x0, #16 * 3]\n"
 "\tldp x27, x28, [x0, #16 * 4]\n"
 "\tldp x29, x30, [x0, #16 * 5]\n"
 "\tldp d8,  d9,  [x0, #16 * 6]\n"
 "\tldp d10, d11, [x0, #16 * 7]\n"
 "\tldp d12, d13, [x0, #16 * 8]\n"
 "\tldp d14, d15, [x0, #16 * 9]\n"
 "\tadd sp, x0, #8 * 20\n"
 :
 : "r" (unw_context), "r" (coro_ctx), "i" (unw_getcontext_f)
 : /*"lr", "r0", "r1", "ip" */
  "x0", "x1", "x2", "x30"
 );
#endif

Аргумент unw_getcontext_f

"i" : An immediate integer operand (one with constant value) is allowed. This includes symbolic constants whose values will be known only at assembly time.
Здесь затрудняюсь сказать. Когда тестировали - так работало. Что там значит "i" уже не помню. Тестировать через вызов backtrace (fiber.backtrace())
источник

TS

Timur Safin in Tarantool
Игрь Минеев
Добрый день, собираю для arm64
Получаю какую-то странную вещь в unwind:
/src/backtrace.cc: In function ‘void coro_unwcontext(unw_context_t*, coro_context*)’:
/src/backtrace.cc:365:3: warning: asm operand 2 probably doesn’t match constraints
 365 |  );
     |   ^
/src/backtrace.cc:365:3: error: impossible constraint in ‘asm’
В асм вставке меняю у третьего аргумента "i" на "rm" и все компилируется, НО
Будет ли оно работать? Как проверить?
"в-любой непонятной ситуации выключай backtrace"

Добавьте -DENABLE_BACKTRACE=OFF в cmake
источник

TS

Timur Safin in Tarantool
При продуктизации Арма это починится
источник

AK

Andrey Kulikov in Tarantool
Timur Safin
"в-любой непонятной ситуации выключай backtrace"

Добавьте -DENABLE_BACKTRACE=OFF в cmake
Это не интересно, с выключенными бэктрейсами компилируется 😊
источник

АД

Арефьев Дмитрий... in Tarantool
Добрый день. Есть проект на картридже. Вчера через cartridge-cli нормально собирался. Сегодня возникает такая страянная история:
# cartridge pack rpm --version 1.1
  • Packing tarantool_cache into rpm
  • Temporary directory is set to /root/.cartridge/tmp/pack-s6i71hwqc5
  • Initialize application dir
  ⨯ File /root/.cartridge/tmp/pack-s6i71hwqc5/package-files/usr/share/tarantool/tarantool_cache/tmp/data/tarantool_cache.router/.tarantool.cookie has invalid mode: 600. It should have read permissions for all
# ls -la ./.tarantool.cookie
-r--r--r-- 1 root root 15 Dec 17 13:21 ./.tarantool.cookie

С чем может быть связанно?
источник

AK

Alexey Kuzin in Tarantool
Попробуйте cartridge clean
источник

АД

Арефьев Дмитрий... in Tarantool
помогло, спасибо.
источник

АД

Арефьев Дмитрий... in Tarantool
но как-то странно, у него есть ограничения на количество сборок?)
источник

ED

Elizaveta Dokshina in Tarantool
нужно добавить /tmp/* в  gitignore
источник

ED

Elizaveta Dokshina in Tarantool
там лежат файлы, которые создаются при локальном запуске, и при сборке они пытаются попасть в rpm
источник

АД

Арефьев Дмитрий... in Tarantool
Elizaveta Dokshina
нужно добавить /tmp/* в  gitignore
есть
источник

ED

Elizaveta Dokshina in Tarantool
а, это кажется известная проблема со старым гитом
источник