diff options
author | dpaveldev <dpaveldev@yandex-team.com> | 2024-02-16 13:41:16 +0300 |
---|---|---|
committer | dpaveldev <dpaveldev@yandex-team.com> | 2024-02-16 13:51:58 +0300 |
commit | 6169bf76810fcd4a65ee11a2bc98fe9e6ce45d4b (patch) | |
tree | f8b10724cc2379e2cb0af91bba110e039e33117e /contrib/restricted/abseil-cpp-tstring/y_absl | |
parent | 6e4096405a026a1a59aa9a18997b5c2d5038e37d (diff) | |
download | ydb-6169bf76810fcd4a65ee11a2bc98fe9e6ce45d4b.tar.gz |
Try to fix `[futex_waiter.cc : 85] RAW: Futex operation failed with error -512`
Мы используем клиентскую либу unified agent'а. Она использует grpc, а он abseil. Похоже, что в ядре где-то баг, из-за которого syscall возвращает -512 (ERESTARTSYS) или -516 (ERESTART_RESTARTBLOCK), хотя должен EINTR.
Как обходной путь, лучше эти ошибки явно поретраить. После этого фикса у нас на сервисе пропадает фон корок
https://nda.ya.ru/t/8kc-3NAf74fdoh -- смотреть Events
00c89ebe0762a8df49092d2fbb76c5149c5fdb57
Diffstat (limited to 'contrib/restricted/abseil-cpp-tstring/y_absl')
-rw-r--r-- | contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/futex_waiter.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/futex_waiter.cc b/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/futex_waiter.cc index 2ca374b712..2ceb1c2687 100644 --- a/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/futex_waiter.cc +++ b/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/futex_waiter.cc @@ -77,7 +77,7 @@ bool FutexWaiter::Wait(KernelTimeout t) { if (!first_pass) MaybeBecomeIdle(); const int err = WaitUntil(&futex_, 0, t); if (err != 0) { - if (err == -EINTR || err == -EWOULDBLOCK) { + if (err == -EINTR || err == -EWOULDBLOCK || err == -512 /* ERESTARTSYS */ || err == -516 /* ERESTART_RESTARTBLOCK */) { // Do nothing, the loop will retry. } else if (err == -ETIMEDOUT) { return false; |