Closed gfh31fgh2 closed 1 year ago
пять и больше ретраев никак не меняют ситуацию
В старых версих ретраи работали с ошибками, поэтому мы их поправили и их нужно вызывать явно. Для использования кода с транзакцией используйте:
$ydb->table()->retryTransaction(function(Session $session){
//Тут ваш код
}, $idempotent);
Где $idempotent
признак идемпотентности транзакции (по умолчанию - false).
Также рекомендуется сделать транзакции имдепотентными, тогда ретраер будет работать лучше
Рекомендуем использовать версию v1.8.0
обновились на 1.8.0 - получаем те же ошибки
Все еще остаются ошибки
Делать prepare и вызывать execute в prepare statement необходимо на одной сессии, то есть внутри одного ретраера. Пример использования:
$result = $table->retryTransaction(function (Session $session) {
$prepare = $session->prepare($yql);
return $prepare->execute($data);
});
речь в issue идет о 1.7.0 - так что это в любом случае bug тег как и про 1.8.0 а 1.8.1 только сейчас будем тестировать, если хотите сменить тег - можно создать новый issue с версией 1.8.1
ps: вместо retrySession должен быть retryTransaction ps2: а разве доп параметр по retry вторым не нужен?
вместе retrySession должен быть retryTransaction Исправил
а разве доп параметр по retry вторым не нужен? Флаг идемпотентности и параметры ретраера в данном примере используются по умолчанию
1.8.1 с тем кодом что вы указали - ошибка осталась
Косяк в команде
$output = $rsa->sign($input);
который иногда выполянется около 1 минуты
https://github.com/ydb-platform/ydb-php-sdk/blob/72d39a41dc7441b5e6c637985bd9cab2ad2a50b1/src/Jwt/Jwt.php#L115 - при заходе в ELSE
Исходная проблема решилась.
Сейчас осталась проблема со скоростью подписи токена, это будет делаться соседней задачей: https://github.com/ydb-platform/ydb-php-sdk/issues/102
Чтобы сохранять понятность истории.
да, ретрай решает отчасти эту проблему
Bug Report
YDB PHP SDK version: 1.7.0 1.5.6 - здесь нет таких проблем
Environment ubuntu18 JWT
Current behavior:
Expected behavior:
php working more than 12 hours
Steps to reproduce:
php working more than 12 hours
Related code:
https://github.com/gfh31fgh2/ydb-php-simple-driver