[vz-users] vzlogger stürzt immer ab

Matthias Behr mbehr at mcbehr.de
Tue Mar 10 21:50:28 CET 2015


CurlSessionHandling scheint gar nicht aktiv zu sein.
(Ich habe die Version per Git sha auf die Schnelle auch gar nicht gefunden.)

Interessant ist, dass der Chn4 Probleme zu haben scheint:
> [Mar 07 11:28:57][chn4] Buffer dump (size=10 keep=32): {0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,}

Einzige vorherige Ausgabe ist, die gleiche mit Buffer dump size=9.
Dazwischen sind einige Curl Sessions von chn3 und chn5, d.h. das CurlSessionHandling würde funktionieren.

Kannst du mal schauen, ob das bei anderen Crashes ähnlich ist? (immer ein channel, der sich füllt und die Daten nicht an die Middleware senden kann?)


> Am 10.03.2015 um 21:38 schrieb Matthias Behr <mbehr at mcbehr.de>:
> 
>> 
>> Am 10.03.2015 um 21:13 schrieb Andreas Götz <cpuidle at gmail.com <mailto:cpuidle at gmail.com>>:
>> 
>> Könnten wir testweise auf den commit vor dem join der curl sessions gehen um zu schauen ob das die Ursache ist?
>> 
> 
> Ist ein Versuch wert. Kannst du einfach testen:
> In der Config bei middleware jeweils andere Strings nutzen („http://localhost“ <http://localhost%e2%80%9c/>, „Http://…“ <http://xn--...-5o0a/>, „HTtp://…“ <http://xn--...-5o0a/>,…) dann werden wie früher 6 parallel Curl Sessions genutzt.
> 
> Wenn der Fehler weiterhin auftritt, könntest du auf alten Stand zurückgehen.
> 
> Nach deiner Config hast du 6 Channels. D.h. der problematische Thread ist tatsächlich ein Logging Thread. Könnte auch gut Problem innerhalb libcurl sein (ggf. auch timing durch CurlSessionHandler,… verursacht).
> 
> Kannst du auch mal ein valgrind machen? (von ca. 1 Min. sollte massig reichen. Braucht kein Crash dabei zu sein.)
> 
> 
>> Viele Grüße, Andreas
>> 
>> 
>> 
>> 
>>> Am 10.03.2015 um 20:17 schrieb Matthias Behr <mbehr at mcbehr.de <mailto:mbehr at mcbehr.de>>:
>>> 
>>> Hallo,
>>> 
>>> Danke!
>>> 
>>> Komisch, irgendjemand schickt ein SIGABRT.
>>> 
>>> Entweder intern (z.B: indirekt durch malloc/free (gerade weil du da eine andere Lib nutzt) oder von außen.
>>> 
>>> Wir müssen rausbekommen, welcher Thread das ist. Die meisten Threads warten wie geplant:
>>> 
>>> #8 pthread_join ist in main() Thread
>>> #2, #3, #4, #7, #9 pthread_cond_wait -> logging_thread
>>> #6 poll ? -> reading_thread: MeterSO?
>>> #5 nanosleep -> reading_thread?
>>> 
>>> #1 ??? der macht Probleme. 
>>> 
>>> Wir müssen herausbekommen, was Thread #1 eigentlich macht. Könnte auch aus einer Lib sein (z.B. libcurl,…)
>>> 
>>> Schickst du noch mal deine komplette Config? (5 Channel?)
>>> 
>>> 
>>> 
>>>> Am 10.03.2015 um 06:07 schrieb oderwas at gmx.net <mailto:oderwas at gmx.net>:
>>>> 
>>>> Hallo Matthias,
>>>> 
>>>> ich fand den bt wenig aussagekräftig, daher habe ich es noch detaillierter aufgerufen:
>>>> 
>>>> # gdb /usr/local/bin/vzlogger core.vzlogger.26305.stromzaehler.1425931568 
>>>> GNU gdb (GDB) 7.4.1-debian
>>>> Copyright (C) 2012 Free Software Foundation, Inc.
>>>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html <http://gnu.org/licenses/gpl.html>>
>>>> This is free software: you are free to change and redistribute it.
>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
>>>> and "show warranty" for details.
>>>> This GDB was configured as "arm-linux-gnueabihf".
>>>> For bug reporting instructions, please see:
>>>> <http://www.gnu.org/software/gdb/bugs/ <http://www.gnu.org/software/gdb/bugs/>>...
>>>> Reading symbols from /usr/local/bin/vzlogger...done.[New LWP 26310]
>>>> [New LWP 26311]
>>>> [New LWP 26313]
>>>> [New LWP 26307]
>>>> [New LWP 26306]
>>>> [New LWP 26309]
>>>> [New LWP 26308]
>>>> [New LWP 26305]
>>>> [New LWP 26312]
>>>> [Thread debugging using libthread_db enabled]
>>>> Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
>>>> Core was generated by `vzlogger'.
>>>> Program terminated with signal 6, Aborted.
>>>> #0  0xb699ef50 in raise ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> (gdb) thread apply all bt full
>>>> 
>>>> Thread 9 (Thread 0xb2fff400 (LWP 26312)):
>>>> #0  0xb6ede7a4 in pthread_cond_wait@@GLIBC_2.4 ()
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> #1  0x00060c54 in Buffer::wait(pthread_cond_t*) ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/include/Buffer.hpp:68
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #2  0x00060d38 in Channel::wait() ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/include/Channel.hpp:86
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #3  0x00064d84 in logging_thread(void*) ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/src/threads.cpp:209
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #4  0xb6ed9e90 in start_thread ()
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> ---Type <return> to continue, or q <return> to quit---
>>>> #5  0xb6a3f4e8 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> #6  0xb6a3f4e8 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
>>>> 
>>>> Thread 8 (Thread 0xb63da340 (LWP 26305)):
>>>> #0  0xb6edb274 in pthread_join ()
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> #1  0x000616fc in MeterMap::stopped() ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/src/MeterMap.cpp:90
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #2  0x00045ec8 in main ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/src/vzlogger.cpp:446
>>>>      long_options = {{name = 0x109304 "config", 
>>>>          has_arg = 1, flag = 0x0, val = 99}, {
>>>>          name = 0x10930c "log", has_arg = 1, 
>>>>          flag = 0x0, val = 111}, {
>>>>          name = 0x109310 "daemon", has_arg = 1, 
>>>>          flag = 0x0, val = 100}, {
>>>> ---Type <return> to continue, or q <return> to quit---
>>>>          name = 0x109318 "httpd", has_arg = 0, 
>>>>          flag = 0x0, val = 108}, {
>>>>          name = 0x109320 "httpd-port", 
>>>>          has_arg = 1, flag = 0x0, val = 112}, {
>>>>          name = 0x10932c "register", 
>>>>          has_arg = 0, flag = 0x0, val = 114}, {
>>>>          name = 0x109338 "verbose", 
>>>>          has_arg = 1, flag = 0x0, val = 118}, {
>>>>          name = 0x109340 "help", has_arg = 0, 
>>>>          flag = 0x0, val = 104}, {
>>>>          name = 0x109348 "version", 
>>>>          has_arg = 0, flag = 0x0, val = 86}, {
>>>>          name = 0x0, has_arg = 0, flag = 0x0, 
>>>>          val = 0}}
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>>      options = {_config = "/etc/vzlogger.conf", 
>>>>        _log = "/var/log/vzlogger.log", 
>>>>        _logfd = 0xc5d498, _port = 8080, 
>>>>        _verbosity = 15, _comet_timeout = 30, 
>>>>        _buffer_length = 600, _retry_pause = 30, 
>>>>        _channel_index = -1, _daemon = -1, 
>>>>        _local = 0, _logging = -1, 
>>>>        _doRegistration = 0}
>>>>      gSkippedFailed = 0
>>>>      long_options_descs = {
>>>>        0x108e60 "configuration file", 
>>>> ---Type <return> to continue, or q <return> to quit---
>>>>        0x108e74 "log file", 
>>>>        0x108e80 "run in background", 
>>>>        0x108e94 "activate local interface (tiny HTTPd which serves live readings)", 
>>>>        0x108ed8 "TCP port for HTTPd", 
>>>>        0x108eec "register device", 
>>>>        0x108efc "enable verbose output", 
>>>>        0x108f14 "show this help", 
>>>>        0x108f24 "show version of vzlogger", 0x0}
>>>>      gStop = false
>>>>      mappings = {
>>>>        _mappings = std::vector of length 2, capacity 2 = {{_meter = 
>>>>  std::tr1::shared_ptr (count 2, weak 0) 0xc5a370, 
>>>>            _channels = std::vector of length 3, capacity 3 = {
>>>> 
>>>>  std::tr1::shared_ptr (count 1, weak 0) 0xc5c268, std::tr1::shared_ptr (count 1, weak 0) 0xc5c348, 
>>>>              std::tr1::shared_ptr (count 1, weak 0) 0xc5c608}, _thread_running = true, 
>>>>            _thread = 3057484800}, {
>>>>            _meter = std::tr1::shared_ptr (count 2, weak 0) 0xc5cc50, 
>>>>            _channels = std::vector of length 3, capacity 3 = {
>>>>              std::tr1::shared_ptr (count 1, weak 0) 0xc5cd38, 
>>>>              std::tr1::shared_ptr (count 1, weak 0) 0xc5c---Type <return> to continue, or q <return> -- quit--
>>>> fa0, 
>>>>              std::tr1::shared_ptr (count 1, weak 0) 0xc5d138}, _thread_running = true, _thread = 3019895808}}}
>>>> 
>>>> Thread 7 (Thread 0xb53d8400 (LWP 26308)):
>>>> #0  0xb6ede7a4 in pthread_cond_wait@@GLIBC_2.4 ()
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> #1  0x00060c54 in Buffer::wait(pthread_cond_t*) ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/include/Buffer.hpp:68
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #2  0x00060d38 in Channel::wait() ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/include/Channel.hpp:86
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #3  0x00064d84 in logging_thread(void*) ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/src/threads.cpp:209
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> ---Type <return> to continue, or q <return> to quit---
>>>> #4  0xb6ed9e90 in start_thread ()
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> #5  0xb6a3f4e8 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> #6  0xb6a3f4e8 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
>>>> 
>>>> Thread 6 (Thread 0xb49ff400 (LWP 26309)):
>>>> #0  0xb6a35af0 in poll ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> #1  0xb6a4ccf4 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> #2  0x00000000 in ?? ()
>>>> No symbol table info available.
>>>> 
>>>> Thread 5 (Thread 0xb63d8400 (LWP 26306)):
>>>> #0  0xb6a0d200 in nanosleep ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> #1  0xb6a4ccf4 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> ---Type <return> to continue, or q <return> to quit---
>>>> #2  0x00000000 in ?? ()
>>>> No symbol table info available.
>>>> 
>>>> Thread 4 (Thread 0xb5bd8400 (LWP 26307)):
>>>> #0  0xb6ede7a4 in pthread_cond_wait@@GLIBC_2.4 ()
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> #1  0x00060c54 in Buffer::wait(pthread_cond_t*) ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/include/Buffer.hpp:68
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #2  0x00060d38 in Channel::wait() ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/include/Channel.hpp:86
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #3  0x00064d84 in logging_thread(void*) ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/src/threads.cpp:209
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #4  0xb6ed9e90 in start_thread ()
>>>> ---Type <return> to continue, or q <return> to quit---
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> #5  0xb6a3f4e8 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> #6  0xb6a3f4e8 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
>>>> 
>>>> Thread 3 (Thread 0xb27ff400 (LWP 26313)):
>>>> #0  0xb6ede7a4 in pthread_cond_wait@@GLIBC_2.4 ()
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> #1  0x00060c54 in Buffer::wait(pthread_cond_t*) ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/include/Buffer.hpp:68
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #2  0x00060d38 in Channel::wait() ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/include/Channel.hpp:86
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> ---Type <return> to continue, or q <return> to quit---
>>>> #3  0x00064d84 in logging_thread(void*) ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/src/threads.cpp:209
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #4  0xb6ed9e90 in start_thread ()
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> #5  0xb6a3f4e8 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> #6  0xb6a3f4e8 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
>>>> 
>>>> Thread 2 (Thread 0xb37ff400 (LWP 26311)):
>>>> #0  0xb6ede7a4 in pthread_cond_wait@@GLIBC_2.4 ()
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> #1  0x00060c54 in Buffer::wait(pthread_cond_t*) ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/include/Buffer.hpp:68
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized o---Type <return> to continue, or q <return> to quit---
>>>> ut>}
>>>> #2  0x00060d38 in Channel::wait() ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/include/Channel.hpp:86
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #3  0x00064d84 in logging_thread(void*) ()
>>>>  at /home/pi/vzlogger_mb/vzlogger/src/threads.cpp:209
>>>>      std::__ioinit = {
>>>>        static _S_refcount = <optimized out>, 
>>>>        static _S_synced_with_stdio = <optimized out>}
>>>> #4  0xb6ed9e90 in start_thread ()
>>>> from /lib/arm-linux-gnueabihf/libpthread.so.0
>>>> No symbol table info available.
>>>> #5  0xb6a3f4e8 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> #6  0xb6a3f4e8 in ?? ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
>>>> 
>>>> Thread 1 (Thread 0xb3fff400 (LWP 26310)):
>>>> #0  0xb699ef50 in raise ()
>>>> ---Type <return> to continue, or q <return> to quit---
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> #1  0xb69a0304 in abort ()
>>>> from /lib/arm-linux-gnueabihf/libc.so.6
>>>> No symbol table info available.
>>>> #2  0x00000020 in ?? ()
>>>> No symbol table info available.
>>>> #3  0x00000020 in ?? ()
>>>> No symbol table info available.
>>>> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
>>>> 
>>>> 
>>>> Beste Grüße 
>>>> 
>>>> Markus
>>> 
>>> Gruß
>>> 
>>> Matthias Behr
>>> 
> 
> Gruß
> 
> Matthias Behr

Gruß

Matthias Behr

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20150310/e95558ab/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5256 bytes
Desc: not available
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20150310/e95558ab/attachment-0001.bin>


More information about the volkszaehler-users mailing list