D23404: Revamp solver memory management

Wolfgang Bauer <[email protected]>
Newsgroups gmane.comp.kde.devel.games
Message-ID <[email protected]>
wbauer added a comment.


  Here's a valgrind log for now, maybe it contains a clue as well...
  
  17308== Memcheck, a memory error detector
  -----------------------------------------
  
  17308== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
  -----------------------------------------------------------------------
  
  17308== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
  --------------------------------------------------------------------------
  
  17308== Command: /opt/kf5/bin/kpat
  ----------------------------------
  
  17308
  -----
  
  17308== Conditional jump or move depends on uninitialised value(s)
  ------------------------------------------------------------------
  
  17308==    at 0x4C34D80: __memcmp_sse2 (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
  -------------------------------------------------------------------------------------------------
  
  17308==    by 0x1227A08A: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x12279235: FIPS_selftest (in /usr/lib64/libcrypto.so.1.1)
  ------------------------------------------------------------------------
  
  17308==    by 0x1227409C: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x12287FE0: FIPS_mode_set (in /usr/lib64/libcrypto.so.1.1)
  ------------------------------------------------------------------------
  
  17308==    by 0x1218D16A: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x400FBF9: call_init.part.0 (dl-init.c:72)
  --------------------------------------------------------
  
  17308==    by 0x400FD05: call_init (dl-init.c:119)
  --------------------------------------------------
  
  17308==    by 0x400FD05: _dl_init (dl-init.c:120)
  -------------------------------------------------
  
  17308==    by 0x4000ED9: ??? (in /lib64/ld-2.26.so)
  ---------------------------------------------------
  
  17308
  -----
  
  17308== Conditional jump or move depends on uninitialised value(s)
  ------------------------------------------------------------------
  
  17308==    at 0x4C34DA6: __memcmp_sse2 (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
  -------------------------------------------------------------------------------------------------
  
  17308==    by 0x1227A08A: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x12279235: FIPS_selftest (in /usr/lib64/libcrypto.so.1.1)
  ------------------------------------------------------------------------
  
  17308==    by 0x1227409C: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x12287FE0: FIPS_mode_set (in /usr/lib64/libcrypto.so.1.1)
  ------------------------------------------------------------------------
  
  17308==    by 0x1218D16A: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x400FBF9: call_init.part.0 (dl-init.c:72)
  --------------------------------------------------------
  
  17308==    by 0x400FD05: call_init (dl-init.c:119)
  --------------------------------------------------
  
  17308==    by 0x400FD05: _dl_init (dl-init.c:120)
  -------------------------------------------------
  
  17308==    by 0x4000ED9: ??? (in /lib64/ld-2.26.so)
  ---------------------------------------------------
  
  17308
  -----
  
  17308== Conditional jump or move depends on uninitialised value(s)
  ------------------------------------------------------------------
  
  17308==    at 0x4C34DCF: __memcmp_sse2 (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
  -------------------------------------------------------------------------------------------------
  
  17308==    by 0x1227A08A: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x12279235: FIPS_selftest (in /usr/lib64/libcrypto.so.1.1)
  ------------------------------------------------------------------------
  
  17308==    by 0x1227409C: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x12287FE0: FIPS_mode_set (in /usr/lib64/libcrypto.so.1.1)
  ------------------------------------------------------------------------
  
  17308==    by 0x1218D16A: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x400FBF9: call_init.part.0 (dl-init.c:72)
  --------------------------------------------------------
  
  17308==    by 0x400FD05: call_init (dl-init.c:119)
  --------------------------------------------------
  
  17308==    by 0x400FD05: _dl_init (dl-init.c:120)
  -------------------------------------------------
  
  17308==    by 0x4000ED9: ??? (in /lib64/ld-2.26.so)
  ---------------------------------------------------
  
  17308
  -----
  
  17308== Conditional jump or move depends on uninitialised value(s)
  ------------------------------------------------------------------
  
  17308==    at 0x4C34DF1: __memcmp_sse2 (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
  -------------------------------------------------------------------------------------------------
  
  17308==    by 0x1227A08A: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x12279235: FIPS_selftest (in /usr/lib64/libcrypto.so.1.1)
  ------------------------------------------------------------------------
  
  17308==    by 0x1227409C: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x12287FE0: FIPS_mode_set (in /usr/lib64/libcrypto.so.1.1)
  ------------------------------------------------------------------------
  
  17308==    by 0x1218D16A: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x400FBF9: call_init.part.0 (dl-init.c:72)
  --------------------------------------------------------
  
  17308==    by 0x400FD05: call_init (dl-init.c:119)
  --------------------------------------------------
  
  17308==    by 0x400FD05: _dl_init (dl-init.c:120)
  -------------------------------------------------
  
  17308==    by 0x4000ED9: ??? (in /lib64/ld-2.26.so)
  ---------------------------------------------------
  
  17308
  -----
  
  17308== Conditional jump or move depends on uninitialised value(s)
  ------------------------------------------------------------------
  
  17308==    at 0x122740A1: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x12287FE0: FIPS_mode_set (in /usr/lib64/libcrypto.so.1.1)
  ------------------------------------------------------------------------
  
  17308==    by 0x1218D16A: ??? (in /usr/lib64/libcrypto.so.1.1)
  --------------------------------------------------------------
  
  17308==    by 0x400FBF9: call_init.part.0 (dl-init.c:72)
  --------------------------------------------------------
  
  17308==    by 0x400FD05: call_init (dl-init.c:119)
  --------------------------------------------------
  
  17308==    by 0x400FD05: _dl_init (dl-init.c:120)
  -------------------------------------------------
  
  17308==    by 0x4000ED9: ??? (in /lib64/ld-2.26.so)
  ---------------------------------------------------
  
  17308
  -----
  
  17308== Thread 4 SolverThread:
  ------------------------------
  
  17308== Conditional jump or move depends on uninitialised value(s)
  ------------------------------------------------------------------
  
  17308==    at 0x4C34DF1: __memcmp_sse2 (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
  -------------------------------------------------------------------------------------------------
  
  17308==    by 0x1608E8: insert_node (memory.h:287)
  --------------------------------------------------
  
  17308==    by 0x1608E8: Solver<9ul>::insert(unsigned int*, int, TTree<19>**) (patsolve.cpp:861)
  -----------------------------------------------------------------------------------------------
  
  17308==    by 0x160A2D: Solver<9ul>::new_position(POSITION<19>*, MOVE*) (patsolve.cpp:881)
  ------------------------------------------------------------------------------------------
  
  17308==    by 0x16E35E: Solver<9ul>::solve(POSITION<19>*) (patsolve.cpp:557)
  ----------------------------------------------------------------------------
  
  17308==    by 0x16E5DA: Solver<9ul>::doit() (patsolve.cpp:483)
  --------------------------------------------------------------
  
  17308==    by 0x16E646: Solver<9ul>::patsolve(int) (patsolve.cpp:767)
  ---------------------------------------------------------------------
  
  17308==    by 0x140736: SolverThread::run() (dealer.cpp:159)
  ------------------------------------------------------------
  
  17308==    by 0x86A5511: QThreadPrivate::start(void*) (qthread_unix.cpp:360)
  ----------------------------------------------------------------------------
  
  17308==    by 0xD821568: start_thread (pthread_create.c:465)
  ------------------------------------------------------------
  
  17308==    by 0x95039EE: clone (clone.S:95)
  -------------------------------------------
  
  17308
  -----
  
  17308== Conditional jump or move depends on uninitialised value(s)
  ------------------------------------------------------------------
  
  17308==    at 0x1608EB: insert_node (memory.h:288)
  --------------------------------------------------
  
  17308==    by 0x1608EB: Solver<9ul>::insert(unsigned int*, int, TTree<19>**) (patsolve.cpp:861)
  -----------------------------------------------------------------------------------------------
  
  17308==    by 0x160A2D: Solver<9ul>::new_position(POSITION<19>*, MOVE*) (patsolve.cpp:881)
  ------------------------------------------------------------------------------------------
  
  17308==    by 0x16E35E: Solver<9ul>::solve(POSITION<19>*) (patsolve.cpp:557)
  ----------------------------------------------------------------------------
  
  17308==    by 0x16E5DA: Solver<9ul>::doit() (patsolve.cpp:483)
  --------------------------------------------------------------
  
  17308==    by 0x16E646: Solver<9ul>::patsolve(int) (patsolve.cpp:767)
  ---------------------------------------------------------------------
  
  17308==    by 0x140736: SolverThread::run() (dealer.cpp:159)
  ------------------------------------------------------------
  
  17308==    by 0x86A5511: QThreadPrivate::start(void*) (qthread_unix.cpp:360)
  ----------------------------------------------------------------------------
  
  17308==    by 0xD821568: start_thread (pthread_create.c:465)
  ------------------------------------------------------------
  
  17308==    by 0x95039EE: clone (clone.S:95)
  -------------------------------------------
  
  17308
  -----
  
  17308== Conditional jump or move depends on uninitialised value(s)
  ------------------------------------------------------------------
  
  17308==    at 0x1608ED: insert_node (memory.h:291)
  --------------------------------------------------
  
  17308==    by 0x1608ED: Solver<9ul>::insert(unsigned int*, int, TTree<19>**) (patsolve.cpp:861)
  -----------------------------------------------------------------------------------------------
  
  17308==    by 0x160A2D: Solver<9ul>::new_position(POSITION<19>*, MOVE*) (patsolve.cpp:881)
  ------------------------------------------------------------------------------------------
  
  17308==    by 0x16E35E: Solver<9ul>::solve(POSITION<19>*) (patsolve.cpp:557)
  ----------------------------------------------------------------------------
  
  17308==    by 0x16E5DA: Solver<9ul>::doit() (patsolve.cpp:483)
  --------------------------------------------------------------
  
  17308==    by 0x16E646: Solver<9ul>::patsolve(int) (patsolve.cpp:767)
  ---------------------------------------------------------------------
  
  17308==    by 0x140736: SolverThread::run() (dealer.cpp:159)
  ------------------------------------------------------------
  
  17308==    by 0x86A5511: QThreadPrivate::start(void*) (qthread_unix.cpp:360)
  ----------------------------------------------------------------------------
  
  17308==    by 0xD821568: start_thread (pthread_create.c:465)
  ------------------------------------------------------------
  
  17308==    by 0x95039EE: clone (clone.S:95)
  -------------------------------------------
  
  17308
  -----
  
  17308== Invalid read of size 8
  ------------------------------
  
  17308==    at 0x160AFB: getItem (memory.h:90)
  ---------------------------------------------
  
  17308==    by 0x160AFB: new_position (memory.h:198)
  ---------------------------------------------------
  
  17308==    by 0x160AFB: Solver<9ul>::new_position(POSITION<19>*, MOVE*) (patsolve.cpp:898)
  ------------------------------------------------------------------------------------------
  
  17308==    by 0x16E5B5: Solver<9ul>::doit() (patsolve.cpp:472)
  --------------------------------------------------------------
  
  17308==    by 0x16E646: Solver<9ul>::patsolve(int) (patsolve.cpp:767)
  ---------------------------------------------------------------------
  
  17308==    by 0x140736: SolverThread::run() (dealer.cpp:159)
  ------------------------------------------------------------
  
  17308==    by 0x86A5511: QThreadPrivate::start(void*) (qthread_unix.cpp:360)
  ----------------------------------------------------------------------------
  
  17308==    by 0xD821568: start_thread (pthread_create.c:465)
  ------------------------------------------------------------
  
  17308==    by 0x95039EE: clone (clone.S:95)
  -------------------------------------------
  
  17308==  Address 0x20000 is not stack'd, malloc'd or (recently) free'd
  ----------------------------------------------------------------------
  
  17308
  -----
  
  KCrash: Application 'kpat' crashing...
  KCrash: Attempting to start /usr/lib64/libexec/drkonqi from kdeinit
  The X11 connection broke (error 1). Did the X11 server die?
  sock_file=/run/user/1000/kdeinit5__0
  
  [1]+  Angehalten              valgrind /opt/kf5/bin/kpat
  wolfi@linux-lf90:~/Desktop> QSocketNotifier: Invalid socket 8 and type 'Read', disabling...
  
  17308
  -----
  
  17308== HEAP SUMMARY:
  ---------------------
  
  17308==     in use at exit: 9,172,071 bytes in 25,912 blocks
  ------------------------------------------------------------
  
  17308==   total heap usage: 688,988 allocs, 663,076 frees, 245,849,097 bytes allocated
  --------------------------------------------------------------------------------------
  
  17308
  -----
  
  17308== LEAK SUMMARY:
  ---------------------
  
  17308==    definitely lost: 6,732 bytes in 84 blocks
  ----------------------------------------------------
  
  17308==    indirectly lost: 40,466 bytes in 159 blocks
  ------------------------------------------------------
  
  17308==      possibly lost: 2,232 bytes in 2 blocks
  ---------------------------------------------------
  
  17308==    still reachable: 9,122,641 bytes in 25,667 blocks
  ------------------------------------------------------------
  
  17308==                       of which reachable via heuristic:
  ---------------------------------------------------------------
  
  17308==                         newarray           : 96 bytes in 3 blocks
  -------------------------------------------------------------------------
  
  17308==                         multipleinheritance: 21,448 bytes in 25 blocks
  ------------------------------------------------------------------------------
  
  17308==         suppressed: 0 bytes in 0 blocks
  -----------------------------------------------
  
  17308== Rerun with --leak-check=full to see details of leaked memory
  --------------------------------------------------------------------
  
  17308
  -----
  
  17308== Use --track-origins=yes to see where uninitialised values come from
  ---------------------------------------------------------------------------
  
  17308== For lists of detected and suppressed errors, rerun with: -s
  -------------------------------------------------------------------
  
  17308== ERROR SUMMARY: 137373 errors from 9 contexts (suppressed: 0 from 0)
  ---------------------------------------------------------------------------

REPOSITORY
  R410 KPatience

REVISION DETAIL
  https://phabricator.kde.org/D23404

To: fabiank, #kde_games, aacid, shlomif
Cc: wbauer, kde-games-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.