Re: Sending valgrind logs to...
Gilles Caulier <[email protected]> Mon, 13 Jul 2026 15:23:53 +0200
| Newsgroups | gmane.comp.kde.digikam.user |
|---|---|
| Message-ID | <CAHFG6sF80EVD35N2qXa5oi25+RnKUqPFB=ehqo+vasX-M7uwbw@mail.gmail.com> |
Look at the end of the log : the main memory leak is due to OPenCV DNN model internal management : =3D=3D1415992=3D=3D 2,964,624 bytes in 2 blocks are possibly lost in loss record 4,664 of 4,669 =3D=3D1415992=3D=3D at 0x485880F: malloc (vg_replace_malloc.c:447) =3D=3D1415992=3D=3D by 0x9F88CC0: cv::fastMalloc(unsigned long) (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA08D13F: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA088315: cv::Mat::create(int, int const*, int) = (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA0D9E29: cv::_OutputArray::create(int, int cons= t*, int, int, bool, cv::_OutputArray::DepthMask) const (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0x9FEC872: cv::Mat::copyTo(cv::_OutputArray const= &) const (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0x96E8EDE: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x96F5A17: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x972A5F7: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x9722DE4: cv::dnn::dnn4_v20240521::readNetFromONNX(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x9520AD1: cv::dnn::dnn4_v20240521::readNet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x62935D0: Digikam::DNNModelNet::callLoader(QStri= ng const&) (in /usr/lib/digikam/libdigikamcore.so.9.0.0) =3D=3D1415992=3D=3D =3D=3D1415992=3D=3D 4,172,486 (40 direct, 4,172,446 indirect) bytes in 1 blocks are definitely lost in loss record 4,666 of 4,669 =3D=3D1415992=3D=3D at 0x4858F95: operator new(unsigned long) (vg_replace_malloc.c:488) =3D=3D1415992=3D=3D by 0x969125C: cv::dnn::dnn4_v20240521::Net::Impl::connect(int, int, int, int) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x96913D8: cv::dnn::dnn4_v20240521::Net::connect(int, int, int, int) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x96ED023: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x96FCEFD: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x96F3C25: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x96F7297: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x972A5F7: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x9722DE4: cv::dnn::dnn4_v20240521::readNetFromONNX(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x9520AD1: cv::dnn::dnn4_v20240521::readNet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x10E0A1EE: cv::FaceRecognizerSF::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int) (in /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.4.10.0) =3D=3D1415992=3D=3D by 0x62946FC: Digikam::DNNModelSFace::callLoader() (= in /usr/lib/digikam/libdigikamcore.so.9.0.0) =3D=3D1415992=3D=3D =3D=3D1415992=3D=3D 9,175,472 bytes in 6 blocks are possibly lost in loss record 4,667 of 4,669 =3D=3D1415992=3D=3D at 0x485880F: malloc (vg_replace_malloc.c:447) =3D=3D1415992=3D=3D by 0x9F88CC0: cv::fastMalloc(unsigned long) (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA08D13F: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA088315: cv::Mat::create(int, int const*, int) = (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA0D9E29: cv::_OutputArray::create(int, int cons= t*, int, int, bool, cv::_OutputArray::DepthMask) const (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0x9FEC872: cv::Mat::copyTo(cv::_OutputArray const= &) const (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0x96E8AA8: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x96F5A17: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x972A5F7: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x9722DE4: cv::dnn::dnn4_v20240521::readNetFromONNX(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x9520AD1: cv::dnn::dnn4_v20240521::readNet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x10E0A1EE: cv::FaceRecognizerSF::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int) (in /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.4.10.0) =3D=3D1415992=3D=3D =3D=3D1415992=3D=3D 25,690,184 bytes in 1 blocks are possibly lost in loss record 4,668 of 4,669 =3D=3D1415992=3D=3D at 0x485880F: malloc (vg_replace_malloc.c:447) =3D=3D1415992=3D=3D by 0x9F88CC0: cv::fastMalloc(unsigned long) (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA08D13F: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA088315: cv::Mat::create(int, int const*, int) = (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA08869F: cv::Mat::create(int, int, int) (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0x9FEC71B: cv::Mat::copyTo(cv::_OutputArray const= &) const (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0x96E8AA8: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x96F5A17: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x972A5F7: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x9722DE4: cv::dnn::dnn4_v20240521::readNetFromONNX(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x9520AD1: cv::dnn::dnn4_v20240521::readNet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x10E0A1EE: cv::FaceRecognizerSF::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int) (in /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.4.10.0) =3D=3D1415992=3D=3D =3D=3D1415992=3D=3D 342,113,140 bytes in 83 blocks are possibly lost in los= s record 4,669 of 4,669 =3D=3D1415992=3D=3D at 0x485880F: malloc (vg_replace_malloc.c:447) =3D=3D1415992=3D=3D by 0x9F88CC0: cv::fastMalloc(unsigned long) (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA08D13F: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA088315: cv::Mat::create(int, int const*, int) = (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0xA08869F: cv::Mat::create(int, int, int) (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0x9FEC71B: cv::Mat::copyTo(cv::_OutputArray const= &) const (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.4.10.0) =3D=3D1415992=3D=3D by 0x96E8EDE: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x96F5A17: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x972A5F7: ??? (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x9722DE4: cv::dnn::dnn4_v20240521::readNetFromONNX(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x9520AD1: cv::dnn::dnn4_v20240521::readNet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.10.0) =3D=3D1415992=3D=3D by 0x62935D0: Digikam::DNNModelNet::callLoader(QStri= ng const&) (in /usr/lib/digikam/libdigikamcore.so.9.0.0) =3D=3D1415992=3D=3D It's not at all a dysfunction of digiKAm as well. OPenCV4.10 is used on your system, OPenCV 4.13 is out with probably the fixes for this kind of memory leak. Nota : OpenCV 5.0 available since few weeks ago is not yet supported in digiKam, as the DNN engine have been completely rewritten and lack features provided by 4.x version (eg. the GPU support for ex)... So OpenCV 4 must be used with digiKAm for the moment, not the OpenCV 5 (and it will still like this until OPenCV taem fix all the regressions. Best regards Gilles Caulier Le lun. 13 juil. 2026 =C3=A0 15:16, Gilles Caulier <[email protected]> a =C3=A9crit : > > Did you use the native digiKam package from your distribution ? > > Which operations did you run in digiKam exactly ? > > Best regards > > Gilles Caulier > > Le lun. 13 juil. 2026 =C3=A0 13:44, Cyril Giraud <[email protected]> a =C3= =A9crit : > > > > Hi Gilles, > > > > Probably yes for digikam 9.0.0 (native for UbuntuStudio 26.04): > > =3D=3D1415992=3D=3D LEAK SUMMARY: > > =3D=3D1415992=3D=3D definitely lost: 9,208 bytes in 93 blocks > > =3D=3D1415992=3D=3D indirectly lost: 17,819,646 bytes in 71,055 bloc= ks > > =3D=3D1415992=3D=3D possibly lost: 387,519,486 bytes in 44,750 blo= cks > > =3D=3D1415992=3D=3D still reachable: 1,377,846 bytes in 4,720 blocks > > =3D=3D1415992=3D=3D of which reachable via heuris= tic: > > =3D=3D1415992=3D=3D newarray : 381,30= 4 bytes in 12 blocks > > =3D=3D1415992=3D=3D suppressed: 0 bytes in 0 blocks > > =3D=3D1415992=3D=3D Reachable blocks (those to which a pointer was foun= d) are not shown. > > =3D=3D1415992=3D=3D To see them, rerun with: --leak-check=3Dfull --show= -leak-kinds=3Dall > > > > Rerun today with --show-leak-kinds=3Dall (probably not exactly the same= GUI actions): > > > > =3D=3D7409=3D=3D LEAK SUMMARY: > > =3D=3D7409=3D=3D definitely lost: 10,144 bytes in 96 blocks > > =3D=3D7409=3D=3D indirectly lost: 17,853,762 bytes in 76,878 blocks > > =3D=3D7409=3D=3D possibly lost: 387,503,190 bytes in 39,004 blocks > > =3D=3D7409=3D=3D still reachable: 1,366,375 bytes in 4,637 blocks > > =3D=3D7409=3D=3D of which reachable via heuristic= : > > =3D=3D7409=3D=3D newarray : 376,536 b= ytes in 10 blocks > > =3D=3D7409=3D=3D suppressed: 0 bytes in 0 blocks > > > > > > Full logs here: > > J=E2=80=99ai li=C3=A9 2 fichiers =C3=A0 ce message : > > > > digiKam-9.0.0.valgrind.log > > Taille : 797 Ko > > > > Date d=E2=80=99expiration : 14/08/2026 > > NextCloud > > Lien : https://nextcloud.cgiraud.fr/index.php/s/CPQKTzGGPwkHpmy/downloa= d > > > > digiKam-9.0.0.valgrind2.log > > Taille : 5.6 Mo > > > > Date d=E2=80=99expiration : 14/08/2026 > > Service Filelink : NextCloud > > Lien : https://nextcloud.cgiraud.fr/index.php/s/ap2AqoKHatCKGpG/downloa= d > > > > I tried to run digikam 9.1.0 but running appimage with valgrind seems n= ot working. > > > > Best regards, > > Cyril > > > > > > > > > > Le 12/07/2026 =C3=A0 22:57, Gilles Caulier a =C3=A9crit : > > > > Hi > > did you observe a potential memory leak? In which context? > > > > You can share the trace in this room using a cloud storage link. > > > > Best regards > > > > Gilles Caulier > > > > Le dim. 12 juil. 2026 =C3=A0 22:51, Cyril Giraud <[email protected]> a = =C3=A9crit : > > > > Hi, > > > > https://www.digikam.org/contribute / Checking for Memory Leaks asks to > > send valgrind output to developers. > > > > Could someone give me an email address or a way to send these outputs? > > > > Thanks ! > > > > Cyril > > > >