Size: a a a

2021 January 07

YS

Yan Shkurinskiy in Haskell
раз проблемы нет - вообще хорошо)
источник

MP

Misha Puzanov in Haskell
ну как, проблема-то есть как раз, segfault
источник

KV

Kirill Valyavin in Haskell
Yan Shkurinskiy
если подозрение, что он сначала коммитит, потом абортит
Эта ситуация может быть только если процедура коммита успешно коммитит и при этом вываливает эксепшен
источник

KV

Kirill Valyavin in Haskell
Misha Puzanov
ну как, проблема-то есть как раз, segfault
А она точно здесь?
источник

YS

Yan Shkurinskiy in Haskell
Kirill Valyavin
Эта ситуация может быть только если процедура коммита успешно коммитит и при этом вываливает эксепшен
я думаю Миша об этом и говорит
источник

YS

Yan Shkurinskiy in Haskell
что есть небольшой шанс что будет именно так
источник

YS

Yan Shkurinskiy in Haskell
который воспроизводится на больших количествах только, в силу своей редкости
источник

KV

Kirill Valyavin in Haskell
Ну так надо в эту процедуру тогда смотреть и чинить
источник

MP

Misha Puzanov in Haskell
нет, но она точно качается транзакций которые работают в асинках, которым сделали cancel
источник

YS

Yan Shkurinskiy in Haskell
Misha Puzanov
нет, но она точно качается транзакций которые работают в асинках, которым сделали cancel
а cancel отправляется в f?
источник

MP

Misha Puzanov in Haskell
cancel отправляется куда-то в withROTransaction
источник

KV

Kirill Valyavin in Haskell
Мб вручную попытаться сегфолт вызвать?
источник

KV

Kirill Valyavin in Haskell
Точнее как-то гарантировать, что произойдёт именно та ситуация, которая его якобы вызывает
источник

MP

Misha Puzanov in Haskell
это очень плохо воспроизводимая штука, сейчас я меняю код, запускаю 20 процессов, жду час-два, как правило один из них падает
источник

MP

Misha Puzanov in Haskell
надо попробовать гарантировать, да
источник

MP

Misha Puzanov in Haskell
но пока "статистическим тестированием" точно установлено, что если убрать cancel, то проблема точно исчезает
источник

TZ

Timofey Zakrevskiy in Haskell
А если есть, скажем, data Q a b = Q {blabla}, то как правильно позвать makeLenses? makeLenses ''Q хватит?
источник

YS

Yan Shkurinskiy in Haskell
тупое решение в голову приходит, но вроде может гарантировать, что отработает либо только коммит, либо аборт
источник

MP

Misha Puzanov in Haskell
ну вот я тоже склоняют сделать commited <- IORef False и
что-то типа mask $ do { commit; atomicModifyRef }
источник

MP

Misha Puzanov in Haskell
надо конечно qniksta про такое спрашивать
источник