diff options
author | dpaveldev <dpaveldev@yandex-team.com> | 2024-02-16 13:41:16 +0300 |
---|---|---|
committer | Innokentii Mokin <innokentii@ydb.tech> | 2024-02-16 18:35:26 +0000 |
commit | 5b279da70a9df21add84ae8cbaf309e7bb67f4c8 (patch) | |
tree | 525605124e699aa8b0d66e375a5dba51d4ee1a77 /contrib | |
parent | cbeadf1f32e678c9c8f4cfaaa3b0187b16183309 (diff) | |
download | ydb-5b279da70a9df21add84ae8cbaf309e7bb67f4c8.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')
-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; |