Open openAfre opened 8 years ago
Same phenomenon is triggered if murmur server is switched without leaving and joining VPN. just switching murmur servers (both are running in the same VPN).
VPN Connected Start mumble Connected to murmur server 1 Switch to murmur server 2 (in the same VPN network) => CPU 100%
Sometimes the CPU spike is happening only VPN Connected Start mumble Connected to VPN murmur server without a conversation wait for a certain amount of time => CPU 100%
client: Firewall setting is set to block
I am not a C/C++ person but I would love to help. Please let me know how.
perf top shows:
Samples: 73K of event 'cycles', Event count (approx.): 40214196830 Overhead Shared Object Symbol 8.12% libQt5Core.so.5.5.1 [.] QMetaObject::activate 7.15% [kernel] [k] __fget 5.63% libglib-2.0.so.0.4600.2 [.] g_mutex_lock 5.48% libglib-2.0.so.0.4600.2 [.] g_mutex_unlock 5.15% libQt5Core.so.5.5.1 [.] QMutex::lock 4.10% libQt5Core.so.5.5.1 [.] QMutex::unlock 3.76% [kernel] [k] fput 3.67% [kernel] [k] do_sys_poll 3.16% libglib-2.0.so.0.4600.2 [.] g_main_context_check 3.03% [kernel] [k] unix_poll 2.34% libglib-2.0.so.0.4600.2 [.] g_main_context_query 2.33% libQt5Core.so.5.5.1 [.] QCoreApplicationPrivate::sendThroughApplicationEventFilters 1.62% libQt5Widgets.so.5.5.1 [.] QApplication::notify 1.60% libQt5Core.so.5.5.1 [.] QCoreApplication::notifyInternal 1.60% [kernel] [k] sock_poll 1.43% libglib-2.0.so.0.4600.2 [.] g_main_context_prepare 1.11% libpthread-2.22.so [.] pthread_mutex_lock 1.09% libpthread-2.22.so [.] pthread_mutex_unlock 1.01% libQt5Widgets.so.5.5.1 [.] 0x00000000001ab3d6 1.00% [kernel] [k] fget_light 0.96% [kernel] [k] avc_has_perm 0.92% ld-2.22.so [.] _dl_update_slotinfo 0.79% [kernel] [k] entry_SYSCALL_64 0.76% [kernel] [k] entry_SYSCALL_64_after_swapgs 0.67% [kernel] [k] fdget 0.64% libQt5Core.so.5.5.1 [.] QMetaObject::cast 0.59% libQt5Core.so.5.5.1 [.] QObject::thread 0.57% libQt5Core.so.5.5.1 [.] QSocketNotifier::event 0.57% [kernel] [k] copy_user_enhanced_fast_string
another time after quitting mumbe, starting again disconnecting from VPN and re-connecting I get: Samples: 49K of event 'cycles', Event count (approx.): 31404512231 Overhead Shared Object Symbol 8.34% libglib-2.0.so.0.4600.2 [.] g_mutex_unlock 8.34% libglib-2.0.so.0.4600.2 [.] g_mutex_lock 7.14% [kernel] [k] fget 4.64% libQt5Core.so.5.5.1 [.] QMutex::lock 4.47% [kernel] [k] fput 4.08% libQt5Core.so.5.5.1 [.] QMetaObject::activate 3.57% libglib-2.0.so.0.4600.2 [.] g_main_context_check 3.56% [kernel] [k] do_sys_poll 3.52% libQt5Core.so.5.5.1 [.] QMutex::unlock 2.77% [kernel] [k] unix_poll 2.46% libglib-2.0.so.0.4600.2 [.] g_main_context_query 1.70% libglib-2.0.so.0.4600.2 [.] g_main_context_prepare 1.69% libpthread-2.22.so [.] pthread_mutex_lock 1.55% [kernel] [k] sock_poll 1.53% libpthread-2.22.so [.] pthread_mutex_unlock 1.31% libpthread-2.22.so [.] _GIlibc_recvmsg 1.18% [kernel] [k] avc_has_perm 1.13% [kernel] [k] entry_SYSCALL_64 1.05% [kernel] [k] entry_SYSCALL_64_after_swapgs 0.95% libQt5Core.so.5.5.1 [.] QCoreApplicationPrivate::sendThroughApplicationEventFilters 0.94% libQt5Core.so.5.5.1 [.] QMetaObject::cast 0.93% libQt5Widgets.so.5.5.1 [.] QApplication::notify 0.82% [kernel] [k] copy_user_enhanced_fast_string 0.72% [kernel] [k] fget_light 0.63% libQt5Core.so.5.5.1 [.] QEventLoop::exec 0.63% libQt5Core.so.5.5.1 [.] QCoreApplication::notifyInternal 0.62% libQt5Widgets.so.5.5.1 [.] 0x00000000001ab3d6 0.61% [kernel] [k] mutex_lock 0.60% [kernel] [k] fdget 0.60% ld-2.22.so [.] _dl_update_slotinfo 0.58% libc-2.22.so [.] 0x00000000000f6fdd
Could you try attaching GDB to Mumble once it's using 100% CPU, and trace some of its signal invocations?
Something like this should do:
$ gdb -p `pidof mumble`
[...]
(gdb) set pagination off
(gdb) b QMetaObject::activate
(gdb) commands
> print (QMetaObject *)$rsi
> continue
> end
(gdb) continue
You should then see output like this:
Breakpoint 1, 0x00007f727473c3f4 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 $3321 = (QMetaObject *) 0x7f7274a8cc80 <QTimer::staticMetaObject>
Breakpoint 1, 0x00007f727473c3f4 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 $3329 = (QMetaObject *) 0x7f7274a8cbc0 <QSocketNotifier::staticMetaObject>
etc.
This would give us some idea about what could be going on.
I am sorry about the slow answer.
the problem still exists if the firewall is set to block configuration.
this is part of the output: Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7596 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7597 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7598 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7599 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7600 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7601 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7602 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7603 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7604 = (QMetaObject ) 0x7faebb40db80 QAbstractEventDispatcher::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7605 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7606 = (QMetaObject ) 0x7faebb40db80 QAbstractEventDispatcher::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7607 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7608 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7609 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7610 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject [Switching to Thread 0x7faea5dca700 (LWP 9637)]
Breakpoint 1, 0x00007faea8368b80 in QMetaObject::activate(QObject, QMetaObject const, int, void*)@plt () from /lib64/libQt5XcbQpa.so.5 $7611 = (QMetaObject ) 0x7faea86188e0
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7612 = (QMetaObject ) 0x7faea86188e0 [Switching to Thread 0x7faebf500940 (LWP 9636)]
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7613 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7614 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject [Switching to Thread 0x7faea5dca700 (LWP 9637)]
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7615 = (QMetaObject ) 0x5 [Switching to Thread 0x7faebf500940 (LWP 9636)]
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7616 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7617 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7618 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7619 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7620 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7621 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7622 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7623 = (QMetaObject ) 0x7faebb40db80 QAbstractEventDispatcher::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7624 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7625 = (QMetaObject ) 0x7faebb40db80 QAbstractEventDispatcher::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7626 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7627 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7628 = (QMetaObject ) 0x3
Breakpoint 1, 0x0000558eeaf43720 in QMetaObject::activate(QObject, QMetaObject const, int, void*)@plt () $7629 = (QMetaObject ) 0x558eec062200 GlobalShortcutEngine::staticMetaObject
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7630 = (QMetaObject ) 0x558eec062200 GlobalShortcutEngine::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7631 = (QMetaObject ) 0x5
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7632 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7633 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7634 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7635 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7636 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7637 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7638 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7639 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7640 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7641 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7642 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7643 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7644 = (QMetaObject ) 0x7faebb40db80 QAbstractEventDispatcher::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7645 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7646 = (QMetaObject ) 0x7faebb40db80 QAbstractEventDispatcher::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7647 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7648 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7649 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7650 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7651 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7652 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7653 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7654 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7655 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7656 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7657 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7658 = (QMetaObject ) 0x7faebb40dec0 QSocketNotifier::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7659 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7660 = (QMetaObject ) 0x7faebb40df80 QTimer::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7661 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7662 = (QMetaObject ) 0x7faebb40df80 QTimer::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7663 = (QMetaObject ) 0x3
Breakpoint 1, 0x00007faebbf25080 in QMetaObject::activate(QObject, QMetaObject const, int, void*)@plt () from /lib64/libQt5Gui.so.5 $7664 = (QMetaObject ) 0x7faebc599360 QTextDocument::staticMetaObject
Breakpoint 1, 0x00007faebaff6a70 in QMetaObject::activate(QObject, QMetaObject const, int, void*) () from /lib64/libQt5Core.so.5 $7665 = (QMetaObject ) 0x7faebc599360 QTextDocument::staticMetaObject
Breakpoint 1, 0x00007faebaff5ae4 in QMetaObject::activate(QObject, int, int, void) () from /lib64/libQt5Core.so.5 $7666 = (QMetaObject ) 0x3
I am very certain the issue has something todo with using block as the default firewall zone and triggering a change in the network state.
I was running mumble fine for the last weeks not using the block zone.
Does the CPU usage go to 100% for Mumble (the client) or for murmur (the server)? Also is this problem still present in v1.3?
On Mon, Mar 02, 2020 at 09:24:37AM -0800, Robert Adam wrote:
Does the CPU usage go to 100% for Mumble (the client) or for murmur (the server)? Also is this problem still present in v1.3?
Mumble. Yes, i think i've seen it recently on master.
-- () ascii ribbon campaign - against html mail /\ http://arc.pasp.de/ - against proprietary attachments
Setup: client: fedora23 stock 1.2.11 and latest github master
server: murmur fedora23 1.2.11 (server is only reachable through VPN)
Steps to reproduce: Connect to VPN Start mumble Connect to murmur Disconnect VPN Connect VPN => murmur process cpu load goes up to 100% on one CPU core.
running sudo perf top -p nnnnn shows: https://paste.gnome.org/pt1ap5bjn