Open msfunty opened 7 years ago
What are you doing with OLA? Is there anything else running on the Pi? What network protocols/interfaces or other stuff are you connecting to OLA?
How did you install OLA?
Ideally can you run this under valgrind for a minute or so and then shutdown OLA. That should give us a clue as to where the memory leak is.
Im using OLA to bridge KNX to DMX via UART (https://www.bitwizard.nl/wiki/Dmx_interface_for_raspberry_pi) for just 4 room lights. I took sources on Github in December and compiled it basically like described here: http://www.housewarrior.nl/diy-projects/howto-build-ola-from-source-on-a-raspberry-pi/ On the Pi there is also InfluxDB, Grafana and home automation software OpenHAB2 installed.
I will try valgrind.
Today, about 20 hours after start, OLAD used 205 MB of memory. Within syslog I didn't find anything strange. Just the startup lines: Feb 3 15:48:39 SmartPi systemd[1]: Starting LSB: OLA daemon... Feb 3 15:48:39 SmartPi olad[7601]: Starting OLA daemon: olad. Feb 3 15:48:39 SmartPi systemd[1]: Started LSB: OLA daemon. Feb 3 15:48:39 SmartPi olad: olad/Olad.cpp:94: OLA Daemon version 0.10.3 Feb 3 15:48:39 SmartPi olad: olad/OlaDaemon.cpp:121: Using configs in /var/lib/ola/conf Feb 3 15:48:39 SmartPi olad: common/thread/Thread.cpp:194: Thread pref-saver, policy SCHED_OTHER, priority 0 Feb 3 15:48:39 SmartPi olad: olad/OlaServer.cpp:194: Server UID is 7a70:64b2a8c0 Feb 3 15:48:39 SmartPi olad: olad/OlaServer.cpp:206: Server instance name is OLA Server Feb 3 15:48:39 SmartPi olad: common/thread/Thread.cpp:194: Thread http, policy SCHED_OTHER, priority 0 Feb 3 15:48:39 SmartPi olad: common/http/HTTPServer.cpp:496: HTTP Server started on port 9090 Feb 3 15:48:39 SmartPi olad: olad/OlaServer.cpp:481: Updated PID definitions. Feb 3 15:48:39 SmartPi olad: olad/OlaServer.cpp:489: PID store is at 0x1d851b8 Feb 3 15:48:39 SmartPi olad: common/thread/Thread.cpp:194: Thread signal-thread, policy SCHED_OTHER, priority 0 Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping ArtNet because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping Dummy because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping E1.31 (sACN) because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping ESP Net because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping GPIO because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping KarateLight because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping KiNET because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping Milford Instruments because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping Enttec Open DMX because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping Open Pixel Control because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping Renard because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping SandNet because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping ShowNet because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping SPI because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping StageProfi because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping Serial USB because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:73: Skipping Pathport because it was disabled Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:195: Trying to start UART native DMX Feb 3 15:48:39 SmartPi olad: common/io/ExtendedSerial.cpp:76: Port speeds for 22 are 250000 in and 250000 out Feb 3 15:48:39 SmartPi olad: common/thread/Thread.cpp:194: Thread , policy SCHED_OTHER, priority 0 Feb 3 15:48:39 SmartPi olad: olad/plugin_api/DeviceManager.cpp:105: Installed device: UART native DMX:20-/dev/ttyAMA0 Feb 3 15:48:39 SmartPi olad: plugins/uartdmx/UartDmxThread.cpp:136: Granularity for UART thread is GOOD Feb 3 15:48:39 SmartPi olad: olad/plugin_api/PortManager.cpp:119: Patched 20-/dev/ttyAMA0-O-0 to universe 0 Feb 3 15:48:39 SmartPi olad: olad/PluginManager.cpp:200: Started UART native DMX Feb 3 15:48:39 SmartPi olad: olad/plugin_api/Universe.cpp:285: Added source client, 0x1d2e840 to universe 0
I compiled again with the newest sources from Gibhub and configured with "--disable-all-plugins --enable-uartdmx --disable-http" options. Still the problems remains: At start: 6444 KB memory +2 min 6720 +2 6984 +1 7112 +4 7896 +2 8320 +1 8448 +1 8832
I tried valgrind but didn't succeed (sudo -H -u olad valgrind --leak-check=yes --log-file=olad.txt olad --syslog --log-level 3 --config-dir /var/lib/ola/conf)
Result:
==2058== Memcheck, a memory error detector
==2058== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==2058== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==2058== Command: olad --syslog --log-level 3 --config-dir /var/lib/ola/conf
==2058== Parent PID: 2054
==2058==
disInstr(arm): unhandled instruction: 0xF1010200
cond=15(0xF) 27:20=16(0x10) 4:4=0 3:0=0(0x0)
==2058== valgrind: Unrecognised instruction at address 0x48426f4.
==2058== at 0x48426F4: ??? (in /usr/lib/arm-linux-gnueabihf/libarmmem.so)
==2058== Your program just tried to execute an instruction that Valgrind
==2058== did not recognise. There are two possible reasons for this.
==2058== 1. Your program has a bug and erroneously jumped to a non-code
==2058== location. If you are running Memcheck and you just saw a
==2058== warning about a bad jump, it's probably your program's fault.
==2058== 2. The instruction is legitimate but Valgrind doesn't handle it,
==2058== i.e. it's Valgrind's fault. If you think this is the case or
==2058== you are not sure, please let us know and we'll try to fix it.
==2058== Either way, Valgrind will now raise a SIGILL signal which will
==2058== probably kill your program.
==2058==
==2058== Process terminating with default action of signal 4 (SIGILL)
==2058== Illegal opcode at address 0x48426F4
==2058== at 0x48426F4: ??? (in /usr/lib/arm-linux-gnueabihf/libarmmem.so)
==2058==
==2058== HEAP SUMMARY:
==2058== in use at exit: 17,497 bytes in 628 blocks
==2058== total heap usage: 646 allocs, 18 frees, 17,953 bytes allocated
==2058==
==2058== 5,889 bytes in 204 blocks are possibly lost in loss record 48 of 48
==2058== at 0x4833F2C: operator new(unsigned int) (vg_replace_malloc.c:282)
==2058== by 0x4B579E7: std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator
Thanks for clarifying what you're doing @msfunty .
If you see the discussion here, it seem you need to "sudo apt-get remove raspi-copies-and-fills" to get Valgrind working on a Pi: http://stackoverflow.com/questions/17430731/valgrind-returning-an-unhandled-instruction-on-raspberry-pi
Thanks, Peter. Valgrind analyzed the following after running 20 secs:
==31973== Memcheck, a memory error detector
==31973== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==31973== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==31973== Command: olad --syslog --log-level 3 --config-dir /var/lib/ola/conf
==31973== Parent PID: 31969
==31973==
--31973--
--31973-- Valgrind options:
--31973-- --suppressions=/usr/lib/valgrind/debian-libc6-dbg.supp
--31973-- -v
--31973-- --leak-check=yes
--31973-- --log-file=./olad/olad.txt
--31973-- Contents of /proc/version:
--31973-- Linux version 4.4.38-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #938 SMP Thu Dec 15 15:22:21 GMT 2016
--31973-- Arch and hwcaps: ARM, ARMv7-vfp-neon
--31973-- Page sizes: currently 4096, max supported 4096
--31973-- Valgrind library directory: /usr/lib/valgrind
--31973-- Reading syms from /usr/local/bin/olad (0x10000)
--31973-- Reading syms from /lib/arm-linux-gnueabihf/ld-2.19.so (0x4000000)
--31973-- Considering /lib/arm-linux-gnueabihf/ld-2.19.so ..
--31973-- .. CRC mismatch (computed 60c6ca5f wanted 97bf44dc)
--31973-- Considering /usr/lib/debug/lib/arm-linux-gnueabihf/ld-2.19.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /usr/lib/valgrind/memcheck-arm-linux (0x38000000)
--31973-- Considering /usr/lib/valgrind/memcheck-arm-linux ..
--31973-- .. CRC mismatch (computed 490a0e7e wanted 8f7ca175)
--31973-- Considering /usr/lib/debug/usr/lib/valgrind/memcheck-arm-linux ..
--31973-- .. CRC is valid
--31973-- object doesn't have a dynamic symbol table
--31973-- Reading suppressions file: /usr/lib/valgrind/debian-libc6-dbg.supp
--31973-- Reading suppressions file: /usr/lib/valgrind/default.supp
==31973== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-31973-by-olad-on-???
==31973== embedded gdbserver: writing to /tmp/vgdb-pipe-to-vgdb-from-31973-by-olad-on-???
==31973== embedded gdbserver: shared mem /tmp/vgdb-pipe-shared-mem-vgdb-31973-by-olad-on-???
==31973==
==31973== TO CONTROL THIS PROCESS USING vgdb (which you probably
==31973== don't want to do, unless you know exactly what you're doing,
==31973== or are doing some strange experiment):
==31973== /usr/lib/valgrind/../../bin/vgdb --pid=31973 ...command...
==31973==
==31973== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==31973== /path/to/gdb olad
==31973== and then give GDB the following command
==31973== target remote | /usr/lib/valgrind/../../bin/vgdb --pid=31973
==31973== --pid is optional if only one valgrind process is running
==31973==
--31973-- Reading syms from /usr/lib/valgrind/vgpreload_core-arm-linux.so (0x4023000)
--31973-- Considering /usr/lib/valgrind/vgpreload_core-arm-linux.so ..
--31973-- .. CRC mismatch (computed 7ee02d17 wanted a974aa59)
--31973-- Considering /usr/lib/debug/usr/lib/valgrind/vgpreload_core-arm-linux.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so (0x4831000)
--31973-- Considering /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so ..
--31973-- .. CRC mismatch (computed 6edbceb6 wanted 98c7f138)
--31973-- Considering /usr/lib/debug/usr/lib/valgrind/vgpreload_memcheck-arm-linux.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /usr/local/lib/libolaserver.so.0.0.0 (0x484d000)
--31973-- Reading syms from /usr/local/lib/libolacommon.so.0.0.0 (0x48b5000)
--31973-- Reading syms from /usr/local/lib/libola.so.1.0.1 (0x4a45000)
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libdl-2.19.so (0x4a82000)
--31973-- Considering /lib/arm-linux-gnueabihf/libdl-2.19.so ..
--31973-- .. CRC mismatch (computed 0c8e989f wanted 83403c90)
--31973-- Considering /usr/lib/debug/lib/arm-linux-gnueabihf/libdl-2.19.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.20 (0x4a95000)
--31973-- Considering /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.20 ..
--31973-- .. CRC mismatch (computed 2cef529d wanted 68acc9e1)
--31973-- object doesn't have a symbol table
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libm-2.19.so (0x4b71000)
--31973-- Considering /lib/arm-linux-gnueabihf/libm-2.19.so ..
--31973-- .. CRC mismatch (computed 03f9a8df wanted 7f8d470f)
--31973-- Considering /usr/lib/debug/lib/arm-linux-gnueabihf/libm-2.19.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x4bec000)
--31973-- Considering /lib/arm-linux-gnueabihf/libgcc_s.so.1 ..
--31973-- .. CRC mismatch (computed be1a006e wanted b78194c6)
--31973-- object doesn't have a symbol table
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libpthread-2.19.so (0x4c19000)
--31973-- Considering /lib/arm-linux-gnueabihf/libpthread-2.19.so ..
--31973-- .. CRC mismatch (computed 112d5fad wanted d8ca4475)
--31973-- Considering /usr/lib/debug/lib/arm-linux-gnueabihf/libpthread-2.19.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libc-2.19.so (0x4c41000)
--31973-- Considering /lib/arm-linux-gnueabihf/libc-2.19.so ..
--31973-- .. CRC mismatch (computed 0a81db7e wanted f3b17e58)
--31973-- Considering /usr/lib/debug/lib/arm-linux-gnueabihf/libc-2.19.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /usr/local/lib/libolauartdmx.so.0.0.0 (0x4d82000)
--31973-- Reading syms from /usr/local/lib/libolaserverplugininterface.so.0.0.0 (0x4d9b000)
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libresolv-2.19.so (0x4e14000)
--31973-- Considering /lib/arm-linux-gnueabihf/libresolv-2.19.so ..
--31973-- .. CRC mismatch (computed 6138695f wanted 547df4a0)
--31973-- Considering /usr/lib/debug/lib/arm-linux-gnueabihf/libresolv-2.19.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /usr/lib/arm-linux-gnueabihf/libprotobuf.so.9.0.1 (0x4e39000)
--31973-- object doesn't have a symbol table
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libz.so.1.2.8 (0x4f4e000)
--31973-- object doesn't have a symbol table
--31973-- REDIR: 0x4cbb380 (memset) redirected to 0x4838c94 (memset)
--31973-- REDIR: 0x4cbb9e0 (memcpy) redirected to 0x4837af0 (memcpy)
--31973-- REDIR: 0x4cb9b20 (rindex) redirected to 0x4835ef8 (rindex)
--31973-- REDIR: 0x4ae0310 (operator new(unsigned int)) redirected to 0x4833ea8 (operator new(unsigned int))
--31973-- REDIR: 0x4cbb040 (memmove) redirected to 0x4838d44 (memmove)
--31973-- REDIR: 0x4addcb0 (operator delete(void)) redirected to 0x4834e98 (operator delete(void))
--31973-- REDIR: 0x4ae03f8 (operator new[](unsigned int)) redirected to 0x4834560 (operator new[](unsigned int))
--31973-- REDIR: 0x4addcb8 (operator delete) redirected to 0x4835378 (operator delete)
--31973-- REDIR: 0x4cbabf0 (bcmp) redirected to 0x483875c (bcmp)
--31973-- REDIR: 0x4cb9630 (strlen) redirected to 0x48366ec (strlen)
--31973-- REDIR: 0x4cb8f40 (strcmp) redirected to 0x483739c (strcmp)
--31973-- REDIR: 0x4cb58d0 (calloc) redirected to 0x48356b8 (calloc)
--31973-- REDIR: 0x4cb98b4 (strncmp) redirected to 0x4836cbc (strncmp)
--31973-- REDIR: 0x4cb4d98 (malloc) redirected to 0x48338ec (malloc)
--31973-- REDIR: 0x4cbd580 (strchrnul) redirected to 0x483901c (strchrnul)
--31973-- REDIR: 0x4cb554c (free) redirected to 0x4834a88 (free)
--31973-- REDIR: 0x4cba4e0 (strstr) redirected to 0x48394c0 (strstr)
--31973-- REDIR: 0x4cb8fa0 (strcpy) redirected to 0x483676c (strcpy)
--31973-- REDIR: 0x4cbb400 (mempcpy) redirected to 0x483917c (mempcpy)
--31973-- REDIR: 0x4cb5604 (realloc) redirected to 0x4835808 (realloc)
--31973-- REDIR: 0x4cb99fc (strncpy) redirected to 0x48369a4 (strncpy)
--31973-- WARNING: unhandled syscall: 357
==31973== at 0x4D12B7C: epoll_create1 (syscall-template.S:81)
==31973== by 0x4946663: ola::io::EPoller::EPoller(ola::ExportMap, ola::Clock) (EPoller.cpp:153)
==31973== by 0x493FAC3: ola::io::SelectServer::Init(ola::io::SelectServer::Options const&) (SelectServer.cpp:302)
==31973== by 0x4940227: ola::io::SelectServer::SelectServer(ola::ExportMap, ola::Clock) (SelectServer.cpp:86)
==31973== by 0x4875BC3: ola::OlaDaemon::OlaDaemon(ola::OlaServer::Options const&, ola::ExportMap) (OlaDaemon.cpp:75)
==31973== by 0x12AFB: main (Olad.cpp:136)
--31973-- You may be able to write your own handler.
--31973-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--31973-- Nevertheless we consider this a bug. Please report
--31973-- it at http://valgrind.org/support/bug_reports.html.
--31973-- REDIR: 0x4cbaa90 (memchr) redirected to 0x483753c (memchr)
--31973-- REDIR: 0x4cb8f90 (stpcpy) redirected to 0x4838834 (stpcpy)
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x40194A0: index (strchr.S:99)
==31973== by 0x4014377: dl_open_worker (dl-open.c:212)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973== by 0x4D34153: nss_lookup_function (nsswitch.c:466)
==31973== by 0x4D3429F: nss_lookup (nsswitch.c:189)
==31973== by 0x4CDF633: getpwuid_r@@GLIBC_2.4 (getXXbyYY_r.c:205)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x40194A4: index (strchr.S:101)
==31973== by 0x4014377: dl_open_worker (dl-open.c:212)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973== by 0x4D34153: nss_lookup_function (nsswitch.c:466)
==31973== by 0x4D3429F: nss_lookup (nsswitch.c:189)
==31973== by 0x4CDF633: getpwuid_r@@GLIBC_2.4 (getXXbyYY_r.c:205)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401437C: dl_open_worker (dl-open.c:213)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973== by 0x4D34153: nss_lookup_function (nsswitch.c:466)
==31973== by 0x4D3429F: __nss_lookup (nsswitch.c:189)
==31973== by 0x4CDF633: getpwuid_r@@GLIBC_2.4 (getXXbyYY_r.c:205)
==31973== by 0x4925173: bool ola::GenericGetPasswdReentrant<int ()(unsigned int, passwd, char, unsigned int, passwd*), unsigned int>(int ()(unsigned int, passwd, char, unsigned int, passwd*), unsigned int, ola::PasswdEntry) (Credentials.cpp:191)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x40194A0: index (strchr.S:99)
==31973== by 0x4008CF7: _dl_map_object (dl-load.c:2398)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973== by 0x4D34153: nss_lookup_function (nsswitch.c:466)
==31973== by 0x4D3429F: nss_lookup (nsswitch.c:189)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x40194A4: index (strchr.S:101)
==31973== by 0x4008CF7: _dl_map_object (dl-load.c:2398)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973== by 0x4D34153: nss_lookup_function (nsswitch.c:466)
==31973== by 0x4D3429F: nss_lookup (nsswitch.c:189)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x4008CFC: _dl_map_object (dl-load.c:2398)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973== by 0x4D34153: nss_lookup_function (nsswitch.c:466)
==31973== by 0x4D3429F: nss_lookup (nsswitch.c:189)
==31973== by 0x4CDF633: getpwuid_r@@GLIBC_2.4 (getXXbyYY_r.c:205)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x40197E0: strlen (strlen.S:76)
==31973== by 0x4008DBF: _dl_map_object (dl-load.c:2402)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973== by 0x4D34153: nss_lookup_function (nsswitch.c:466)
==31973== by 0x4D3429F: nss_lookup (nsswitch.c:189)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x40197E4: strlen (strlen.S:78)
==31973== by 0x4008DBF: _dl_map_object (dl-load.c:2402)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973== by 0x4D34153: nss_lookup_function (nsswitch.c:466)
==31973== by 0x4D3429F: nss_lookup (nsswitch.c:189)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A280: mempcpy (mempcpy.c:33)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x3: ???
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A2A0: memcpy (memcpy.S:63)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0xD: ???
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A2C4: memcpy (memcpy.S:79)
==31973== by 0x3467: ???
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A2C4: memcpy (memcpy.S:79)
==31973== by 0x1: ???
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A34C: memcpy (memcpy.S:177)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x400765B: open_path (dl-load.c:2199)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A350: memcpy (memcpy.S:180)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x400765B: open_path (dl-load.c:2199)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A354: memcpy (memcpy.S:183)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x400765B: open_path (dl-load.c:2199)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A358: memcpy (memcpy.S:194)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x400765B: open_path (dl-load.c:2199)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A36C: memcpy (memcpy.S:208)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x400765B: open_path (dl-load.c:2199)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A370: memcpy (memcpy.S:210)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x400765B: open_path (dl-load.c:2199)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A374: memcpy (memcpy.S:212)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x400765B: open_path (dl-load.c:2199)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A2A8: memcpy (memcpy.S:71)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A39C: memcpy (memcpy.S:241)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A3A0: memcpy (memcpy.S:243)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A3C4: memcpy (memcpy.S:337)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A44C: memcpy (memcpy.S:337)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A460: memcpy (memcpy.S:337)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A464: memcpy (memcpy.S:337)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A360: memcpy (memcpy.S:202)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A364: memcpy (memcpy.S:204)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A370: memcpy (memcpy.S:210)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A370: memcpy (memcpy.S:210)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A374: memcpy (memcpy.S:212)
==31973== by 0x401A28B: mempcpy (mempcpy.c:34)
==31973== by 0x40076EF: open_path (dl-load.c:2207)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: __libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Syscall param open(filename) contains uninitialised byte(s)
==31973== at 0x4018E3C: open (syscall-template.S:81)
==31973== by 0x4006ED3: open_verify (dl-load.c:1930)
==31973== by 0x4007723: open_path (dl-load.c:2216)
==31973== by 0x4008E57: _dl_map_object (dl-load.c:2447)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x40197E0: strlen (strlen.S:76)
==31973== by 0x400B55B: _dl_new_object (dl-object.c:62)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x40197E4: strlen (strlen.S:78)
==31973== by 0x400B55B: _dl_new_object (dl-object.c:62)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: __libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x4835724: calloc (vg_replace_malloc.c:566)
==31973== by 0x400B5AB: _dl_new_object (dl-object.c:75)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A2A8: memcpy (memcpy.S:71)
==31973== by 0x400B5DB: _dl_new_object (dl-object.c:87)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A2C8: memcpy (memcpy.S:85)
==31973== by 0x400B5DB: _dl_new_object (dl-object.c:87)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: __libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A320: memcpy (memcpy.S:143)
==31973== by 0x400B5DB: _dl_new_object (dl-object.c:87)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A320: memcpy (memcpy.S:143)
==31973== by 0x400B5DB: _dl_new_object (dl-object.c:87)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Use of uninitialised value of size 4
==31973== at 0x401A348: memcpy (memcpy.S:174)
==31973== by 0x400B5DB: _dl_new_object (dl-object.c:87)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: __libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A360: memcpy (memcpy.S:202)
==31973== by 0x400B5DB: _dl_new_object (dl-object.c:87)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Conditional jump or move depends on uninitialised value(s)
==31973== at 0x401A364: memcpy (memcpy.S:204)
==31973== by 0x400B5DB: _dl_new_object (dl-object.c:87)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973==
==31973== Invalid read of size 4
==31973== at 0x40197E0: strlen (strlen.S:76)
==31973== by 0x400B6DB: _dl_new_object (dl-object.c:157)
==31973== by 0x4005A5B: _dl_map_object_from_fd (dl-load.c:1059)
==31973== by 0x4008D93: _dl_map_object (dl-load.c:2605)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973== Address 0x4fac224 is 0 bytes after a block of size 44 alloc'd
==31973== at 0x4833970: malloc (vg_replace_malloc.c:263)
==31973== by 0x400579B: local_strdup (dl-load.c:162)
==31973== by 0x4008FEB: _dl_map_object (dl-load.c:2509)
==31973== by 0x40143F7: dl_open_worker (dl-open.c:235)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4013D47: _dl_open (dl-open.c:661)
==31973== by 0x4D49DEB: do_dlopen (dl-libc.c:87)
==31973== by 0x400FE93: _dl_catch_error (dl-error.c:187)
==31973== by 0x4D49ED3: dlerror_run (dl-libc.c:46)
==31973== by 0x4D49F53: libc_dlopen_mode (dl-libc.c:163)
==31973== by 0x4D3387B: nss_load_library (nsswitch.c:358)
==31973== by 0x4D34153: nss_lookup_function (nsswitch.c:466)
==31973==
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libnss_compat-2.19.so (0x5378000)
--31973-- Considering /lib/arm-linux-gnueabihf/libnss_compat-2.19.so ..
--31973-- .. CRC mismatch (computed a5a9d8d5 wanted 2cb4bd67)
--31973-- Considering /usr/lib/debug/lib/arm-linux-gnueabihf/libnss_compat-2.19.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libnsl-2.19.so (0x5390000)
--31973-- Considering /lib/arm-linux-gnueabihf/libnsl-2.19.so ..
--31973-- .. CRC mismatch (computed f90e7803 wanted ff7e36e2)
--31973-- Considering /usr/lib/debug/lib/arm-linux-gnueabihf/libnsl-2.19.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libnss_nis-2.19.so (0x53b4000)
--31973-- Considering /lib/arm-linux-gnueabihf/libnss_nis-2.19.so ..
--31973-- .. CRC mismatch (computed dfeb8ce0 wanted 18ab093b)
--31973-- Considering /usr/lib/debug/lib/arm-linux-gnueabihf/libnss_nis-2.19.so ..
--31973-- .. CRC is valid
--31973-- Reading syms from /lib/arm-linux-gnueabihf/libnss_files-2.19.so (0x53ce000)
--31973-- Considering /lib/arm-linux-gnueabihf/libnss_files-2.19.so ..
--31973-- .. CRC mismatch (computed 9b1a00be wanted 9609cfcf)
--31973-- Considering /usr/lib/debug/lib/arm-linux-gnueabihf/libnss_files-2.19.so ..
--31973-- .. CRC is valid
--31973-- REDIR: 0x4cb8e70 (index) redirected to 0x4836004 (index)
--31973-- REDIR: 0x4cbd4f0 (rawmemchr) redirected to 0x4839068 (rawmemchr)
--31973-- WARNING: unhandled syscall: 357
==31973== at 0x4D12B7C: epoll_create1 (syscall-template.S:81)
==31973== by 0x4946663: ola::io::EPoller::EPoller(ola::ExportMap, ola::Clock) (EPoller.cpp:153)
==31973== by 0x493FAC3: ola::io::SelectServer::Init(ola::io::SelectServer::Options const&) (SelectServer.cpp:302)
==31973== by 0x4940227: ola::io::SelectServer::SelectServer(ola::ExportMap, ola::Clock) (SelectServer.cpp:86)
==31973== by 0x4DC86B3: ola::FilePreferenceSaverThread::FilePreferenceSaverThread() (Preferences.cpp:348)
==31973== by 0x4876B87: ola::OlaDaemon::Init() (Preferences.h:517)
==31973== by 0x12BAB: main (Olad.cpp:160)
--31973-- You may be able to write your own handler.
--31973-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--31973-- Nevertheless we consider this a bug. Please report
--31973-- it at http://valgrind.org/support/bug_reports.html.
--31973-- Discarding syms at 0x5378e10-0x537dce0 in /lib/arm-linux-gnueabihf/libnss_compat-2.19.so due to munmap()
--31973-- Discarding syms at 0x53b58b0-0x53bc370 in /lib/arm-linux-gnueabihf/libnss_nis-2.19.so due to munmap()
--31973-- Discarding syms at 0x5392f40-0x539e490 in /lib/arm-linux-gnueabihf/libnsl-2.19.so due to munmap()
--31973-- Discarding syms at 0x53cfa10-0x53d7980 in /lib/arm-linux-gnueabihf/libnss_files-2.19.so due to munmap()
==31973==
==31973== HEAP SUMMARY:
==31973== in use at exit: 26,019 bytes in 825 blocks
==31973== total heap usage: 160,993 allocs, 160,168 frees, 2,835,857 bytes allocated
==31973==
==31973== Searching for pointers to 825 not-freed blocks
==31973== Checked 8,632,420 bytes
==31973==
==31973== 144 bytes in 1 blocks are possibly lost in loss record 113 of 130
==31973== at 0x4835770: calloc (vg_replace_malloc.c:566)
==31973== by 0x401283B: allocate_dtv (dl-tls.c:296)
==31973== by 0x4012F0F: _dl_allocate_tls (dl-tls.c:460)
==31973== by 0x4C20C93: pthread_create@@GLIBC_2.4 (allocatestack.c:589)
==31973== by 0x49D2B6F: ola::thread::Thread::FastStart() (Thread.cpp:140)
==31973== by 0x49D262B: ola::thread::Thread::Start() (Thread.cpp:91)
==31973== by 0x12F0B: StartSignalThread(ola::io::SelectServer, ola::thread::SignalThread) (Olad.cpp:69)
==31973== by 0x1320B: ola::SingleUseCallback0
I'm no Valgrind expert, so I'm hoping @nomis52 may be able to assist, but it doesn't look like we've lost much at all in that short run and I'm not sure OLA would have fully finished starting then. Can you leave it running for a bit longer please @msfunty ?
Were you doing the same things as normal, i.e. was OpenHAB2 still controlling it? Does the leaking stop normally if OpenHAB2 isn't controlling it? Has removing raspi-copies-and-fill fixed it?
Removing raspi-copies-and-fill helped to get Valgrind run on a Pi.
In the meantime I did some more analysis: -I did not recognize any memory leak when having no connection to OLAD. -I think OpenHAB is responsible for the leak as this started about 1 month ago where I had no change in OLAD. -I think I need to test with some other software. For Dmxcontrol I cannot find OLA, but ArtNet. Any other suggestions for free Windows DMX software (just for this testing purpose)?
You can try QLC+. It can output to OLA, ArtNet and some other protocols you might want to test.
Thanks for your help. In the OLA binding in OpenHAB there was a change regarding data transfer to OLAD. Previously data was not repeated (I think according to DMX standard it has to be repeating even if there is no change). Anyhow, without repeating memory footprint doesn't change much, just as little as about 100 KB during 4 days.
So I think the issue is not too big on OLAD side.
Is that the repeatMode option http://docs.openhab.org/addons/bindings/dmx1/readme.html#binding-configuration @msfunty ?
If you are seeing a leak with that set to "always" or "reduced" that probably still represents a bug of some sort in OLA (or it's Java API) or OpenHAB.
Depending on the plugin/interface being used varies how or when OLA will repeat the data if you don't send any updates yourself.
Right, it is parameter repeatMode (https://github.com/openhab/openhab1-addons/issues/5093).
Can we have trace level logs of OpenHAB please, to get an idea of how often it's sending.
Can you also try the valgrind run again, but this time with OpenHAB sending data to OLA please.
I'm using OLA Daemon version 0.10.3 on a RPI. When starting olad it's about 8-9 MB, over time (about 4 days) it claims more than 160 MB so that my RPI does not have sufficient memory anymore. IMHO there seems to be a memory leak.
In kern.log you can find the following: Feb 2 06:26:05 SmartPi kernel: [226401.260400] lowmem_reserve[]: 0 0 Feb 2 06:26:05 SmartPi kernel: [226401.264122] Normal: 854kB (UEC) 758kB (UEC) 5016kB (UE) 1932kB (UEC) 464kB (UEC) 5128kB (C) 2256kB (C) 0512kB 01024kB 02048kB 0*4096kB = 3756kB Feb 2 06:26:05 SmartPi kernel: [226401.272073] 8601 total pagecache pages Feb 2 06:26:05 SmartPi kernel: [226401.275854] 5753 pages in swap cache Feb 2 06:26:05 SmartPi kernel: [226401.279471] Swap cache stats: add 76163, delete 70410, find 118091/121453 Feb 2 06:26:05 SmartPi kernel: [226401.283343] Free swap = 0kB Feb 2 06:26:05 SmartPi kernel: [226401.287079] Total swap = 102396kB Feb 2 06:26:05 SmartPi kernel: [226401.290820] 241664 pages RAM Feb 2 06:26:05 SmartPi kernel: [226401.294283] 0 pages HighMem/MovableOnly Feb 2 06:26:06 SmartPi kernel: [226401.297483] 4731 pages reserved Feb 2 06:26:06 SmartPi kernel: [226401.300611] 2048 pages cma reserved Feb 2 06:26:06 SmartPi kernel: [226401.303647] [ pid ] uid tgid total_vm rss nr_ptes nr_pmds swapents oom_score_adj name Feb 2 06:26:06 SmartPi kernel: [226401.309750] [ 127] 0 127 2576 1094 10 0 47 0 systemd-journal Feb 2 06:26:06 SmartPi kernel: [226401.316094] [ 129] 0 129 2856 1 6 0 121 -1000 systemd-udevd Feb 2 06:26:06 SmartPi kernel: [226401.322510] [ 364] 0 364 1966 1 9 0 114 -1000 sshd Feb 2 06:26:06 SmartPi kernel: [226401.328924] [ 365] 0 365 8036 37 9 0 149 0 rsyslogd Feb 2 06:26:06 SmartPi kernel: [226401.335434] [ 367] 0 367 1387 11 7 0 39 0 cron ... Feb 2 06:26:06 SmartPi kernel: [226401.386581] [ 572] 107 572 164196 144955 313 0 6437 0 olad ... Feb 2 06:26:06 SmartPi kernel: [226401.473969] Out of memory: Kill process 572 (olad) score 577 or sacrifice child Feb 2 06:26:06 SmartPi kernel: [226401.480595] Killed process 572 (olad) total-vm:656784kB, anon-rss:579820kB, file-rss:0kB