Closed anphsw closed 7 years ago
Hello
Seems that some piece of code have overwritten the actual_eit->next pointer, probably the code writing the sections. Then when this code goes through the list it fails
Can you run the code under valgrind in full verbose, I have an idea of where this could be coming from but valgrind will definitely help
Brice
2017-03-10 23:10 GMT-05:00 anphsw notifications@github.com:
I've got rare situation when mumudvb crashes at eit_find_by_tsid(). Here is backtrace:
Using host libthread_db library "/usr/lib/libthread_db.so.1". Core was generated by `/tmp/mumudvb -c /etc/dvb/mumudvb5.conf'. Program terminated with signal SIGSEGV, Segmentation fault.
0 0xb76c3c27 in eit_find_by_tsid (rewrite_vars=0xbfb85638,
service_id=2080, table_id=80 'P') at rewrite_eit.c:171 171 if((actual_eit->service_id==service_id)&&(actual_eit-> table_id==table_id)) [Current thread is 1 (Thread 0xb7424700 (LWP 15088))] (gdb) bt
0 0xb76c3c27 in eit_find_by_tsid (rewrite_vars=0xbfb85638,
service_id=2080, table_id=80 'P') at rewrite_eit.c:171
1 https://github.com/braice/MuMuDVB/pull/1 0xb76c3d48 in
eit_need_update (rewrite_vars=0xbfb85638, buf=0xb772ca88 "G@\022\036", raw=1) at rewrite_eit.c:217
2 https://github.com/braice/MuMuDVB/pull/2 0xb76c3ef8 in
eit_rewrite_new_global_packet (ts_packet=0xb772ca88 "G@\022\036", rewrite_vars=0xbfb85638) at rewrite_eit.c:254
3 https://github.com/braice/MuMuDVB/pull/3 0xb76bd2cb in main (argc=3,
argv=0xbfc529d4) at mumudvb.c:1658 (gdb) frame 0
0 0xb76c3c27 in eit_find_by_tsid (rewrite_vars=0xbfb85638,
service_id=2080, table_id=80 'P') at rewrite_eit.c:171 171 if((actual_eit->service_id==service_id)&&(actual_eit-> table_id==table_id)) (gdb) print actual_eit->service_id Cannot access memory at address 0xffffff23 (gdb) print actual_eit->table_id Cannot access memory at address 0xffffff27 (gdb) print actual_eit $9 = (eit_packet_t ) 0xffffff23 (gdb) print rewrite_vars->eit_packets $10 = (eit_packet_t ) 0xb772dda8
I will try to investigate and fix it I can upload core file and debugged binary, if anyone interested.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/braice/MuMuDVB/issues/164, or mute the thread https://github.com/notifications/unsubscribe-auth/AAUUD3U8hyx7t5lJjcDZkMrIEQwHk9sWks5rkh6egaJpZM4MaFu_ .
Here some warning found by valgrind: (line numbers may be different, according to my mumudvb fork https://github.com/anphsw/MuMuDVB/commits/patches, but it's not a problem)
==17028== ==17028== HEAP SUMMARY: ==17028== in use at exit: 5,669,422 bytes in 366 blocks ==17028== total heap usage: 5,509 allocs, 5,143 frees, 6,552,544 bytes allocated ==17028== ==17028== Searching for pointers to 366 not-freed blocks ==17028== Checked 461,272 bytes ==17028== ==17028== LEAK SUMMARY: ==17028== definitely lost: 48,658 bytes in 7 blocks ==17028== indirectly lost: 5,406,264 bytes in 346 blocks ==17028== possibly lost: 214,500 bytes in 13 blocks ==17028== still reachable: 0 bytes in 0 blocks ==17028== suppressed: 0 bytes in 0 blocks ==17028== Rerun with --leak-check=full to see details of leaked memory ==17028== ==17028== Use --track-origins=yes to see where uninitialised values come from ==17028== ERROR SUMMARY: 37 errors from 1 contexts (suppressed: 0 from 0) ==17028== ==17028== 37 errors in context 1 of 1: ==17028== Syscall param ioctl(generic) points to uninitialised byte(s) ==17028== at 0x49E0BE9: ioctl (syscall-template.S:84) ==17028== by 0x10F35C: set_ts_filt (dvb.c:98) ==17028== by 0x10FAE6: set_filters (dvb.c:280) ==17028== by 0x1345EC: update_chan_filters (mumudvb_channels.c:521) ==17028== by 0x11346D: main (mumudvb.c:1289) ==17028== Address 0xbed6e4ca is on thread 1's stack ==17028== in frame #1, created by set_ts_filt (dvb.c:88) ==17028== ==17028== ERROR SUMMARY: 37 errors from 1 contexts (suppressed: 0 from 0)
with track-origins=yes: ==17208== 37 errors in context 1 of 1: ==17208== Syscall param ioctl(generic) points to uninitialised byte(s) ==17208== at 0x49E0BE9: ioctl (syscall-template.S:84) ==17208== by 0x10F35C: set_ts_filt (dvb.c:98) ==17208== by 0x10FAE6: set_filters (dvb.c:280) ==17208== by 0x1345EC: update_chan_filters (mumudvb_channels.c:521) ==17208== by 0x11346D: main (mumudvb.c:1289) ==17208== Address 0xbed8c4ca is on thread 1's stack ==17208== in frame #1, created by set_ts_filt (dvb.c:88) ==17208== Uninitialised value was created by a stack allocation ==17208== at 0x10F2D3: set_ts_filt (dvb.c:88) ==17208==
with leak-check=full: ==17351== Checked 444,772 bytes ==17351== ==17351== 14 bytes in 1 blocks are definitely lost in loss record 1 of 10 ==17351== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==17351== by 0x482C9D8: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==17351== by 0x116EAB: mumu_string_append (mumudvb_common.c:241) ==17351== by 0x13571B: init_cam_v (cam.c:154) ==17351== by 0x110F8E: main (mumudvb.c:374) ==17351== ==17351== 24 bytes in 1 blocks are definitely lost in loss record 2 of 10 ==17351== at 0x482C931: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==17351== by 0x125FD9: unicast_handle_fd_event (unicast_http.c:376) ==17351== by 0x113BD9: main (mumudvb.c:1488) ==17351== ==17351== 16,500 bytes in 1 blocks are definitely lost in loss record 3 of 10 ==17351== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==17351== by 0x10B4EC: autoconf_init (autoconf.c:300) ==17351== by 0x113266: main (mumudvb.c:1212) ==17351== ==17351== 21,012 (4,512 direct, 16,500 indirect) bytes in 1 blocks are definitely lost in loss record 4 of 10 ==17351== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==17351== by 0x113892: main (mumudvb.c:1387) ==17351== ==17351== 25,524 (9,024 direct, 16,500 indirect) bytes in 1 blocks are definitely lost in loss record 5 of 10 ==17351== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==17351== by 0x1138BA: main (mumudvb.c:1389) ==17351== ==17351== 49,500 (16,500 direct, 33,000 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 10 ==17351== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==17351== by 0x119E3F: rewrite_init (rewrite.c:119) ==17351== by 0x1132C8: main (mumudvb.c:1230) ==17351== ==17351== 198,000 bytes in 12 blocks are possibly lost in loss record 8 of 10 ==17351== at 0x482C712: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==17351== by 0x11BD48: eit_rewrite_new_global_packet (rewrite_eit.c:297) ==17351== by 0x11431D: main (mumudvb.c:1671) ==17351== ==17351== 5,358,848 (2,084 direct, 5,356,764 indirect) bytes in 1 blocks are definitely lost in loss record 9 of 10 ==17351== at 0x482C712: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==17351== by 0x11B7B9: eit_new_packet (rewrite_eit.c:142) ==17351== by 0x11BC30: eit_rewrite_new_global_packet (rewrite_eit.c:275) ==17351== by 0x11431D: main (mumudvb.c:1671) ==17351== ==17351== LEAK SUMMARY: ==17351== definitely lost: 48,658 bytes in 7 blocks ==17351== indirectly lost: 5,422,764 bytes in 347 blocks ==17351== possibly lost: 198,000 bytes in 12 blocks ==17351== still reachable: 0 bytes in 0 blocks ==17351== suppressed: 0 bytes in 0 blocks ==17351== ==17351== Use --track-origins=yes to see where uninitialised values come from ==17351== ERROR SUMMARY: 45 errors from 9 contexts (suppressed: 0 from 0) ==17351== ==17351== 37 errors in context 1 of 9: ==17351== Syscall param ioctl(generic) points to uninitialised byte(s) ==17351== at 0x49E0BE9: ioctl (syscall-template.S:84) ==17351== by 0x10F35C: set_ts_filt (dvb.c:98) ==17351== by 0x10FAE6: set_filters (dvb.c:280) ==17351== by 0x1345EC: update_chan_filters (mumudvb_channels.c:521) ==17351== by 0x11346D: main (mumudvb.c:1289) ==17351== Address 0xbe91d4ca is on thread 1's stack ==17351== in frame #1, created by set_ts_filt (dvb.c:88) ==17351== ==17351== ERROR SUMMARY: 45 errors from 9 contexts (suppressed: 0 from 0)
I can run valgrind with another flags if you wish.
Hello
Does valgrind finds error during execution ?
If not can you let it run for a relatively long period of time
Thanks
Brice
2017-03-21 6:24 GMT-04:00 anphsw notifications@github.com:
Here some warning found by valgrind: (line numbers may be different, according to my mumudvb fork https://github.com/anphsw/ MuMuDVB/commits/patches, but it's not a problem)
==17028== ==17028== HEAP SUMMARY: ==17028== in use at exit: 5,669,422 bytes in 366 blocks ==17028== total heap usage: 5,509 allocs, 5,143 frees, 6,552,544 bytes allocated ==17028== ==17028== Searching for pointers to 366 not-freed blocks ==17028== Checked 461,272 bytes ==17028== ==17028== LEAK SUMMARY: ==17028== definitely lost: 48,658 bytes in 7 blocks ==17028== indirectly lost: 5,406,264 bytes in 346 blocks ==17028== possibly lost: 214,500 bytes in 13 blocks ==17028== still reachable: 0 bytes in 0 blocks ==17028== suppressed: 0 bytes in 0 blocks ==17028== Rerun with --leak-check=full to see details of leaked memory ==17028== ==17028== Use --track-origins=yes to see where uninitialised values come from ==17028== ERROR SUMMARY: 37 errors from 1 contexts (suppressed: 0 from 0) ==17028== ==17028== 37 errors in context 1 of 1: ==17028== Syscall param ioctl(generic) points to uninitialised byte(s) ==17028== at 0x49E0BE9: ioctl (syscall-template.S:84) ==17028== by 0x10F35C: set_ts_filt (dvb.c:98) ==17028== by 0x10FAE6: set_filters (dvb.c:280) ==17028== by 0x1345EC: update_chan_filters (mumudvb_channels.c:521) ==17028== by 0x11346D: main (mumudvb.c:1289) ==17028== Address 0xbed6e4ca is on thread 1's stack ==17028== in frame #1 https://github.com/braice/MuMuDVB/pull/1, created by set_ts_filt (dvb.c:88) ==17028== ==17028== ERROR SUMMARY: 37 errors from 1 contexts (suppressed: 0 from 0)
with track-origins=yes: ==17208== 37 errors in context 1 of 1: ==17208== Syscall param ioctl(generic) points to uninitialised byte(s) ==17208== at 0x49E0BE9: ioctl (syscall-template.S:84) ==17208== by 0x10F35C: set_ts_filt (dvb.c:98) ==17208== by 0x10FAE6: set_filters (dvb.c:280) ==17208== by 0x1345EC: update_chan_filters (mumudvb_channels.c:521) ==17208== by 0x11346D: main (mumudvb.c:1289) ==17208== Address 0xbed8c4ca is on thread 1's stack ==17208== in frame #1 https://github.com/braice/MuMuDVB/pull/1, created by set_ts_filt (dvb.c:88) ==17208== Uninitialised value was created by a stack allocation ==17208== at 0x10F2D3: set_ts_filt (dvb.c:88) ==17208==
with leak-check=full: ==17351== Checked 444,772 bytes ==17351== ==17351== 14 bytes in 1 blocks are definitely lost in loss record 1 of 10 ==17351== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload memcheck-x86-linux.so) ==17351== by 0x482C9D8: realloc (in /usr/lib/valgrind/vgpreload memcheck-x86-linux.so) ==17351== by 0x116EAB: mumu_string_append (mumudvb_common.c:241) ==17351== by 0x13571B: init_camv (cam.c:154) ==17351== by 0x110F8E: main (mumudvb.c:374) ==17351== ==17351== 24 bytes in 1 blocks are definitely lost in loss record 2 of 10 ==17351== at 0x482C931: realloc (in /usr/lib/valgrind/vgpreload memcheck-x86-linux.so) ==17351== by 0x125FD9: unicast_handle_fd_event (unicasthttp.c:376) ==17351== by 0x113BD9: main (mumudvb.c:1488) ==17351== ==17351== 16,500 bytes in 1 blocks are definitely lost in loss record 3 of 10 ==17351== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload memcheck-x86-linux.so) ==17351== by 0x10B4EC: autoconfinit (autoconf.c:300) ==17351== by 0x113266: main (mumudvb.c:1212) ==17351== ==17351== 21,012 (4,512 direct, 16,500 indirect) bytes in 1 blocks are definitely lost in loss record 4 of 10 ==17351== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload memcheck-x86-linux.so) ==17351== by 0x113892: main (mumudvb.c:1387) ==17351== ==17351== 25,524 (9,024 direct, 16,500 indirect) bytes in 1 blocks are definitely lost in loss record 5 of 10 ==17351== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload memcheck-x86-linux.so) ==17351== by 0x1138BA: main (mumudvb.c:1389) ==17351== ==17351== 49,500 (16,500 direct, 33,000 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 10 ==17351== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload memcheck-x86-linux.so) ==17351== by 0x119E3F: rewriteinit (rewrite.c:119) ==17351== by 0x1132C8: main (mumudvb.c:1230) ==17351== ==17351== 198,000 bytes in 12 blocks are possibly lost in loss record 8 of 10 ==17351== at 0x482C712: calloc (in /usr/lib/valgrind/vgpreload memcheck-x86-linux.so) ==17351== by 0x11BD48: eit_rewrite_new_global_packet (rewriteeit.c:297) ==17351== by 0x11431D: main (mumudvb.c:1671) ==17351== ==17351== 5,358,848 (2,084 direct, 5,356,764 indirect) bytes in 1 blocks are definitely lost in loss record 9 of 10 ==17351== at 0x482C712: calloc (in /usr/lib/valgrind/vgpreload memcheck-x86-linux.so) ==17351== by 0x11B7B9: eit_new_packet (rewrite_eit.c:142) ==17351== by 0x11BC30: eit_rewrite_new_global_packet (rewrite_eit.c:275) ==17351== by 0x11431D: main (mumudvb.c:1671) ==17351== ==17351== LEAK SUMMARY: ==17351== definitely lost: 48,658 bytes in 7 blocks ==17351== indirectly lost: 5,422,764 bytes in 347 blocks ==17351== possibly lost: 198,000 bytes in 12 blocks ==17351== still reachable: 0 bytes in 0 blocks ==17351== suppressed: 0 bytes in 0 blocks ==17351== ==17351== Use --track-origins=yes to see where uninitialised values come from ==17351== ERROR SUMMARY: 45 errors from 9 contexts (suppressed: 0 from 0) ==17351== ==17351== 37 errors in context 1 of 9: ==17351== Syscall param ioctl(generic) points to uninitialised byte(s) ==17351== at 0x49E0BE9: ioctl (syscall-template.S:84) ==17351== by 0x10F35C: set_ts_filt (dvb.c:98) ==17351== by 0x10FAE6: set_filters (dvb.c:280) ==17351== by 0x1345EC: update_chan_filters (mumudvb_channels.c:521) ==17351== by 0x11346D: main (mumudvb.c:1289) ==17351== Address 0xbe91d4ca is on thread 1's stack ==17351== in frame #1 https://github.com/braice/MuMuDVB/pull/1, created by set_ts_filt (dvb.c:88) ==17351== ==17351== ERROR SUMMARY: 45 errors from 9 contexts (suppressed: 0 from 0)
I can run valgrind with another flags if you wish.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/braice/MuMuDVB/issues/164#issuecomment-288035684, or mute the thread https://github.com/notifications/unsubscribe-auth/AAUUD-0yhIgBu2Hz-Eh0A5lxHYr2Hyeuks5rn6V5gaJpZM4MaFu_ .
Only warnings at runtime, but not releated to this problem: Info: Main: Streaming. Freq 11265000 Info: Tune: Using DVB card "TurboSight TBS 6902 DVBS/S2 frontend" tuner 0 Info: Tune: Tuning DVB-S to Freq: 1515000 kHz, LO frequency 9750000 kHz Pol:H Srate=30000000, LNB number: 0 Info: Tune: LNB voltage 18V ==23391== Warning: noted but unhandled ioctl 0x6f43 with no size/direction hints. ==23391== This could cause spurious value errors to appear. ==23391== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==23391== Warning: noted but unhandled ioctl 0x6f42 with no size/direction hints. ==23391== This could cause spurious value errors to appear. ==23391== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
I'll try to run for a longer amount of time. Last segfault happened after 2 days of running.
And more: under valgrind debugging mumudvb produces a lot of "DVB: Error : DVR buffer overrun" and produces trashed output. Is there any option I must use for such debugging?
@anphsw maybe it can help to increase dvr_buffer_size
value in configuration (default is 20) to fix DVR buffer overrun issues ?
I tried values up to 1000, so I think it's valgrind-releated problem.
You can go quite crazy with this number
This is probably due to the fact that valgrind is slowing down MuMuDVB and mumu cannot catch up.
What options do you use for valgrind ?
Thank you
Brice
2017-03-22 13:05 GMT-04:00 anphsw notifications@github.com:
I tried values up to 1000, so I think it's valgrind-releated problem.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/braice/MuMuDVB/issues/164#issuecomment-288469018, or mute the thread https://github.com/notifications/unsubscribe-auth/AAUUD-WFYA9fgsoXnbDHoDzUnEQvuKVZks5roVTsgaJpZM4MaFu_ .
option are simple: -v, -v -v, -v --leak-check=full, -v --track-origins=yes Any combination (and even without any options) leads to dvr buffer overruns.
Hi
This is strange as I didn't got this in my tests
Can you try to set dvr_thread to 1 ?
Brice
2017-03-25 23:20 GMT-04:00 anphsw notifications@github.com:
option are simple: -v, -v -v, -v --leak-check=full, -v --track-origins=yes Any combination (and even without any options) leads to dvr buffer overruns.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/braice/MuMuDVB/issues/164#issuecomment-289255422, or mute the thread https://github.com/notifications/unsubscribe-auth/AAUUDw4izYl3f4PyHK0Imh7xkYm0zpYZks5rpdlmgaJpZM4MaFu_ .
Still buffer overruns, same as without dvr_thread.
I fixed some memory leaks in my fork, but there are more:
==2348==
==2348== HEAP SUMMARY:
==2348== in use at exit: 5,882,890 bytes in 383 blocks
==2348== total heap usage: 8,752 allocs, 8,369 frees, 8,360,882 bytes allocated
==2348==
==2348== Searching for pointers to 383 not-freed blocks
==2348== Checked 428,288 bytes
==2348==
==2348== 14 bytes in 1 blocks are definitely lost in loss record 1 of 6
==2348== at 0x482A569: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==2348== by 0x482C9D8: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==2348== by 0x116A42: mumu_string_append (mumudvb_common.c:244)
==2348== by 0x135771: init_cam_v (cam.c:154)
==2348== by 0x1109E3: main (mumudvb.c:226)
==2348==
==2348== 24 bytes in 1 blocks are definitely lost in loss record 2 of 6
==2348== at 0x482C931: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==2348== by 0x1268F8: unicast_close_connection (unicast_http.c:547)
==2348== by 0x126362: unicast_handle_fd_event (unicast_http.c:423)
==2348== by 0x11367F: main (mumudvb.c:1348)
==2348==
==2348== 181,500 bytes in 11 blocks are possibly lost in loss record 4 of 6
==2348== at 0x482C712: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==2348== by 0x11B8DF: eit_rewrite_new_global_packet (rewrite_eit.c:297)
==2348== by 0x113DC2: main (mumudvb.c:1531)
==2348==
==2348== 5,701,352 (2,084 direct, 5,699,268 indirect) bytes in 1 blocks are definitely lost in loss record 6 of 6
==2348== at 0x482C712: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==2348== by 0x11B350: eit_new_packet (rewrite_eit.c:142)
==2348== by 0x11B7C7: eit_rewrite_new_global_packet (rewrite_eit.c:275)
==2348== by 0x113DC2: main (mumudvb.c:1531)
==2348==
==2348== LEAK SUMMARY:
==2348== definitely lost: 2,122 bytes in 3 blocks
==2348== indirectly lost: 5,699,268 bytes in 369 blocks
==2348== possibly lost: 181,500 bytes in 11 blocks
==2348== still reachable: 0 bytes in 0 blocks
==2348== suppressed: 0 bytes in 0 blocks
==2348==
==2348== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
==2348== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
And invalid reads (excluded duplicates): ==4051== Invalid read of size 4 ==4051== at 0x490B40F: find_derivation (gconv_db.c:632) ==4051== by 0x490BD2A: __gconv_find_transform (gconv_db.c:764) ==4051== by 0x490A717: __gconv_open (gconv_open.c:110) ==4051== by 0x490A1A6: iconv_open (iconv_open.c:71) ==4051== by 0x10E8F8: convert_en300468_string (log.c:1153) ==4051== by 0x11F9F2: ts_display_network_name_descriptor (ts.c:762) ==4051== by 0x11F8CD: ts_display_nit_network_descriptors (ts.c:726) ==4051== by 0x12EBCC: autoconf_read_nit (autoconf_nit.c:142) ==4051== by 0x10C4E4: autoconf_new_packet (autoconf.c:619) ==4051== by 0x113C93: main (mumudvb.c:1490) ==4051== Address 0x4a92258 expected vs actual: ==4051== Expected: unknown ==4051== Actual: global array "builtin_modules" of size 384 in object with soname "libc.so.6"
==4051== Invalid read of size 4 ==4051== at 0x490C350: detect_conflict (gconv_conf.c:109) ==4051== by 0x490CAAC: gconv_read_conf (gconv_conf.c:129) ==4051== by 0x48DA5BF: pthread_once_slow (in /usr/lib/libpthread-2.22.so) ==4051== by 0x490BD92: gconv_find_transform (gconv_db.c:725) ==4051== by 0x490A717: gconv_open (gconv_open.c:110) ==4051== by 0x490A1A6: iconv_open (iconv_open.c:71) ==4051== by 0x10E8F8: convert_en300468_string (log.c:1153) ==4051== by 0x11F9F2: ts_display_network_name_descriptor (ts.c:762) ==4051== by 0x11F8CD: ts_display_nit_network_descriptors (ts.c:726) ==4051== by 0x12EBCC: autoconf_read_nit (autoconf_nit.c:142) ==4051== by 0x10C4E4: autoconf_new_packet (autoconf.c:619) ==4051== by 0x113C93: main (mumudvb.c:1490) ==4051== Address 0x4a922a0 expected vs actual: ==4051== Expected: unknown ==4051== Actual: global array "builtin_modules" of size 384 in object with soname "libc.so.6"
==4051== Invalid read of size 1 ==4051== at 0x4936FE3: vfprintf (vfprintf.c:1631) ==4051== by 0x495CCEC: vsnprintf (vsnprintf.c:119) ==4051== by 0x116AC2: mumu_string_append (mumudvb_common.c:251) ==4051== by 0x10D8B0: log_streamed_channels (log.c:443) ==4051== by 0x10C840: autoconf_new_packet (autoconf.c:676) ==4051== by 0x113C93: main (mumudvb.c:1490) ==4051== Address 0xbeaed4a7 expected vs actual: ==4051== Expected: unknown ==4051== Actual: stack array "lang" of size 5 in frame 3 back from here
I noticed that eit rewrite code using only 256 sections for storing values. Is that enough for any purposes?
hit this bug with valgrind:
WARN: DVB: Error : DVR buffer overrun WARN: DVB: Error : DVR buffer overrun WARN: DVB: Error : DVR buffer overrun WARN: DVB: Error : DVR buffer overrun WARN: DVB: Error : DVR buffer overrun WARN: DVB: Error : DVR buffer overrun WARN: DVB: Error : DVR buffer overrun ==4771== Invalid read of size 4 ==4771== at 0x11B521: eit_find_by_tsid (rewrite_eit.c:171) ==4771== by 0x11B641: eit_need_update (rewrite_eit.c:217) ==4771== by 0x11B7F1: eit_rewrite_new_global_packet (rewrite_eit.c:254) ==4771== by 0x113D96: main (mumudvb.c:1531) ==4771== Address 0xffffffff is not stack'd, malloc'd or (recently) free'd ==4771== ==4771== ==4771== Process terminating with default action of signal 11 (SIGSEGV) ==4771== Access not within mapped region at address 0xFFFFFFFF ==4771== at 0x11B521: eit_find_by_tsid (rewrite_eit.c:171) ==4771== by 0x11B641: eit_need_update (rewrite_eit.c:217) ==4771== by 0x11B7F1: eit_rewrite_new_global_packet (rewrite_eit.c:254) ==4771== by 0x113D96: main (mumudvb.c:1531) ==4771== If you believe this happened as a result of a stack ==4771== overflow in your program's main thread (unlikely but ==4771== possible), you can try to increase the size of the ==4771== main thread stack using the --main-stacksize= flag. ==4771== The main thread stack size used in this run was 8388608.
Still no new info here. I think that overruns here is actual overruns due to damaged packets, not valgrind-releated.
Yes, the limit is from the dvb norm
2017-04-19 11:55 GMT-04:00 anphsw notifications@github.com:
I noticed that eit rewrite code using only 256 sections for storing values. Is that enough for any purposes?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/braice/MuMuDVB/issues/164#issuecomment-295320761, or mute the thread https://github.com/notifications/unsubscribe-auth/AAUUD0TLBpt682Eyi32ZOB4Ki3GdBpK5ks5rxi5sgaJpZM4MaFu_ .
Yes, DVB specifies 8-bit field (uint8_t), but all section counters in code is int (32 or 64 bit depending on arch). I think there can be miscalculation with section numbers overflowing it over 256 allowed.
Hi
You are right, and it is indeed really easy to miss a +1 somewhere
Valgrind can check that but we can also put big FAT warnings on every possible overflow of the sections arrays.
As you prefer
Brice
2017-05-27 12:48 GMT-04:00 anphsw notifications@github.com:
Yes, DVB specifies 8-bit field (uint8_t), but all section counters in code is int (32 or 64 bit depending on arch). I think there can be miscaltulation with section numbers overflowing it over 256 allowed.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/braice/MuMuDVB/issues/164#issuecomment-304463410, or mute the thread https://github.com/notifications/unsubscribe-auth/AAUUDzeRGLQmRShis6zBNIvTB6m2Lo6mks5r-FPjgaJpZM4MaFu_ .
Valgrind didnt show any useful info on this bug. A think adding overflow protection is more proper way. And this bug is rare, i hit it no more than 5-6 times since reporting.
After the latest set of memory leak fixes and EIT improvements, this doesn't happen so often anymore, but it does so consistently on some frequencies. For example, on Astra 19.2E, 12187,50 MHz.
I noticed that this happens more often on German transponders. Before memory leak fixes, it also used to happen on 12226,50 MHz, but I don't notice it anymore. I don't know if it's because they put too much data in EIT, or it is because of their special letters (ä, ö, ü, ß,...).
This appears in kernel log:
[436703.032079] traps: mumudvb[1267] general protection ip:7f7cb3e05b5b sp:7fff4ecc1a30 error:0 in libc-2.19.so[7f7cb3d8d000+1a1000]
And this is the valgrind output. MuMuDVB hangs when I try to open EIT.json. It also doesn't close on Ctrl+C, the only way to kill it is with kill -9
.
==28397== Memcheck, a memory error detector
==28397== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==28397== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info
==28397== Command: ./src/mumudvb -d -c /etc/mumudvb/12.conf
==28397==
MuMuDVB Version 2.1.0_20170408_mumudvb2
--- Build information ---
Built without CAM support.
Built with SCAM support.
Built with ATSC support.
Built with support for DVB API Version 5.10.
Built with support for DVB-T2.
---------
Originally based on dvbstream 0.6 by (C) Dave Chapman 2001-2004
Released under the GPL.
Latest version available from http://mumudvb.net/
Project from the cr@ns (http://www.crans.org)
by Brice DUBOST (mumudvb@braice.net)
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x413E1D: read_tuning_configuration (tune.c:465)
==28397== by 0x402DF7: main (mumudvb.c:429)
==28397== Address 0x5b1a0b4 is 52 bytes inside a block of size 54 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x413E1D: read_tuning_configuration (tune.c:465)
==28397== by 0x402DF7: main (mumudvb.c:429)
==28397==
Info: Tune: You will use DVB API version 5 for tuning your card.
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x40D9EC: read_rewrite_configuration (rewrite.c:172)
==28397== by 0x402EDB: main (mumudvb.c:468)
==28397== Address 0x5b1a444 is 52 bytes inside a block of size 55 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x40D9EC: read_rewrite_configuration (rewrite.c:172)
==28397== by 0x402EDB: main (mumudvb.c:468)
==28397==
Info: Rewrite: You have enabled the EIT (EPG) storage for webservices
Info: Rewrite: You have enabled the PMT Rewriting
Info: Rewrite: You have enabled the PAT Rewriting
Info: Rewrite: You have enabled the SDT Rewriting
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x40512A: main (mumudvb.c:509)
==28397== Address 0x5b1aecc is 60 bytes inside a block of size 62 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x40512A: main (mumudvb.c:509)
==28397==
Info: Main: You have enabled PSI tables filtering, only PAT will be send
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x405315: main (mumudvb.c:482)
==28397== Address 0x5b1b11c is 28 bytes inside a block of size 30 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x405315: main (mumudvb.c:482)
==28397==
Info: Main: New channel, current number 0
Info: Main: New channel, current number 1
Info: Main: New channel, current number 2
Info: Main: New channel, current number 3
Info: Main: ========== End of configuration, MuMuDVB version 2.1.0_20170408_mumudvb2 is starting ==========
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x40344C: main (mumudvb.c:867)
==28397== Address 0x5b1c298 is 24 bytes inside a block of size 26 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x40344C: main (mumudvb.c:867)
==28397==
Info: Main: Streaming. Freq 10700000
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x414E86: tune_it (tune.c:1177)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1c5e0 is 32 bytes inside a block of size 33 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x414E86: tune_it (tune.c:1177)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: Using DVB card "MXL5XX" tuner 0
Info: Tune: Tuning DVB-S to Freq: 950000 kHz, LO frequency 9750000 kHz Pol:V Srate=27500000, LNB number: 1
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x415384: do_diseqc (tune.c:812)
==28397== by 0x415384: tune_it (tune.c:1311)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1cac0 is 16 bytes inside a block of size 17 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x415384: do_diseqc (tune.c:812)
==28397== by 0x415384: tune_it (tune.c:1311)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: LNB voltage 13V
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x415833: do_diseqc (tune.c:852)
==28397== by 0x415833: tune_it (tune.c:1311)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1cd5c is 60 bytes inside a block of size 62 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x415833: do_diseqc (tune.c:852)
==28397== by 0x415833: tune_it (tune.c:1311)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: Diseqc switch position specified, we force switch input to 1
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x415EA7: do_diseqc (tune.c:862)
==28397== by 0x415EA7: tune_it (tune.c:1311)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1cfa4 is 20 bytes inside a block of size 22 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x415EA7: do_diseqc (tune.c:862)
==28397== by 0x415EA7: tune_it (tune.c:1311)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: SCR/UNICABLE message
==28397== Warning: noted but unhandled ioctl 0x6f42 with no size/direction hints.
==28397== This could cause spurious value errors to appear.
==28397== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==28397== Warning: noted but unhandled ioctl 0x6f43 with no size/direction hints.
==28397== This could cause spurious value errors to appear.
==28397== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==28397== Warning: noted but unhandled ioctl 0x6f41 with no size/direction hints.
==28397== This could cause spurious value errors to appear.
==28397== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x41542B: tune_it (tune.c:1321)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1d1d8 is 24 bytes inside a block of size 25 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x41542B: tune_it (tune.c:1321)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: DISEQC SETTING SUCCEDED
Info: Tune: Tuning With DVB-API version 5. delivery system : 5
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x415498: tune_it (tune.c:1397)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1d68c is 44 bytes inside a block of size 47 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x415498: tune_it (tune.c:1397)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: Stream_id = 0, stream id with PLS parameters 0
==28397== Syscall param ioctl(generic) points to uninitialised byte(s)
==28397== at 0x584F1C7: ioctl (syscall-template.S:81)
==28397== by 0x41559B: tune_it (tune.c:1521)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0xffeeedac4 is on thread 1's stack
==28397== in frame #1, created by tune_it (tune.c:1157)
==28397==
Info: Tune: FE_STATUS:
Info: Tune: FE_STATUS:
Info: Tune: FE_HAS_SIGNAL : found something above the noise level
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x4149A2: print_status (tune.c:663)
==28397== by 0x4149F8: check_status (tune.c:1039)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1e388 is 40 bytes inside a block of size 42 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x4149A2: print_status (tune.c:663)
==28397== by 0x4149F8: check_status (tune.c:1039)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: FE_HAS_CARRIER : found a DVB signal
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x41498A: print_status (tune.c:664)
==28397== by 0x4149F8: check_status (tune.c:1039)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1e5d4 is 36 bytes inside a block of size 37 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x41498A: print_status (tune.c:664)
==28397== by 0x4149F8: check_status (tune.c:1039)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: FE_HAS_VITERBI : FEC is stable
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x414972: print_status (tune.c:665)
==28397== by 0x4149F8: check_status (tune.c:1039)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1e824 is 36 bytes inside a block of size 37 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x414972: print_status (tune.c:665)
==28397== by 0x4149F8: check_status (tune.c:1039)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: FE_HAS_SYNC : found sync bytes
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x41495A: print_status (tune.c:666)
==28397== by 0x4149F8: check_status (tune.c:1039)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1ea7c is 44 bytes inside a block of size 45 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x41495A: print_status (tune.c:666)
==28397== by 0x4149F8: check_status (tune.c:1039)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: FE_HAS_LOCK : everything's working...
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x414C5C: check_status (tune.c:1068)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1ecc8 is 40 bytes inside a block of size 42 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x414C5C: check_status (tune.c:1068)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: Event: Frequency: 11502000 (or 7998000)
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x414C73: check_status (tune.c:1074)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1ef0c is 28 bytes inside a block of size 30 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x414C73: check_status (tune.c:1074)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: SymbolRate: 27500000
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x414C8A: check_status (tune.c:1075)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1f134 is 20 bytes inside a block of size 23 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x414C8A: check_status (tune.c:1075)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: FEC_inner: 3
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x414BA5: check_status (tune.c:1089)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1f360 is 16 bytes inside a block of size 19 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x414BA5: check_status (tune.c:1089)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: Bit error rate: 0
Info: Tune: Signal strength: 62436
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x414C17: check_status (tune.c:1097)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397== Address 0x5b1f7b8 is 8 bytes inside a block of size 11 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x414C17: check_status (tune.c:1097)
==28397== by 0x41516E: tune_it (tune.c:1541)
==28397== by 0x403993: main (mumudvb.c:930)
==28397==
Info: Tune: SNR: 1323
Info: Main: Card 12, tuner 0 tuned
main 0xffeef8c70
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x41FA6F: update_chan_filters (mumudvb_channels.c:470)
==28397== by 0x403E86: main (mumudvb.c:1142)
==28397== Address 0x5b3c534 is 52 bytes inside a block of size 53 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x41FA6F: update_chan_filters (mumudvb_channels.c:470)
==28397== by 0x403E86: main (mumudvb.c:1142)
==28397==
Info: Common chan: Looking through all services to update their filters
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x403F4A: main (mumudvb.c:1183)
==28397== Address 0x5b3cac8 is 56 bytes inside a block of size 57 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x403F4A: main (mumudvb.c:1183)
==28397==
Info: Unicast: We open the Master http socket for address 0.0.0.0:4012
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x407620: log_streamed_channels (log.c:412)
==28397== by 0x40570F: main (mumudvb.c:1208)
==28397== Address 0x5b3cdb4 is 20 bytes inside a block of size 22 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x407620: log_streamed_channels (log.c:412)
==28397== by 0x40570F: main (mumudvb.c:1208)
==28397==
Info: Main: Diffusion 4 channels
Info: Main: Channel number : 0, service id 0 name : ""
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x407804: log_streamed_channels (log.c:432)
==28397== by 0x40570F: main (mumudvb.c:1208)
==28397== Address 0x5b3d264 is 68 bytes inside a block of size 71 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x407804: log_streamed_channels (log.c:432)
==28397== by 0x40570F: main (mumudvb.c:1208)
==28397==
Info: Main: Unicast : Channel accessible via the master connection, 0.0.0.0:4012
Info: Main: Channel number : 1, service id 0 name : ""
Info: Main: Unicast : Channel accessible via the master connection, 0.0.0.0:4012
Info: Main: Channel number : 2, service id 0 name : ""
Info: Main: Unicast : Channel accessible via the master connection, 0.0.0.0:4012
Info: Main: Channel number : 3, service id 0 name : ""
Info: Main: Unicast : Channel accessible via the master connection, 0.0.0.0:4012
==28397== Conditional jump or move depends on uninitialised value(s)
==28397== at 0x40B994: buffer_func (mumudvb_common.c:342)
==28397== by 0x404738: main (mumudvb.c:1658)
==28397==
==28397== Conditional jump or move depends on uninitialised value(s)
==28397== at 0x40B9C1: buffer_func (mumudvb_common.c:342)
==28397== by 0x404738: main (mumudvb.c:1658)
==28397==
==28397== Conditional jump or move depends on uninitialised value(s)
==28397== at 0x40B9E4: buffer_func (mumudvb_common.c:358)
==28397== by 0x404738: main (mumudvb.c:1658)
==28397==
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x40E381: sdt_channel_rewrite (rewrite_sdt.c:157)
==28397== by 0x40E6E9: sdt_rewrite_new_channel_packet (rewrite_sdt.c:412)
==28397== by 0x4046B7: main (mumudvb.c:1624)
==28397== Address 0x5c676d8 is 104 bytes inside a block of size 107 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x40E381: sdt_channel_rewrite (rewrite_sdt.c:157)
==28397== by 0x40E6E9: sdt_rewrite_new_channel_packet (rewrite_sdt.c:412)
==28397== by 0x4046B7: main (mumudvb.c:1624)
==28397==
WARN: SDT rewrite: Cannot rewrite a program without the service_id set. We deactivate SDT rewrititng for this channel 0 : ""
WARN: SDT rewrite: Cannot rewrite a program without the service_id set. We deactivate SDT rewrititng for this channel 1 : ""
WARN: SDT rewrite: Cannot rewrite a program without the service_id set. We deactivate SDT rewrititng for this channel 2 : ""
WARN: SDT rewrite: Cannot rewrite a program without the service_id set. We deactivate SDT rewrititng for this channel 3 : ""
==28397== Invalid read of size 4
==28397== at 0x406F56: log_message (log.c:346)
==28397== by 0x40924D: card_read (dvb.c:408)
==28397== by 0x404A0C: main (mumudvb.c:1362)
==28397== Address 0x5c6816c is 28 bytes inside a block of size 29 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x40924D: card_read (dvb.c:408)
==28397== by 0x404A0C: main (mumudvb.c:1362)
==28397==
WARN: DVB: Error : DVR buffer overrun
==28397== Thread 3:
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x40ACF8: monitor_func (mumudvb_mon.c:686)
==28397== by 0x5559063: start_thread (pthread_create.c:309)
==28397== Address 0x78f4ec8 is 24 bytes inside a block of size 25 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x40ACF8: monitor_func (mumudvb_mon.c:686)
==28397== by 0x5559063: start_thread (pthread_create.c:309)
==28397==
Info: Main: Channel "" down.Card 12
Info: Main: Channel "" down.Card 12
Info: Main: Channel "" down.Card 12
Info: Main: Channel "" down.Card 12
^CERRO: Main: Caught signal 2
==28397== Invalid read of size 4
==28397== at 0x406F70: log_message (log.c:346)
==28397== by 0x409AB1: SignalHandler (mumudvb.c:1747)
==28397== by 0x57A30DF: ??? (in /lib/x86_64-linux-gnu/libc-2.19.so)
==28397== by 0x5827F2C: ??? (syscall-template.S:81)
==28397== by 0x584FFB3: usleep (usleep.c:32)
==28397== by 0x40AC7B: monitor_func (mumudvb_mon.c:799)
==28397== by 0x5559063: start_thread (pthread_create.c:309)
==28397== Address 0x8ca4390 is 16 bytes inside a block of size 17 alloc'd
==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623)
==28397== by 0x406F0C: log_message (log.c:327)
==28397== by 0x409AB1: SignalHandler (mumudvb.c:1747)
==28397== by 0x57A30DF: ??? (in /lib/x86_64-linux-gnu/libc-2.19.so)
==28397== by 0x5827F2C: ??? (syscall-template.S:81)
==28397== by 0x584FFB3: usleep (usleep.c:32)
==28397== by 0x40AC7B: monitor_func (mumudvb_mon.c:799)
==28397== by 0x5559063: start_thread (pthread_create.c:309)
==28397==
ERRO: Main: Caught signal 14
^CERRO: Main: Caught signal 2
^CERRO: Main: Caught signal 2
^CERRO: Main: Caught signal 2
^CERRO: Main: Caught signal 2
^CERRO: Main: Caught signal 2
Hello
Do you remember if you have ICONV support ?
It looks it is in the special character handling, but I cannot figure out where.
Maybe gdb could help too
Brice
2017-07-12 7:05 GMT-04:00 Danijel Tudek notifications@github.com:
After the latest set of memory leak fixes and EIT improvements, this doesn't happen so often anymore, but it does so consistently on some frequencies. For example, on Astra 19.2E, 12187,50 MHz.
I noticed that this happens more often on German transponders. Before memory leak fixes, it also used to happen on 12226,50 MHz, but I don't notice it anymore. I don't know if it's because they put too much data in EIT, or it is because of their special letters (ä, ö, ü, ß,...).
This appears in kernel log:
[436703.032079] traps: mumudvb[1267] general protection ip:7f7cb3e05b5b sp:7fff4ecc1a30 error:0 in libc-2.19.so[7f7cb3d8d000+1a1000]
And this is the valgrind output. MuMuDVB hangs when I try to open EIT.json. It also doesn't close on Ctrl+C, the only way to kill it is with kill -9.
==28397== Memcheck, a memory error detector ==28397== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==28397== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info ==28397== Command: ./src/mumudvb -d -c /etc/mumudvb/12.conf ==28397== MuMuDVB Version 2.1.0_20170408_mumudvb2 --- Build information --- Built without CAM support. Built with SCAM support. Built with ATSC support. Built with support for DVB API Version 5.10. Built with support for DVB-T2.
Originally based on dvbstream 0.6 by (C) Dave Chapman 2001-2004 Released under the GPL. Latest version available from http://mumudvb.net/ Project from the cr@ns (http://www.crans.org) by Brice DUBOST (mumudvb@braice.net)
==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x413E1D: read_tuning_configuration (tune.c:465) ==28397== by 0x402DF7: main (mumudvb.c:429) ==28397== Address 0x5b1a0b4 is 52 bytes inside a block of size 54 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x413E1D: read_tuning_configuration (tune.c:465) ==28397== by 0x402DF7: main (mumudvb.c:429) ==28397== Info: Tune: You will use DVB API version 5 for tuning your card. ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x40D9EC: read_rewrite_configuration (rewrite.c:172) ==28397== by 0x402EDB: main (mumudvb.c:468) ==28397== Address 0x5b1a444 is 52 bytes inside a block of size 55 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x40D9EC: read_rewrite_configuration (rewrite.c:172) ==28397== by 0x402EDB: main (mumudvb.c:468) ==28397== Info: Rewrite: You have enabled the EIT (EPG) storage for webservices Info: Rewrite: You have enabled the PMT Rewriting Info: Rewrite: You have enabled the PAT Rewriting Info: Rewrite: You have enabled the SDT Rewriting ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x40512A: main (mumudvb.c:509) ==28397== Address 0x5b1aecc is 60 bytes inside a block of size 62 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x40512A: main (mumudvb.c:509) ==28397== Info: Main: You have enabled PSI tables filtering, only PAT will be send ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x405315: main (mumudvb.c:482) ==28397== Address 0x5b1b11c is 28 bytes inside a block of size 30 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x405315: main (mumudvb.c:482) ==28397== Info: Main: New channel, current number 0 Info: Main: New channel, current number 1 Info: Main: New channel, current number 2 Info: Main: New channel, current number 3 Info: Main: ========== End of configuration, MuMuDVB version 2.1.0_20170408_mumudvb2 is starting ========== ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x40344C: main (mumudvb.c:867) ==28397== Address 0x5b1c298 is 24 bytes inside a block of size 26 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x40344C: main (mumudvb.c:867) ==28397== Info: Main: Streaming. Freq 10700000 ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x414E86: tune_it (tune.c:1177) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1c5e0 is 32 bytes inside a block of size 33 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x414E86: tune_it (tune.c:1177) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: Using DVB card "MXL5XX" tuner 0 Info: Tune: Tuning DVB-S to Freq: 950000 kHz, LO frequency 9750000 kHz Pol:V Srate=27500000, LNB number: 1 ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x415384: do_diseqc (tune.c:812) ==28397== by 0x415384: tune_it (tune.c:1311) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1cac0 is 16 bytes inside a block of size 17 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x415384: do_diseqc (tune.c:812) ==28397== by 0x415384: tune_it (tune.c:1311) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: LNB voltage 13V ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x415833: do_diseqc (tune.c:852) ==28397== by 0x415833: tune_it (tune.c:1311) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1cd5c is 60 bytes inside a block of size 62 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x415833: do_diseqc (tune.c:852) ==28397== by 0x415833: tune_it (tune.c:1311) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: Diseqc switch position specified, we force switch input to 1 ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x415EA7: do_diseqc (tune.c:862) ==28397== by 0x415EA7: tune_it (tune.c:1311) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1cfa4 is 20 bytes inside a block of size 22 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x415EA7: do_diseqc (tune.c:862) ==28397== by 0x415EA7: tune_it (tune.c:1311) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: SCR/UNICABLE message ==28397== Warning: noted but unhandled ioctl 0x6f42 with no size/direction hints. ==28397== This could cause spurious value errors to appear. ==28397== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==28397== Warning: noted but unhandled ioctl 0x6f43 with no size/direction hints. ==28397== This could cause spurious value errors to appear. ==28397== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==28397== Warning: noted but unhandled ioctl 0x6f41 with no size/direction hints. ==28397== This could cause spurious value errors to appear. ==28397== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x41542B: tune_it (tune.c:1321) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1d1d8 is 24 bytes inside a block of size 25 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x41542B: tune_it (tune.c:1321) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: DISEQC SETTING SUCCEDED Info: Tune: Tuning With DVB-API version 5. delivery system : 5 ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x415498: tune_it (tune.c:1397) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1d68c is 44 bytes inside a block of size 47 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x415498: tune_it (tune.c:1397) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: Stream_id = 0, stream id with PLS parameters 0 ==28397== Syscall param ioctl(generic) points to uninitialised byte(s) ==28397== at 0x584F1C7: ioctl (syscall-template.S:81) ==28397== by 0x41559B: tune_it (tune.c:1521) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0xffeeedac4 is on thread 1's stack ==28397== in frame #1, created by tune_it (tune.c:1157) ==28397== Info: Tune: FE_STATUS: Info: Tune: FE_STATUS: Info: Tune: FE_HAS_SIGNAL : found something above the noise level ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x4149A2: print_status (tune.c:663) ==28397== by 0x4149F8: check_status (tune.c:1039) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1e388 is 40 bytes inside a block of size 42 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x4149A2: print_status (tune.c:663) ==28397== by 0x4149F8: check_status (tune.c:1039) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: FE_HAS_CARRIER : found a DVB signal ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x41498A: print_status (tune.c:664) ==28397== by 0x4149F8: check_status (tune.c:1039) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1e5d4 is 36 bytes inside a block of size 37 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x41498A: print_status (tune.c:664) ==28397== by 0x4149F8: check_status (tune.c:1039) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: FE_HAS_VITERBI : FEC is stable ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x414972: print_status (tune.c:665) ==28397== by 0x4149F8: check_status (tune.c:1039) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1e824 is 36 bytes inside a block of size 37 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x414972: print_status (tune.c:665) ==28397== by 0x4149F8: check_status (tune.c:1039) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: FE_HAS_SYNC : found sync bytes ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x41495A: print_status (tune.c:666) ==28397== by 0x4149F8: check_status (tune.c:1039) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1ea7c is 44 bytes inside a block of size 45 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x41495A: print_status (tune.c:666) ==28397== by 0x4149F8: check_status (tune.c:1039) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: FE_HAS_LOCK : everything's working... ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x414C5C: check_status (tune.c:1068) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1ecc8 is 40 bytes inside a block of size 42 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x414C5C: check_status (tune.c:1068) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: Event: Frequency: 11502000 (or 7998000) ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x414C73: check_status (tune.c:1074) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1ef0c is 28 bytes inside a block of size 30 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x414C73: check_status (tune.c:1074) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: SymbolRate: 27500000 ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x414C8A: check_status (tune.c:1075) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1f134 is 20 bytes inside a block of size 23 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x414C8A: check_status (tune.c:1075) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: FEC_inner: 3 ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x414BA5: check_status (tune.c:1089) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1f360 is 16 bytes inside a block of size 19 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x414BA5: check_status (tune.c:1089) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: Bit error rate: 0 Info: Tune: Signal strength: 62436 ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x414C17: check_status (tune.c:1097) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Address 0x5b1f7b8 is 8 bytes inside a block of size 11 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x414C17: check_status (tune.c:1097) ==28397== by 0x41516E: tune_it (tune.c:1541) ==28397== by 0x403993: main (mumudvb.c:930) ==28397== Info: Tune: SNR: 1323 Info: Main: Card 12, tuner 0 tuned main 0xffeef8c70 ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x41FA6F: update_chan_filters (mumudvb_channels.c:470) ==28397== by 0x403E86: main (mumudvb.c:1142) ==28397== Address 0x5b3c534 is 52 bytes inside a block of size 53 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x41FA6F: update_chan_filters (mumudvb_channels.c:470) ==28397== by 0x403E86: main (mumudvb.c:1142) ==28397== Info: Common chan: Looking through all services to update their filters ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x403F4A: main (mumudvb.c:1183) ==28397== Address 0x5b3cac8 is 56 bytes inside a block of size 57 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x403F4A: main (mumudvb.c:1183) ==28397== Info: Unicast: We open the Master http socket for address 0.0.0.0:4012 ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x407620: log_streamed_channels (log.c:412) ==28397== by 0x40570F: main (mumudvb.c:1208) ==28397== Address 0x5b3cdb4 is 20 bytes inside a block of size 22 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x407620: log_streamed_channels (log.c:412) ==28397== by 0x40570F: main (mumudvb.c:1208) ==28397== Info: Main: Diffusion 4 channels Info: Main: Channel number : 0, service id 0 name : "" ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x407804: log_streamed_channels (log.c:432) ==28397== by 0x40570F: main (mumudvb.c:1208) ==28397== Address 0x5b3d264 is 68 bytes inside a block of size 71 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x407804: log_streamed_channels (log.c:432) ==28397== by 0x40570F: main (mumudvb.c:1208) ==28397== Info: Main: Unicast : Channel accessible via the master connection, 0.0.0.0:4012 Info: Main: Channel number : 1, service id 0 name : "" Info: Main: Unicast : Channel accessible via the master connection, 0.0.0.0:4012 Info: Main: Channel number : 2, service id 0 name : "" Info: Main: Unicast : Channel accessible via the master connection, 0.0.0.0:4012 Info: Main: Channel number : 3, service id 0 name : "" Info: Main: Unicast : Channel accessible via the master connection, 0.0.0.0:4012 ==28397== Conditional jump or move depends on uninitialised value(s) ==28397== at 0x40B994: buffer_func (mumudvb_common.c:342) ==28397== by 0x404738: main (mumudvb.c:1658) ==28397== ==28397== Conditional jump or move depends on uninitialised value(s) ==28397== at 0x40B9C1: buffer_func (mumudvb_common.c:342) ==28397== by 0x404738: main (mumudvb.c:1658) ==28397== ==28397== Conditional jump or move depends on uninitialised value(s) ==28397== at 0x40B9E4: buffer_func (mumudvb_common.c:358) ==28397== by 0x404738: main (mumudvb.c:1658) ==28397== ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x40E381: sdt_channel_rewrite (rewrite_sdt.c:157) ==28397== by 0x40E6E9: sdt_rewrite_new_channel_packet (rewrite_sdt.c:412) ==28397== by 0x4046B7: main (mumudvb.c:1624) ==28397== Address 0x5c676d8 is 104 bytes inside a block of size 107 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x40E381: sdt_channel_rewrite (rewrite_sdt.c:157) ==28397== by 0x40E6E9: sdt_rewrite_new_channel_packet (rewrite_sdt.c:412) ==28397== by 0x4046B7: main (mumudvb.c:1624) ==28397== WARN: SDT rewrite: Cannot rewrite a program without the service_id set. We deactivate SDT rewrititng for this channel 0 : "" WARN: SDT rewrite: Cannot rewrite a program without the service_id set. We deactivate SDT rewrititng for this channel 1 : "" WARN: SDT rewrite: Cannot rewrite a program without the service_id set. We deactivate SDT rewrititng for this channel 2 : "" WARN: SDT rewrite: Cannot rewrite a program without the service_id set. We deactivate SDT rewrititng for this channel 3 : "" ==28397== Invalid read of size 4 ==28397== at 0x406F56: log_message (log.c:346) ==28397== by 0x40924D: card_read (dvb.c:408) ==28397== by 0x404A0C: main (mumudvb.c:1362) ==28397== Address 0x5c6816c is 28 bytes inside a block of size 29 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x40924D: card_read (dvb.c:408) ==28397== by 0x404A0C: main (mumudvb.c:1362) ==28397== WARN: DVB: Error : DVR buffer overrun ==28397== Thread 3: ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x40ACF8: monitor_func (mumudvb_mon.c:686) ==28397== by 0x5559063: start_thread (pthread_create.c:309) ==28397== Address 0x78f4ec8 is 24 bytes inside a block of size 25 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x40ACF8: monitor_func (mumudvb_mon.c:686) ==28397== by 0x5559063: start_thread (pthread_create.c:309) ==28397== Info: Main: Channel "" down.Card 12 Info: Main: Channel "" down.Card 12 Info: Main: Channel "" down.Card 12 Info: Main: Channel "" down.Card 12 ^CERRO: Main: Caught signal 2 ==28397== Invalid read of size 4 ==28397== at 0x406F70: log_message (log.c:346) ==28397== by 0x409AB1: SignalHandler (mumudvb.c:1747) ==28397== by 0x57A30DF: ??? (in /lib/x86_64-linux-gnu/libc-2.19.so) ==28397== by 0x5827F2C: ??? (syscall-template.S:81) ==28397== by 0x584FFB3: usleep (usleep.c:32) ==28397== by 0x40AC7B: monitor_func (mumudvb_mon.c:799) ==28397== by 0x5559063: start_thread (pthread_create.c:309) ==28397== Address 0x8ca4390 is 16 bytes inside a block of size 17 alloc'd ==28397== at 0x4C2AD10: calloc (vg_replace_malloc.c:623) ==28397== by 0x406F0C: log_message (log.c:327) ==28397== by 0x409AB1: SignalHandler (mumudvb.c:1747) ==28397== by 0x57A30DF: ??? (in /lib/x86_64-linux-gnu/libc-2.19.so) ==28397== by 0x5827F2C: ??? (syscall-template.S:81) ==28397== by 0x584FFB3: usleep (usleep.c:32) ==28397== by 0x40AC7B: monitor_func (mumudvb_mon.c:799) ==28397== by 0x5559063: start_thread (pthread_create.c:309) ==28397== ERRO: Main: Caught signal 14
^CERRO: Main: Caught signal 2 ^CERRO: Main: Caught signal 2 ^CERRO: Main: Caught signal 2 ^CERRO: Main: Caught signal 2 ^CERRO: Main: Caught signal 2
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/braice/MuMuDVB/issues/164#issuecomment-314736433, or mute the thread https://github.com/notifications/unsubscribe-auth/AAUUDxQA6q5-tvvYW_CmdWKgp3okPC70ks5sNKh2gaJpZM4MaFu_ .
Please reopen if the issue arise again
I've got rare situation when mumudvb crashes at eit_find_by_tsid(). Here is backtrace:
Using host libthread_db library "/usr/lib/libthread_db.so.1". Core was generated by `/tmp/mumudvb -c /etc/dvb/mumudvb5.conf'. Program terminated with signal SIGSEGV, Segmentation fault.
0 0xb76c3c27 in eit_find_by_tsid (rewrite_vars=0xbfb85638, service_id=2080, table_id=80 'P') at rewrite_eit.c:171
171 if((actual_eit->service_id==service_id)&&(actual_eit->table_id==table_id)) [Current thread is 1 (Thread 0xb7424700 (LWP 15088))] (gdb) bt
0 0xb76c3c27 in eit_find_by_tsid (rewrite_vars=0xbfb85638, service_id=2080, table_id=80 'P') at rewrite_eit.c:171
1 0xb76c3d48 in eit_need_update (rewrite_vars=0xbfb85638, buf=0xb772ca88 "G@\022\036", raw=1) at rewrite_eit.c:217
2 0xb76c3ef8 in eit_rewrite_new_global_packet (ts_packet=0xb772ca88 "G@\022\036", rewrite_vars=0xbfb85638) at rewrite_eit.c:254
3 0xb76bd2cb in main (argc=3, argv=0xbfc529d4) at mumudvb.c:1658
(gdb) frame 0
0 0xb76c3c27 in eit_find_by_tsid (rewrite_vars=0xbfb85638, service_id=2080, table_id=80 'P') at rewrite_eit.c:171
171 if((actual_eit->service_id==service_id)&&(actual_eit->table_id==table_id)) (gdb) print actual_eit->service_id Cannot access memory at address 0xffffff23 (gdb) print actual_eit->table_id Cannot access memory at address 0xffffff27 (gdb) print actual_eit $9 = (eit_packet_t ) 0xffffff23 (gdb) print rewrite_vars->eit_packets $10 = (eit_packet_t ) 0xb772dda8 (gdb) print *rewrite_vars->eit_packets $1 = {service_id = 13568768, table_id = 0 '\000', version = 1804933428, needs_update = -221, need_others = -1, last_section_number = -1, sections_stored = {-1 <repeats 39 times>, 453001287, 229638144, 13568768, -399243264, 1804933428, -221, -1 <repeats 41 times>, 469778503, 229638144, 13568768, -399243264, 1804933428, -221, -1 <repeats 41 times>, 486555719, 229638144, 13568768, -399243264, 1804933428, -221, -1 <repeats 41 times>, 503332935, 229638144, 13568768, -399243264, 1804933428, -221, -1 <repeats 41 times>, 520110151, 229638144, 13568768, -399243264, 1804933428, -221, -1 <repeats 23 times>}, full_eit_ok = -1, full_eit_sections = {0xffffffff <repeats 17 times>, 0x10004047, 0xdb00000, 0xcf0b00, 0xe8340800, 0x6b951934, 0xffffff23, 0xffffffff <repeats 41 times>, 0x11004047, 0xdb00000, 0xcf0b00, 0xe8340800, 0x6b951934, 0xffffff23, 0xffffffff <repeats 41 times>, 0x12004047, 0xdb00000, 0xcf0b00, 0xe8340800, 0x6b951934, 0xffffff23, 0xffffffff <repeats 41 times>, 0x13004047, 0xdb00000, 0xcf0b00, 0xe8340800, 0x6b951934, 0xffffff23, 0xffffffff <repeats 41 times>, 0x14004047, 0xdb00000, 0xcf0b00, 0xe8340800, 0x6b951934, 0xffffff23, 0xffffffff <repeats 41 times>, 0x15004047, 0xdb00000, 0xcf0b00, 0xe8340800}, continuity_counter = 1804933428, next = 0xffffff23}
I will try to investigate and fix it I can upload core file and debugged binary, if anyone interested.