catalinii / minisatip

minisatip is an SATIP server for linux using local DVB-S2, DVB-C, DVB-T or ATSC cards
https://minisatip.org
324 stars 78 forks source link

Crash when using -c X:*4 #1072

Closed Jalle19 closed 1 year ago

Jalle19 commented 1 year ago

(split from https://github.com/catalinii/minisatip/issues/1068)

Tried again, this time with -c 6:*4,7:*4. With *4 minisatip crashes immediately when starting a channel:

Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.624 AD0]: Start streaming for stream sid 0, len 16 to handle 23 => 10.110.1.1:41378
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: PAT Adapter 0, Transponder ID 13, version 1, len 19
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: Adapter 0, PMT -1 sid 13000 (32C8), pid 1273
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: new filter 6 added for adapter 0, pid 1273, flags 17, mask_len 3, master_filter 6
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: Adapter 0, PMT -1 sid 13200 (3390), pid 1410
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: new filter 7 added for adapter 0, pid 1410, flags 17, mask_len 3, master_filter 7
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: Adapter 0, PMT -1 sid 13300 (33F4), pid 1353
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: new filter 8 added for adapter 0, pid 1353, flags 17, mask_len 3, master_filter 8
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: Adapter 0, PMT -1 sid 13400 (3458), pid 1457
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: new filter 9 added for adapter 0, pid 1457, flags 17, mask_len 3, master_filter 9
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: Adapter 0, PMT -1 sid 13600 (3520), pid 1424
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: new filter 10 added for adapter 0, pid 1424, flags 17, mask_len 3, master_filter 10
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: Dumping pids table for adapter 0, number of unknown pids: 0
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 0, fd 24, packets 1, d/c/c2 errs 0/0/0, flags 1, pmt -1, filter 4, sock -1, p2 0, sids: 0 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 1260, fd 25, packets 435, d/c/c2 errs 239/1/0, flags 1, pmt -1, filter -1, sock -1, p2 2, sids: 0 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 1457, fd 26, packets 2, d/c/c2 errs 0/0/0, flags 1, pmt -1, filter 9, sock -1, p2 1, sids: 0 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 3259, fd 27, packets 34, d/c/c2 errs 19/1/0, flags 1, pmt -1, filter -1, sock -1, p2 0, sids: 0 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 1, fd 28, packets 1, d/c/c2 errs 0/0/0, flags 1, pmt -1, filter -1, sock -1, p2 1, sids: 0 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 16, fd 29, packets 3, d/c/c2 errs 0/0/0, flags 1, pmt -1, filter -1, sock -1, p2 2, sids: 0 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 18, fd 30, packets 213, d/c/c2 errs 0/1/1, flags 1, pmt -1, filter -1, sock -1, p2 117, sids: -1 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 17, fd 31, packets 1, d/c/c2 errs 0/0/0, flags 1, pmt -1, filter 5, sock -1, p2 0, sids: 0 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 1273, fd 0, packets 0, d/c/c2 errs 0/0/0, flags 2, pmt -1, filter 6, sock -1, p2 0, sids: -1 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 1410, fd 0, packets 0, d/c/c2 errs 0/0/0, flags 2, pmt -1, filter 7, sock -1, p2 0, sids: -1 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 1353, fd 0, packets 0, d/c/c2 errs 0/0/0, flags 2, pmt -1, filter 8, sock -1, p2 0, sids: -1 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: pid 1424, fd 0, packets 0, d/c/c2 errs 0/0/0, flags 2, pmt -1, filter 10, sock -1, p2 0, sids: -1 -1 -1 -1 -1 -1 -1 -1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: AD 0 [dvr 0 0], setting filter on PID 1273 for fd 32 [0 ms]
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: AD 0 [dvr 0 0], setting filter on PID 1410 for fd 33 [0 ms]
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: AD 0 [dvr 0 0], setting filter on PID 1353 for fd 34 [0 ms]
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: AD 0 [dvr 0 0], setting filter on PID 1424 for fd 35 [0 ms]
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: process_sdt: no PMT found for sid 13000 (32C8)
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: process_sdt: no PMT found for sid 13200 (3390)
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: process_sdt: no PMT found for sid 13300 (33F4)
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: process_sdt: no PMT found for sid 13400 (3458)
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: process_sdt: no PMT found for sid 13600 (3520)
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: returning new pmt 0 for adapter 0, pmt pid 1457, sid 13400 3458
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: new PMT 0 AD 0, pid: 05B1 (1457), len 50, pi_len 6, ver 7, pcr 1260, sid 3458 (13400)
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: PMT 0 PI pos 1 caid 0B00 => pid 0AC4 (2756), index 0
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: PMT pid 1457 - stream pid 04EC (1260), type 27, es_len 5, pos 15, caids 1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: PMT pid 1457 - stream pid 0CBB (3259), type 6 [AC3], es_len 17, pos 25, caids 1
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: Sending PMT 0 to all CAs: ad_ca_mask 2, pmt_ca_mask 0, disabled_ca_mask 0
Mar 06 10:05:51 vladimir minisatip[52835]: [06/03 10:05:51.744 AD0]: ddci_process_pmt: adapter 0, pmt 0, pid 1457, sid 13400, ddid -1, name:
Mar 06 10:05:51 vladimir minisatip[52853]: ?? ??:0
Mar 06 10:05:51 vladimir minisatip[52855]: ?? ??:0
Mar 06 10:05:51 vladimir minisatip[52857]: ?? ??:0
Mar 06 10:05:51 vladimir minisatip[52859]: ?? ??:0
Mar 06 10:05:51 vladimir minisatip[52861]: ?? ??:0
Mar 06 10:05:51 vladimir minisatip[52863]: ?? ??:0
Mar 06 10:05:51 vladimir minisatip[52865]: ?? ??:0
Mar 06 10:05:51 vladimir minisatip[52867]: ?? ??:0
Mar 06 10:05:51 vladimir minisatip[52869]: ?? ??:0
Mar 06 10:05:51 vladimir minisatip[52871]: ?? ??:0
Mar 06 10:05:51 vladimir minisatip[52835]: RECEIVED SIGNAL 4 - SP=0 IP=0
Mar 06 10:05:51 vladimir minisatip[52835]: Obtained 10 stack frames.
Mar 06 10:05:51 vladimir minisatip[52835]: 0x555ec055e00a : 0x555ec055e0c2 : 0x7f9e1b332140 : 0x555ec059237d : 0x555ec057f07b : 0x555ec057f2df : 0x555ec057cd21 : 0x555ec057d000 : 0x555ec0553693 : 0x555ec0553faf :
Mar 06 10:05:51 vladimir systemd[1]: minisatip.service: Main process exited, code=exited, status=1/FAILURE
Mar 06 10:05:51 vladimir systemd[1]: minisatip.service: Failed with result 'exit-code'.

