aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authordpaveldev <dpaveldev@yandex-team.com>2024-02-16 13:41:16 +0300
committerInnokentii Mokin <innokentii@ydb.tech>2024-02-16 18:35:26 +0000
commit5b279da70a9df21add84ae8cbaf309e7bb67f4c8 (patch)
tree525605124e699aa8b0d66e375a5dba51d4ee1a77 /contrib
parentcbeadf1f32e678c9c8f4cfaaa3b0187b16183309 (diff)
downloadydb-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.cc2
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;