Summary: | hangs on access to /etc/pve (freeze in pmxcfs) | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly Lipatov <lav> |
Component: | pve-cluster | Assignee: | Alexey Shabalin <shaba> |
Status: | CLOSED WORKSFORME | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | shaba, shrek |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux |
Description
Vitaly Lipatov
2023-03-21 03:40:13 MSK
It hangs on rrdcached access via rrd_client_update (gdb) info threads Id Target Id Frame * 1 Thread 0x7f665918ba00 (LWP 3193) "pmxcfs" futex_abstimed_wait_cancelable (private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x7ffe6657f8e0) at ../sysdeps/nptl/futex-internal.h:320 2 Thread 0x7f6659156640 (LWP 3194) "cfs_loop" 0x00007f665a089856 in epoll_wait (epfd=8, events=events@entry=0x7f6659155990, maxevents=maxevents@entry=12, timeout=timeout@entry=999) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30 3 Thread 0x7f6658934640 (LWP 3318) "server" __libc_recv (flags=<optimized out>, len=4096, buf=0x7f665a1de290 <default_client+16>, fd=21) at ../sysdeps/unix/sysv/linux/recv.c:28 4 Thread 0x7f6653fff640 (LWP 3319) "pmxcfs" __libc_read (nbytes=135168, buf=0x7f6658112010, fd=7) at ../sysdeps/unix/sysv/linux/read.c:26 5 Thread 0x7f66537fe640 (LWP 3320) "pmxcfs" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 (gdb) thread 3 [Switching to thread 3 (Thread 0x7f6658934640 (LWP 3318))] #0 __libc_recv (flags=<optimized out>, len=4096, buf=0x7f665a1de290 <default_client+16>, fd=21) at ../sysdeps/unix/sysv/linux/recv.c:28 28 return SYSCALL_CANCEL (recvfrom, fd, buf, len, flags, NULL, NULL); (gdb) bt #0 __libc_recv (flags=<optimized out>, len=4096, buf=0x7f665a1de290 <default_client+16>, fd=21) at ../sysdeps/unix/sysv/linux/recv.c:28 #1 __libc_recv (fd=21, buf=buf@entry=0x7f665a1de290 <default_client+16>, len=len@entry=4096, flags=flags@entry=0) at ../sysdeps/unix/sysv/linux/recv.c:23 #2 0x00007f665a1b88bc in recv (__flags=0, __n=4096, __buf=0x7f665a1de290 <default_client+16>, __fd=<optimized out>) at /usr/include/bits/socket2.h:44 #3 recvline (client=client@entry=0x7f665a1de280 <default_client>, buf=buf@entry=0x7f66589306b0 "", n=4095) at rrd_client.c:526 #4 0x00007f665a1b8bd4 in recvline (n=4096, buf=0x7f66589306b0 "", client=0x7f665a1de280 <default_client>) at rrd_client.c:514 #5 response_read (client=client@entry=0x7f665a1de280 <default_client>, ret_response=ret_response@entry=0x7f6658931700) at rrd_client.c:588 #6 0x00007f665a1b9373 in request (buffer=0x7f6658931790 "update /var/lib/rrdcached/db/pve2-node/aspetos 1679411717:1.24:32:0:0:134163562496:1661198336:134179975168:0:1882764304384:12975132672:693041:297340\n", buffer_size=0, ret_response=0x7f6658931788, client=0x7f665a1de280 <default_client>) at rrd_client.c:692 #7 request (client=client@entry=0x7f665a1de280 <default_client>, buffer=buffer@entry=0x7f6658931790 "update /var/lib/rrdcached/db/pve2-node/aspetos 1679411717:1.24:32:0:0:134163562496:1661198336:134179975168:0:1882764304384:12975132672:693041:297340\n", buffer_size=<optimized out>, ret_response=ret_response@entry=0x7f6658931788) at rrd_client.c:671 #8 0x00007f665a1b9c07 in rrd_client_update (client=client@entry=0x7f665a1de280 <default_client>, filename=filename@entry=0x7f664c005950 "/var/lib/rrdcached/db/pve2-node/aspetos", values_num=1486038928, values_num@entry=1, values=values@entry=0x7f6658933800) at rrd_client.c:1090 #9 0x00007f665a1b9cb0 in rrdc_update (filename=0x7f664c005950 "/var/lib/rrdcached/db/pve2-node/aspetos", values_num=1, values=0x7f6658933800) at rrd_client.c:1109 #10 0x00005571d2457853 in update_rrd_data (len=<optimized out>, data=<optimized out>, key=<optimized out>) at status.c:1374 #11 rrdentry_hash_set (rrdhash=0x2, key=0x7f664c005950 "/var/lib/rrdcached/db/pve2-node/aspetos", data=0x7f66500cfe0c "1679411717:1.24:32:0:0:134163562496:1661198336:134179975168:0:1882764304384:12975132672:693041:297340", len=140077549434880) at status.c:1523 #12 0x00005571d245ad16 in cfs_status_set (key=<optimized out>, data=0x7f66500cfe08, len=len@entry=106) at status.c:1697 #13 0x00005571d2455ef2 in s1_msg_process_fn (c=0x7f664c006900, data=<optimized out>, size=<optimized out>) at server.c:234 #14 0x00007f665a4af409 in _process_request_ (ms_timeout=10, c=0x7f664c006900) at ipcs.c:699 #15 qb_ipcs_dispatch_connection_request (fd=<optimized out>, revents=<optimized out>, data=0x7f664c006900) at ipcs.c:801 #16 0x00007f665a4ab5df in _poll_dispatch_and_take_back_ (item=0x7f664c0012e8, p=<optimized out>) at loop_poll.c:109 #17 0x00007f665a4ab3fc in qb_loop_run_level (level=<optimized out>) at loop.c:43 #18 qb_loop_run (lp=<optimized out>) at loop.c:211 #19 0x00005571d2455833 in worker_thread (data=<optimized out>) at server.c:592 #20 0x00007f665a3ea1cd in g_thread_proxy (data=0x5571d400d060) at ../glib/gthread.c:826 #21 0x00007f665a169eb0 in start_thread (arg=0x7f6658934640) at pthread_create.c:463 #22 0x00007f665a08952f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Вроде как помогло выключение инициализации сервиса rrrdcached через сокет: # systemctl disable rrdcached.socket Removed /etc/systemd/system/sockets.target.wants/rrdcached.socket. И включение через rdcached.service (хотя и без него работает вроде как). rdcached нужен для pve, он в нем кэштрует графики загрузки процессора и т.п. при этом сами rrd лежат в /etc/pve. Вполне возможно, что есть гонка, кто-то рано стучится в сокет и запускается сервис раньше положенного. Если в этом и есть проблема, то можно вообще убрать socket файл из пакета. (Ответ для Alexey Shabalin на комментарий #3) > rdcached нужен для pve, он в нем кэштрует графики загрузки процессора и т.п. > при этом сами rrd лежат в /etc/pve. > Вполне возможно, что есть гонка, кто-то рано стучится в сокет и запускается > сервис раньше положенного. Если в этом и есть проблема, то можно вообще > убрать socket файл из пакета. Мы не могли воспроизвести проблему на тестовом стенде. Если проблема встречается, то проще убрать socket-файл и прописать обязательство запускать rrdcached явно. (Ответ для Vitaly Lipatov на комментарий #2) > Вроде как помогло выключение инициализации сервиса rrrdcached через сокет: > # systemctl disable rrdcached.socket > Removed /etc/systemd/system/sockets.target.wants/rrdcached.socket. Напоролся ещё раз на новой машине после очередной перезагрузки. Выключение инициализации через сокет помогло. |