Not sure how to get a better trace :shrug:

catalinii commented 1 year ago

Try make clean;make debug

catalinii commented 1 year ago

Or gdb --args ./minisatip ....

catalinii commented 1 year ago

Is this still happening in next branch?

Jalle19 commented 1 year ago

I'll see if I can find some time to test next week

Jalle19 commented 1 year ago
[31/03 09:49:59.101 AD0]: ddci_process_pmt: adapter 0, pmt 2, pid 1271, sid 26100, ddid -1, name: 

Thread 4 "minisatip" received signal SIGILL, Illegal instruction.
[Switching to Thread 0x7ffff67db700 (LWP 300705)]
0x00005555555a79a6 in ddci_process_pmt (ad=<optimized out>, pmt=<optimized out>) at ddci.c:412
412         LOG("No _free slot found for pmt %d on DDCI %d", pmt->id, d->id);
(gdb) backtrace
#0  0x00005555555a79a6 in ddci_process_pmt (ad=<optimized out>, pmt=<optimized out>) at ddci.c:412
#1  0x00005555555950f0 in send_pmt_to_ca (i=i@entry=1, ad=ad@entry=0x55555563c570, pmt=pmt@entry=0x7fffec0158c0) at tables.c:244
#2  0x000055555559532f in send_pmt_to_cas (ad=ad@entry=0x55555563c570, pmt=pmt@entry=0x7fffec0158c0) at tables.c:280
#3  0x0000555555592ee9 in start_active_pmts (ad=ad@entry=0x55555563c570) at pmt.c:1124
#4  0x00005555555931b0 in pmt_process_stream (ad=ad@entry=0x55555563c570) at pmt.c:1276
#5  0x000055555556aed8 in process_dmx (s=s@entry=0x555555651e40) at stream.c:1044
#6  0x000055555556b7e8 in read_dmx (s=0x555555651e40) at stream.c:1143
#7  0x00005555555666c0 in select_and_execute (arg=<optimized out>) at socketworks.c:863
#8  0x00007ffff7fa9ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007ffff7bc4a2f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Jalle19 commented 1 year ago

d->max_channels became larger than MAX_CHANNELS_PER_CI. Alas I couldn't get more than two PMTs per CA PMT to work while testing, but I guess we can still ship a fix for this crash.