[mythtv-users] backend segfault in HDHRStreamHandler with 0.22 (f11 + atrpms 0.22 binaries)

Jason Grant expires07 at logular.com
Sun Nov 22 12:32:53 UTC 2009


Hello,

I've just upgraded to 0.22 using the binaries from the atrpms repo for
fedora 11.

mythbackend segfaults on startup, and based on gdb, I think mythbackend
is caught in an infinite recursion at [1] below.

I think it is similar to the HDHomerun scanning issue reported here:

http://svn.mythtv.org/trac/ticket/7232

i.e. a tcp dump shows a zillion packets as shown at [2] below.

In my scenario, I have not done a new channel scan; instead, I am using
the data from my operational 0.21 database.  FWIW, a channel scan also
fails for me with a segfault.

I am hoping that someone can tell me whether this is a new bug, or
whether the 7232 fix will resolve it.

Thanks for any tips.

J.

====================================================
[1] Infinite recusion into TunerSet(...)
====================================================

00669 QString HDHRStreamHandler::TunerSet(
00670     const QString &name, const QString &val,
00671     bool report_error_return, bool print_error)
00672 {
00673     QMutexLocker locker(&_hdhr_lock);
00674 
00675     if (!_hdhomerun_device)
00676     {
00677         VERBOSE(VB_IMPORTANT, LOC_ERR + "Set request failed (not connected)");
00678         return QString::null;
00679     }
00680 
00681 
00682     QString valname = QString("/tuner%1/%2").arg(_tuner).arg(name);
00683     char *value = NULL;
00684     char *error = NULL;
00685 
00686     if (hdhomerun_device_set_var(
00687             _hdhomerun_device, valname.toLocal8Bit().constData(),
00688             val.toLocal8Bit().constData(), &value, &error) < 0)
00689     {
00690         VERBOSE(VB_IMPORTANT, LOC_ERR + "Set request failed" + ENO);
00691 
00692         return QString::null;
00693     }
00694 
00695     if (error && name == QString("channel"))
00696     {
00697         QString newval = val;
00698         newval.replace("qam_256", "qam");
00699         newval.replace("qam_64", "qam");

NB: I suspect this call recurses until segfault.

00700         return TunerSet(name, newval, report_error_return, print_error);  
00701     }


====================================================
[2] Packets going to/fro the homerun.  Captured with:
====================================================

tcpdump -vv -A -s0 host 192.168.1.198

23:09:52.889355 IP (tos 0x0, ttl 64, id 45273, offset 0, flags [none], proto TCP (6), length 73) 192.168.1.198.65001 > talby.logular.com.59608: P, cksum 0xb2f7 (correct), 204:237(33) ack 243 win 1460
E..I.... at .E.............0.pQ'.M.P.............ERROR: invalid channel.(.;)
23:09:52.889385 IP (tos 0x0, ttl 64, id 17031, offset 0, flags [DF], proto TCP (6), length 79) talby.logular.com.59608 > 192.168.1.198.65001: P, cksum 0x845a (incorrect (-> 0x327b), 243:282(39) ack 237 win 5840
E..OB. at .@.t ............'.M.0.prP....Z......../tuner0/channel...:219500000...].
23:09:52.889664 IP (tos 0x0, ttl 64, id 45274, offset 0, flags [none], proto TCP (6), length 73) 192.168.1.198.65001 > talby.logular.com.59608: P, cksum 0xb2af (correct), 237:270(33) ack 282 win 1460
E..I.... at .E.............0.pr'.M.P.............ERROR: invalid channel.(.;)
23:09:52.889694 IP (tos 0x0, ttl 64, id 17032, offset 0, flags [DF], proto TCP (6), length 79) talby.logular.com.59608 > 192.168.1.198.65001: P, cksum 0x845a (incorrect (-> 0x3233), 282:321(39) ack 270 win 5840
E..OB. at .@.t.............'.M.0.p.P....Z......../tuner0/channel...:219500000...].
23:09:52.889974 IP (tos 0x0, ttl 64, id 45275, offset 0, flags [none], proto TCP (6), length 73) 192.168.1.198.65001 > talby.logular.com.59608: P, cksum 0xb267 (correct), 270:303(33) ack 321 win 1460
E..I.... at .E.............0.p.'.N.P....g........ERROR: invalid channel.(.;)
23:09:52.890004 IP (tos 0x0, ttl 64, id 17033, offset 0, flags [DF], proto TCP (6), length 79) talby.logular.com.59608 > 192.168.1.198.65001: P, cksum 0x845a (incorrect (-> 0x31eb), 321:360(39) ack 303 win 5840
E..OB. at .@.t.............'.N.0.p.P....Z......../tuner0/channel...:219500000...].
23:09:52.890284 IP (tos 0x0, ttl 64, id 45276, offset 0, flags [none], proto TCP (6), length 73) 192.168.1.198.65001 > talby.logular.com.59608: P, cksum 0xb21f (correct), 303:336(33) ack 360 win 1460
E..I.... at .E.............0.p.'.N.P.............ERROR: invalid channel.(.;)
23:09:52.890314 IP (tos 0x0, ttl 64, id 17034, offset 0, flags [DF], proto TCP (6), length 79) talby.logular.com.59608 > 192.168.1.198.65001: P, cksum 0x845a (incorrect (-> 0x31a3), 360:399(39) ack 336 win 5840
E..OB. at .@.t.............'.N.0.p.P....Z......../tuner0/channel...:219500000...].
23:09:52.890593 IP (tos 0x0, ttl 64, id 45277, offset 0, flags [none], proto TCP (6), length 73) 192.168.1.198.65001 > talby.logular.com.59608: P, cksum 0xb1d7 (correct), 336:369(33) ack 399 win 1460
E..I.... at .E.............0.p.'.NUP.............ERROR: invalid channel.(.;)
23:09:52.890624 IP (tos 0x0, ttl 64, id 17035, offset 0, flags [DF], proto TCP (6), length 79) talby.logular.com.59608 > 192.168.1.198.65001: P, cksum 0x845a (incorrect (-> 0x315b), 399:438(39) ack 369 win 5840
E..OB. at .@.t.............'.NU0.p.P....Z......../tuner0/channel...:219500000...].
23:09:52.890903 IP (tos 0x0, ttl 64, id 45278, offset 0, flags [none], proto TCP (6), length 73) 192.168.1.198.65001 > talby.logular.com.59608: P, cksum 0xb18f (correct), 369:402(33) ack 438 win 1460
E..I.... at .E.............0.p.'.N|P.............ERROR: invalid channel.(.;)
23:09:52.890932 IP (tos 0x0, ttl 64, id 17036, offset 0, flags [DF], proto TCP (6), length 79) talby.logular.com.59608 > 192.168.1.198.65001: P, cksum 0x845a (incorrect (-> 0x3113), 438:477(39) ack 402 win 5840
E..OB. at .@.t.............'.N|0.q.P....Z......../tuner0/channel...:219500000...].
23:09:52.891211 IP (tos 0x0, ttl 64, id 45279, offset 0, flags [none], proto TCP (6), length 73) 192.168.1.198.65001 > talby.logular.com.59608: P, cksum 0xb147 (correct), 402:435(33) ack 477 win 1460
E..I.... at .E.............0.q.'.N.P....G........ERROR: invalid channel.(.;)




More information about the mythtv-users mailing list