Bug 31381

Summary: qbittorrent is seriously leaking memory
Product: Mageia Reporter: Chris Denice <eatdirt>
Component: RPM PackagesAssignee: Stig-Ørjan Smelror <smelror>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Normal CC: geiger.david68210
Version: Cauldron   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Source RPM: qbittorrent-4.5.0-2.mga9.src.rpm CVE:
Status comment:

Description Chris Denice 2023-01-08 13:15:21 CET
Hi there,
on mga9, qbittorrent has a quite big memory leak, it eats up tens of Gigabyte of per day.

I am testing locally if this is better when build against qt5 rather than qt6.

Cheers,
Chris.
Comment 1 David GEIGER 2023-01-08 14:05:42 CET
Maybe this come from it has be build against Qt 6.4.0 and not the new one 6.4.1.

A Qt6 mass rebuild is planned soon.

CC: (none) => geiger.david68210

Comment 2 Lewis Smith 2023-01-08 18:55:19 CET
"I am testing locally if this is better when build against qt5 rather than qt6"
Chris, if you do succeed in your experiment, please note the result here to differentiate the problem between Qt and the program.

Assigning to Stig because he normally maintains this pkg; David G is CC'd so will keep an eye on it.

Assignee: bugsquad => smelror

Comment 3 Stig-Ørjan Smelror 2023-01-09 11:01:03 CET
Chris, did you report this upstream?

I was unable to find any commits addressing this issue on Github and perhaps David is correct that a rebuild against Qt 6.4.1 may solve this issue.

Please update us on your findings regarding Qt5 vs Qt6.

Cheers,
Stig
Comment 4 Chris Denice 2023-01-10 21:31:26 CET
All right, that does not help to build against qt5, still leaking and crashing after 2 days (not reported upstream).
I'll run it under valgrind to see what is going on!
Comment 5 Chris Denice 2023-01-10 21:53:54 CET
Oh yes, that is open bar. So many errors pop out of valgrind windows that I have to CTRL+C to stop it.

After a minute or so:

1903# QWidget::~QWidget() in /lib64/libQt6Widgets.so.6
1904# 0x0000000004E2970D in /lib64/libQt6Widgets.so.6
1905# 0x0000000004E28EDB in /lib64/libQt6Widgets.so.6
1906# QSystemTrayIcon::~QSystemTrayIcon() in /lib64/libQt6Widgets.so.6
1907# QSystemTrayIcon::~QSystemTrayIcon() in /lib64/libQt6Widgets.so.6
1908# QObjectPrivate::deleteChildren() in /lib64/libQt6Core.so.6
1909# QObject::~QObject() in /lib64/libQt6Core.so.6
1910# DesktopIntegration::~DesktopIntegration() in qbittorrent
1911# QObjectPrivate::deleteChildren() in /lib64/libQt6Core.so.6
1912# QObject::~QObject() in /lib64/libQt6Core.so.6
1913# Application::~Application() in qbittorrent
1914# main in qbittorrent
1915# 0x0000000006F1F677 in /lib64/libc.so.6
1916# __libc_start_main in /lib64/libc.so.6
1917# _start in qbittorrent
```

QWidget: Must construct a QApplication before a QWidget


==1528235== HEAP SUMMARY:
==1528235==     in use at exit: 15,610,456 bytes in 32,746 blocks
==1528235==   total heap usage: 2,102,792 allocs, 2,070,046 frees, 205,070,404 bytes allocated
==1528235==
==1528235== LEAK SUMMARY:
==1528235==    definitely lost: 5,120 bytes in 10 blocks
==1528235==    indirectly lost: 16,109 bytes in 641 blocks
==1528235==      possibly lost: 7,888 bytes in 14 blocks
==1528235==    still reachable: 15,581,339 bytes in 32,081 blocks
==1528235==                       of which reachable via heuristic:
==1528235==                         newarray           : 10,816 bytes in 44 blocks
==1528235==         suppressed: 0 bytes in 0 blocks
==1528235== Rerun with --leak-check=full to see details of leaked memory
==1528235==
==1528235== Use --track-origins=yes to see where uninitialised values come from
==1528235== For lists of detected and suppressed errors, rerun with: -s
==1528235== ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
Comment 6 Stig-Ørjan Smelror 2023-03-20 21:40:37 CET
Hello Chris.

Is it still leaking memory on the 4.5.2 version that was uploaded at the end of last month?
Comment 7 Chris Denice 2023-03-27 10:19:34 CEST
Sorry! It seems to work fine now, let me close this one!

Status: NEW => RESOLVED
Resolution: (none) => FIXED