MythLogBot@irc.freenode.net :: #mythtv

Daily chat history

Current users (86):

aloril, andreax1, Anduin, Anssi, anykey_, beata, BeeBob, Beirdo, brfransen, cattelan, cesman, chainsawbike, Chutt, clever, coling, Cougar, dagar, danielk22, Dave123, davide, dblain, dekarl, dlblog, f33dMB, foobum, ghoti, Gibby, gigem, gregL, GreyFoxx, highzeth, iamlindoro, J-e-f-f-A, j-rod|afk, jams, jarle, jcarlos, JEDIDIAH__, jhp, joe____, jpabq, jpabq-, jstenback, justinh, kc, kenni, knightr, kormoc, kurre2, kwmonroe, laga, mag0o, MaverickTech, Meliorator, mike|2, MitchCapper, MythBuild, MythLogBot, NightMonkey, okolsi, PointyPumper, poptix, purserj, sailerboy, Seeker`, skd5aner, Slasher`, Snow-Man, sphery, sraue, stuarta, sutula, taylorr, ThisNewGuy, timlegge, tomimo, tris, Unhelpful, vallor, wagnerrp, wahrhaft, xris, ybot, yoyolala, zCougar, _charly__
Wednesday, August 10th, 2011, 00:30 UTC
[00:30:37] andreax (andreax!~andreaz@p57B958F8.dip.t-dialin.net) has joined #mythtv
[00:35:50] jpabq_ (jpabq_!~jpabq@174-28-172-82.albq.qwest.net) has joined #mythtv
[00:35:50] jpabq_ (jpabq_!~jpabq@mythtv/developer/jpabq) has joined #mythtv
[00:35:50] jpabq_ (jpabq_!~jpabq@174-28-172-82.albq.qwest.net) has quit (Changing host)
[01:04:52] davide (davide!~david@host103.16.intrusion.com) has quit (Remote host closed the connection)
[01:08:43] davide (davide!~david@host103.16.intrusion.com) has joined #mythtv
[01:15:23] pheld (pheld!~heldal@cl-5.osl-01.no.sixxs.net) has left #mythtv ()
[01:50:56] davide (davide!~david@host103.16.intrusion.com) has quit (Read error: Connection reset by peer)
[01:51:18] davide (davide!~david@host103.16.intrusion.com) has joined #mythtv
[02:36:32] wahrhaft (wahrhaft!~quassel@cpe-24-210-71-26.columbus.res.rr.com) has joined #mythtv
[03:00:28] danielk-phone (danielk-phone!~androirc@96.57.9.142) has joined #mythtv
[03:06:21] zombor (zombor!~zombor_@kohana/developer/zombor) has quit (Remote host closed the connection)
[03:12:46] andreax (andreax!~andreaz@p57B958F8.dip.t-dialin.net) has quit (Quit: Leaving.)
[04:18:54] jpabq- (jpabq-!~jpabq@174-28-172-82.albq.qwest.net) has quit (Read error: No route to host)
[04:19:11] jpabq (jpabq!~jpabq@mythtv/developer/jpabq) has quit (Read error: No route to host)
[04:20:20] jpabq (jpabq!~jpabq@mythtv/developer/jpabq) has joined #mythtv
[04:21:31] jpabq- (jpabq-!~jpabq@174-28-172-82.albq.qwest.net) has joined #mythtv
[04:42:48] MitchCapper (MitchCapper!~UNIX@unaffiliated/mitchcapper) has joined #mythtv
[05:11:14] cattelan is now known as cattelan_away
[05:22:50] Beirdo: danielk22: if you're in... wondering if the db upgrades are borked. A user just reported this: http://pastebin.com/wbhHx8u1
[05:24:23] superm1 (superm1!~superm1@ubuntu/member/superm1) has quit (Ping timeout: 258 seconds)
[05:24:28] superm1 (superm1!~superm1@204.8.45.13) has joined #mythtv
[05:24:28] superm1 (superm1!~superm1@204.8.45.13) has quit (Changing host)
[05:24:28] superm1 (superm1!~superm1@ubuntu/member/superm1) has joined #mythtv
[05:40:17] jmartens (jmartens!~jmartens@s5597ca60.adsl.wanadoo.nl) has joined #mythtv
[05:43:51] jmartens (jmartens!~jmartens@s5597ca60.adsl.wanadoo.nl) has quit (Read error: Connection reset by peer)
[06:04:49] kth (kth!~kth@unaffiliated/kth) has joined #mythtv
[06:24:50] Beirdo: danielk22: it's now #9975
[06:56:04] natanojl (natanojl!~jonatan@c83-252-237-63.bredband.comhem.se) has joined #mythtv
[06:59:29] kth (kth!~kth@unaffiliated/kth) has quit (Quit: Leaving.)
[07:26:18] natanojl (natanojl!~jonatan@c83-252-237-63.bredband.comhem.se) has quit (Ping timeout: 252 seconds)
[09:47:11] stuartm (stuartm!~stuartm@mythtv/developer/stuartm) has quit (Remote host closed the connection)
[09:47:31] stuartm (stuartm!~stuartm@cpc3-derb9-0-0-cust911.8-3.cable.virginmedia.com) has joined #mythtv
[09:47:31] stuartm (stuartm!~stuartm@cpc3-derb9-0-0-cust911.8-3.cable.virginmedia.com) has quit (Changing host)
[09:47:31] stuartm (stuartm!~stuartm@mythtv/developer/stuartm) has joined #mythtv
[09:52:51] kc (kc!~Casper@unaffiliated/kc) has quit (Ping timeout: 276 seconds)
[09:53:24] kc (kc!~Casper@unaffiliated/kc) has joined #mythtv
[09:56:24] andreax (andreax!~andreaz@p57B958F8.dip.t-dialin.net) has joined #mythtv
[10:05:01] mike|2 (mike|2!~mike@c-24-21-63-118.hsd1.or.comcast.net) has quit (Remote host closed the connection)
[10:05:55] mike|2 (mike|2!~mike@c-24-21-63-118.hsd1.or.comcast.net) has joined #mythtv
[10:27:37] JEDIDIAH__ (JEDIDIAH__!~jedi@cpe-76-185-75-39.tx.res.rr.com) has quit (Ping timeout: 255 seconds)
[10:31:15] kth (kth!~kth@unaffiliated/kth) has joined #mythtv
[10:35:52] JEDIDIAH__ (JEDIDIAH__!~jedi@cpe-76-185-75-39.tx.res.rr.com) has joined #mythtv
[11:32:32] zCougar (zCougar!~cougar@2001:67c:32c:600:250:56ff:fe81:5f) has quit (Quit: zCougar)
[11:38:24] chainsawbike (chainsawbike!~chainsawb@chainsawbike-1-pt.tunnel.tserv25.sin1.ipv6.he.net) has quit (Quit: yep... i broke it good that time...)
[11:38:45] danielk-phone (danielk-phone!~androirc@96.57.9.142) has quit (Remote host closed the connection)
[11:38:49] danielk-phone (danielk-phone!~androirc@96.57.9.142) has joined #mythtv
[11:39:41] danielk-phone (danielk-phone!~androirc@96.57.9.142) has quit (Remote host closed the connection)
[11:40:10] chainsawbike (chainsawbike!~chainsawb@chainsawbike-1-pt.tunnel.tserv25.sin1.ipv6.he.net) has joined #mythtv
[11:41:48] danielk-phone (danielk-phone!~androirc@96.57.9.142) has joined #mythtv
[11:42:47] danielk-phone (danielk-phone!~androirc@96.57.9.142) has quit (Remote host closed the connection)
[12:04:54] andreax (andreax!~andreaz@p57B958F8.dip.t-dialin.net) has quit (Read error: Connection reset by peer)
[12:04:55] davide (davide!~david@host103.16.intrusion.com) has quit (Remote host closed the connection)
[12:05:23] davide (davide!~david@host103.16.intrusion.com) has joined #mythtv
[12:09:23] zCougar (zCougar!~cougar@2001:67c:32c:600:250:56ff:fe81:5f) has joined #mythtv
[12:27:54] Goga777 (Goga777!~Goga777@shpd-92-101-136-185.vologda.ru) has joined #mythtv
[12:41:08] Goga777 (Goga777!~Goga777@shpd-92-101-136-185.vologda.ru) has quit (Remote host closed the connection)
[12:48:14] Jordack (Jordack!~jordack@h69-131-44-221.plmomi.dedicated.static.tds.net) has joined #mythtv
[12:54:07] pheld (pheld!~heldal@cl-5.osl-01.no.sixxs.net) has joined #mythtv
[13:11:55] andreax (andreax!~andreaz@p57B958F8.dip.t-dialin.net) has joined #mythtv
[13:21:32] stoffel (stoffel!~quassel@p57B4A9BF.dip.t-dialin.net) has joined #mythtv
[13:37:12] zombor (zombor!~zombor_@kohana/developer/zombor) has joined #mythtv
[13:44:43] kth (kth!~kth@unaffiliated/kth) has quit (Quit: Leaving.)
[13:48:46] jpabq- (jpabq-!~jpabq@174-28-172-82.albq.qwest.net) has quit (Quit: ZNC - http://znc.sourceforge.net)
[13:49:12] jpabq- (jpabq-!~jpabq@174-28-172-82.albq.qwest.net) has joined #mythtv
[14:03:28] stoffel (stoffel!~quassel@p57B4A9BF.dip.t-dialin.net) has quit (Ping timeout: 240 seconds)
[14:06:20] brfransen (brfransen!~brfransen@216.254.250.47) has quit (Quit: brfransen)
[14:23:15] danielk22: Beirdo: http://pastebin.com/LGmQsBwq <-- these are the errors ???
[14:23:41] j-rod|afk is now known as j-rod
[14:23:59] danielk22: those queries succeed a dozen times before they fail there..
[14:28:08] NightMonkey (NightMonkey!~NightMonk@pdpc/supporter/professional/nightmonkey) has joined #mythtv
[14:30:48] Beirdo: seems odd, doesn't it?
[14:38:03] stuarta: why aren't the bindings working...
[14:38:07] danielk22: CREATE TABLE IF NOT EXISTS schemalock ( schemalock int(1)); LOCK TABLE schemalock WRITE; <-- executed before the query fails... the second settings query succeeds when run before taking this lock..
[14:38:44] danielk22: (the first query always fails since the schemevar is not a per host thing)
[14:39:07] danielk22: stuarta: I even tried reissuing the prepare and rebinding..
[14:39:16] stuarta: a null result is different to failing tho
[14:39:29] danielk22: right..
[14:39:31] Beirdo: is this somehow due to the "don't use NULL on strings" change, I wonder?
[14:39:51] danielk22: Beirdo: nope checked that.
[14:39:58] stuarta: the first query should succeed, but return 0 rows
[14:39:59] Beirdo: K. :)
[14:40:06] danielk22: it's as if the bindings just don't take
[14:40:22] Beirdo: yeah.
[14:40:26] stuarta: well the binding in the first query don't match the bindings in the sql
[14:40:37] stuarta: er.
[14:40:42] ** stuarta retracts that **
[14:42:33] Beirdo: hmm, how do we re-bind after a disconnection?
[14:43:08] Beirdo: sorry, I just woke up, and should really be in bed another hour or so :)
[14:43:12] danielk22: If I comment out the contents of DBUtil::lockSchema() and DBUtil::unlockSchema() the queries succeed.
[14:43:21] Beirdo: wow.
[14:44:52] Beirdo: It's not suddenly getting bitchy about the ; at the end of the query, is it?
[14:44:52] brfransen (brfransen!~brfransen@216.254.250.47) has joined #mythtv
[14:45:13] Beirdo: most queries we send don't have em
[14:45:26] danielk22: Beirdo: nope.. I tried adding the ";"
[14:45:39] Beirdo: also, those are not prepared statements, that may be the difference
[14:49:40] Beirdo: although the code for MSqlQuery::exec(QString) seems simple enough
[14:53:26] Beirdo: hmmm
[14:54:12] Captain_Murdoch: the original pastebin is gone, but I thought that the errors in the user's log were during the 'CompareAndWait() phase, not after we lock the schema.
[14:54:36] Beirdo: it's on a ticket though :)
[14:55:41] Beirdo: #9975 to be exact
[14:55:45] danielk22: Captain_Murdoch: CompareAndWait() locks the schema and then calls Compare() where we try to pull the DBSchemaVer and it fails. then it unlocks the schema and repeats
[14:56:46] danielk22: Hmm if I lock the settings table instead of the schemalock table the check succeeds...
[14:57:23] danielk22: Since we now share a DB connection per thread does this mean that when we lock a table that is the only table we can perform queries on in that thread?
[14:57:59] Beirdo: I would hope not
[15:00:50] Beirdo: seems we lock that table in UpgradeTVDatabaseSchema too
[15:01:57] Kunalagon (Kunalagon!~Kunalagon@212.200.240.146) has joined #mythtv
[15:05:59] Captain_Murdoch: Beirdo, a long time ago, we used to have race conditions on DB upgrades. I implemented the schemalock table lock as a mutex on the DB server side. the reason it is a separate table is because when we had multiple connections doing the DB upgrade potentially, we couldn't lock the settings table or any other normally used table(s).
[15:06:16] Beirdo: yeah, makes sense
[15:06:28] Beirdo: and you can't read other settings while upgrading either
[15:06:39] Captain_Murdoch: danielk22, yeah, that's a mysql-ism it appers. try "lock table schemalock write;" in a mysql session then try "select count() from settings;" and you'll get an error. "ERROR 1100 (HY000): Table 'settings' was not locked with LOCK TABLES"
[15:07:43] danielk22: So one solution is to give the schemalock stuff it's own connection to the database.. are there better options?
[15:09:01] jpabq_ (jpabq_!~jpabq@174-28-172-82.albq.qwest.net) has joined #mythtv
[15:09:01] jpabq_ (jpabq_!~jpabq@174-28-172-82.albq.qwest.net) has quit (Changing host)
[15:09:01] jpabq_ (jpabq_!~jpabq@mythtv/developer/jpabq) has joined #mythtv
[15:09:11] stuarta: Captain_Murdoch: you have to tell it what type of lock you want, so the select will fail because you've locked it for write, not read
[15:09:14] jpabq_ (jpabq_!~jpabq@mythtv/developer/jpabq) has quit (Client Quit)
[15:09:27] Beirdo: hmm, I guess you could lock settings, create a temporary LOCKED setting, then unlock.. probably would end up with race conditions though
[15:09:29] Captain_Murdoch: stuarta, we didn't lock settings, just schemalock;
[15:09:41] stuarta: heh
[15:10:00] danielk22: stuarta: & read locks aren't exclusive so that wouldn't work..
[15:10:38] stuarta: the write lock is correct for what we want to do
[15:10:42] Beirdo: I guess giving it back it's own connection would be the simplest
[15:11:04] stuarta: or more to the point, why is it not getting the same conection?
[15:11:30] danielk22: stuarta: it is getting the same connection.. that's the problem :)
[15:11:40] stuarta: i think i'll shutup now...
[15:12:52] Captain_Murdoch: found a quote somewhere... "ERROR 1100 (HY000): Table 'settings' was not locked with LOCK TABLES"
[15:13:07] Captain_Murdoch: doh, stupid cut and paste between sessions.
[15:13:09] Captain_Murdoch: :)
[15:13:44] Captain_Murdoch: "when you use lock tables, you must lock all tables that you are going to use in your queries. while the locks obtained with a lock tables statement are in effect, you cannot access any tables that were not locked by the statement."
[15:13:53] stuarta: yup
[15:14:03] Beirdo: I was just about to paste that
[15:14:03] stuarta: so you either be specific, or let mysql do the work
[15:14:13] Beirdo: or rather
[15:14:15] Beirdo: A session that requires locks must acquire all the locks that it needs in a single LOCK TABLES statement. While the locks thus obtained are held, the session can access only the locked tables.
[15:14:20] Beirdo: from the mysql docs
[15:14:25] Beirdo: same gist thoguh
[15:14:28] stuarta: that's what i was about to say
[15:14:44] danielk22: it looks like a deadlock prevention mechanism..
[15:14:50] stuarta: either lock *everything* you are going to play with, or nothing
[15:15:10] Captain_Murdoch: danielk22, makes sense.
[15:16:16] Beirdo: so looks like you need a specific extra session for locking
[15:16:21] danielk22: k, I'll just give it it's own connection to the DB. Compiling... :)
[15:16:41] stuarta: locks are connection specific
[15:17:04] ** Captain_Murdoch can't think of any other better way. we still need to lock because you can still upgrade the schema in more than one place. **
[15:17:05] stuarta: you have to stick to one way of locking in a single connection
[15:17:49] stuarta: the bit i've no idea about is the relationship between connections and sessions
[15:17:54] stuarta: in our code
[15:18:07] Beirdo: I think they are synonymous
[15:18:24] stuarta: then an "extra session" would serve no purpose
[15:18:32] Beirdo: unless it gets reconnected, a connection in our code is a session in mysql
[15:19:03] stuarta: if it gets reconnected all previous locks would have been cleared
[15:19:11] Beirdo: sure it does. Use connection A to lock a shared table. if that succeeds, use connection B to access another table
[15:19:31] stuarta: another table is fine
[15:19:41] stuarta: B wouldn't be able to access A's locked tables
[15:19:49] Beirdo: correct
[15:19:58] danielk22: stuarta: With my recent changes we try to share one DB connection for all the QSqlQueries in the same thread.. before each query got it's own connection to the DB.
[15:20:08] Beirdo: so A would have to drop the table as well, when unlocking
[15:20:09] stuarta: k
[15:20:28] Beirdo: if it's gonna get dropped, of course
[15:20:57] danielk22: stuarta: This can be disabled by changing REUSE_CONNECTION 1 to 0, but that's not my preference...
[15:21:07] Beirdo: which I guess we don't need to, we are just using the table lock as a code semaphore, basically
[15:21:07] Captain_Murdoch: looks like we might be able to use GET_LOCK(str, timeout) and RELEASE_LOCK(str) if we wanted. they are named locks that are server-wide according to the MySQL docs.
[15:21:52] stuarta: they work well for that, used that myself :)
[15:23:00] Captain_Murdoch: just set an insanely large timeout since it doesn't look like it's optional.
[15:23:46] stuarta: Captain_Murdoch: is that Qt Mysql?
[15:24:33] Captain_Murdoch: stuarta, stock mysql. reading it in the 5.1 docs.
[15:24:59] stuarta: the raw LOCK TABLE .. syntax doesn't need a timeout
[15:25:30] stuarta: it'll just block until the lock is released
[15:25:35] Captain_Murdoch: right, but LOCK TABLE needs a different connection becuase we can't lock all tables.
[15:25:49] Captain_Murdoch: I was saying GET_LOCK() and RELEASE_LOCK() are an alternative.
[15:26:52] Captain_Murdoch: there's even an IS_FREE_LOCK(str) for checking the status of a lock so we don't have to block.
[15:27:05] stuarta: so basically the issue is that some of the queries lock tables and some don't
[15:27:15] danielk22: Ok giving it it's own connection works.. but I think this mythtv be more elegant..
[15:27:17] Captain_Murdoch: no, we don't use locks. the only lock we use is for schema upgrades.
[15:27:44] ** stuarta sighs with relief **
[15:28:18] danielk22: also locking all tables wouldn't work so well for the schema updates. altering a table releases the table lock...
[15:28:22] Captain_Murdoch: and the only reason we use a lock tables for schema upgrades is as a mutex. but that was done prior to knowledge about GET_LOCK/RELEASE_LOCK
[15:29:05] Beirdo: nice
[15:29:19] Captain_Murdoch: danielk22, yeah, I went through a couple iterations I believe before I settled on the separate schemalock table way back when.
[15:45:36] natanojl (natanojl!~jonatan@c83-252-237-63.bredband.comhem.se) has joined #mythtv
[15:57:50] kth (kth!~kth@unaffiliated/kth) has joined #mythtv
[16:07:21] kormoc is now known as kormoc_afk
[16:24:34] natanojl (natanojl!~jonatan@c83-252-237-63.bredband.comhem.se) has quit (Ping timeout: 252 seconds)
[16:25:20] cattelan_away is now known as cattelan
[16:44:25] natanojl (natanojl!~jonatan@c83-252-237-63.bredband.comhem.se) has joined #mythtv
[17:05:18] davide (davide!~david@host103.16.intrusion.com) has quit (Remote host closed the connection)
[17:05:43] davide (davide!~david@host103.16.intrusion.com) has joined #mythtv
[17:32:13] kormoc_afk is now known as kormoc
[17:40:37] stuartm: is there any particular reason that local frontends don't always use the loopback ip? I've got a issue where the local frontend loses connectivity with the backend if the wireless connection drops, which seems easy to remedy
[17:41:39] stuartm: if (localip == backendip) connectionip = 127.0.0.1;
[17:44:39] Beirdo: having to add extra code for that seems rather a maintenance issue
[17:48:43] Beirdo: but other than having special case code in a few places, I see no reason why it wouldnt' work
[17:50:58] stuartm: we don't use common socket code throughout?
[17:59:43] andreax1 (andreax1!~andreaz@p57B951A6.dip.t-dialin.net) has joined #mythtv
[18:01:11] andreax (andreax!~andreaz@p57B958F8.dip.t-dialin.net) has quit (Ping timeout: 240 seconds)
[18:02:21] stuartm: http://pastebin.com/t8X06wgc
[18:03:35] Beirdo: It's only in the once place?
[18:04:00] stuartm: I'm looking for others now
[18:04:24] Beirdo: that doesnt' look bad at all
[18:05:11] Beirdo: although we may at some point want to use the IPv6 localhost instead of IPv4, but at this point we need to be dual stack anyways if we use IPv6
[18:05:26] Beirdo: as mysql ain't v6 friendly IIRC
[18:06:01] stuartm: it could go lower level still, i.e. in MythSocketDevice() but that would make some debugging stuff display the wrong values
[18:06:13] Beirdo: yeah
[18:06:22] Beirdo: it would probably confuse people
[18:06:33] stuartm: and I've not tested it, but I don't see why it wouldn't work
[18:07:15] Beirdo: it does seem reasonable to me, especially if done in one place. It's the duplication that kinda worried me, but meh :)
[18:07:41] Beirdo: loopback should be significantly faster too in some cases
[18:07:45] kormoc: 5.5.3 supports localhost ipv6 and starts support for the rest
[18:08:15] Beirdo: ahh. We are still shying away from 5.5.x for other reasons though, are we not?
[18:09:21] kormoc: I think everything has been fixed for safe 5.5 mysql support
[18:09:32] Beirdo: sweet
[18:10:59] kormoc: I ran 5.5 for at least 6 months
[18:10:59] kormoc: and I ran innodb all that time too. I'm pretty confident that the majority of stuff (recording, watching, commflagging, myth music, myth video) work under 5.5 and innodb
[18:11:26] Beirdo: yeah, about half my tables (the bigger ones) have been innodb for me for months now too
[18:11:33] stoffel (stoffel!~quassel@p57B4B368.dip.t-dialin.net) has joined #mythtv
[18:11:57] Beirdo: the problem with innodb is that distros tune it horribly if at all
[18:12:22] Beirdo: and trying to educate our users on tuning it... won't be fun
[18:12:25] stuarta: "default settings" comes to mind
[18:12:37] stuarta: which are crap
[18:12:37] Beirdo: default settings for innodb are ass
[18:12:54] Beirdo: aye
[18:13:17] wagnerrp: Beirdo, stuartm: at least with freebsd, forcing 127.0.0.1 will cause problems, as the code will only listen on IPv6 is such an address is found on the backend
[18:13:28] wagnerrp: regardless of what the listen address defined in mythtv-setup is
[18:13:38] stuartm: whoops, obvious typo fixed in above path
[18:14:04] stuarta: wagnerrp: does a bind to a v6 address also bind the v4 address or does it do an exclusive bind?
[18:14:05] Beirdo: wagnerrp: ahhh, so instead of putting just the IPv4 addr, we need to choose wisely. I'd forgotten that
[18:14:31] wagnerrp: stuartm: technically, it doesnt bind to anything
[18:14:38] stuarta: some distro/kernels auto bind to the v4 & v6 when you bind to the v6 address
[18:14:48] wagnerrp: we listen to everything, and generally on linux, everything means both v4 and v6
[18:14:58] stuarta: it's distro specific
[18:14:59] stuartm: if someone wants to suggest a sane fix for BSD craziness I'll happily work it in
[18:15:10] wagnerrp: on freebsd, you only get one or the other (unless were simply doing it improperly)
[18:15:30] stuarta: there's a kernel sysctl to tell it to automatically bind to both v4 and v6 when doing the bind to the socket
[18:15:36] wagnerrp: although to be honest, i dont know why were binding to all accessible addresses
[18:15:49] Beirdo: hehe, there is that too
[18:15:51] wagnerrp: why not just do so to 127.0.0.1 and whatever is defined in mythtv-setup
[18:15:58] stuarta: what's wrong with the wildcard !
[18:16:11] wagnerrp: what advantage is the wildcard?
[18:16:35] Beirdo: it can make for odd issues on a multi-homed box, not that we are likely to find many of those as mythboxes
[18:16:36] stuarta: instead of (find all ips, bind all ips) you bind (wildcard)
[18:16:46] stuarta: which has the same effect (generally(
[18:17:03] stuarta: turns up in netstat as 0.0.0.0:<port> rather than a specific ip
[18:17:09] Beirdo: anyone who runs their backend/frontend on a firewall (essentially) needs their head checked anyways
[18:17:18] ** stuarta hides **
[18:17:22] wagnerrp: hehe
[18:17:32] wagnerrp: yeah, i yelled at one of my friends way back in 2006 for doing that
[18:17:47] stuarta: my backend is my firewall. it's always on so i makes sense
[18:17:53] Beirdo: heh
[18:18:04] stuarta: and funnily enough it is firewalled up the wazoo
[18:18:06] Beirdo: as long as you don't mind the security issues
[18:18:10] stuartm: Why we don't listen on then all them all? At least by default and only if a specific address is configured do we then restrict it? I'm refering to the ease of setup here – we assume that all users will know the IP of their backend machine by heart – it won't be true for IPv4 and it's extremely unlikely for IPv6
[18:18:35] Beirdo: I sure wouldn't suggest that config to the unaware
[18:18:43] stuarta: nor would i
[18:18:51] stuarta: but i'm a special case
[18:19:15] wagnerrp: stuartm: but why does the user care where their backend is located? they dont tell mythfrontend where it is
[18:19:20] stuarta: i need a linux box to terminate my DSL as none of the CPE available does native ipv6 properly
[18:19:22] stuartm: I'd think most clueless users are using a NAT router
[18:19:25] Beirdo: stuartm: especially in the v6 case, I would not want it listening on every v6 address
[18:19:26] wagnerrp: they tell mythfrontend where the database is, and the database tells it where the backend is
[18:19:56] stuarta: well with v6 the upnp backend discovery should hopefully take care of it
[18:19:56] wagnerrp: any mythtv application will only ever connect on the address defined in the database
[18:20:07] stuartm: wagnerrp: huh, that's true, I was forgetting for a moment that we ask for the database IP, not the backend IP
[18:20:07] Beirdo: my backend box has 4 or 5 v6 IPs already, and only one of them should be used by mythtv (although I haven't switched from v4 binding in my setup yet)
[18:20:38] ** stuarta toddles off for dinner **
[18:20:51] stuartm: Beirdo: right, but you're not the average user in that case and you know to configure a specific IP
[18:21:07] Beirdo: hehe
[18:21:27] stuartm: anyhow, as wagnerrp reminded me it's a moot point, we don't allow for the backend IP to be configured anywhere
[18:21:28] Beirdo: yeah, I would assume that most using v6 would fall in that category at this time, but you make a good point
[18:21:41] Beirdo: master backend IP is specified
[18:21:57] Beirdo: first time you setup a backend, IIRC
[18:22:06] Beirdo: (so it puts it into the db)
[18:22:29] Beirdo: but not local backend IP? hmmm
[18:22:33] stuartm: heh, right, so it wasn't an irrelevant discussion then :p
[18:23:05] stuartm: Beirdo: yeah, I'm a little confused now about what gets asked, where and why
[18:23:28] Beirdo: yeah, and we're confused... imagine how the average user would feel :)
[18:23:42] ** stuarta suggests beer **
[18:23:54] Beirdo: very good suggestion
[18:24:16] ** stuarta fancies whiskey tho **
[18:24:30] Beirdo: nice. just don't pour it on the Mac Mini :)
[18:24:36] stuartm: on a side note, now that I know about QNetworkInterface we should easily be able to pre-populate a drop-down with IP addresses for that config option, at least when selecting an IPv6 address that would make it a little easier
[18:24:57] Beirdo: YAY. ;)
[18:25:21] stuartm: I wonder how difficult auto-discovery for mysql would be ...
[18:25:33] ** Beirdo channels nmap **
[18:25:36] Beirdo: oh wait.
[18:26:22] kormoc: outside of port hitting, I don't see how else we'd do it?
[18:26:33] Beirdo: srv records?
[18:26:34] Beirdo: heh
[18:26:55] Beirdo: like the average sysadmin could handle that let alone home users
[18:26:58] kormoc: srv records are a bit complex for a app that doesn't support hostnames :P
[18:27:07] Beirdo: so true
[18:28:12] Beirdo: and unless something has changed, God help you if you run djbdns... unless you like entering stuff in octal
[18:28:21] stuartm: well for the first backend we can at least test for a local database which should be what most users have configured, for slaves we don't need it, we just need the master IP which we can get through auto-discovery
[18:28:53] Beirdo: yeah, assuming the usual case of the db being physically on the backend
[18:28:54] stuartm: kormoc: we do now support hostnames ... although I'm not sure how well it works
[18:29:47] stuartm: well that gives me some useful ideas for the new setup, steps that can be eliminated/automated etc
[18:31:22] Beirdo: cool. New ideas are always useful
[18:32:05] stuartm: I don't know if they are original ;) However if they haven't already been implemented then they should be
[18:33:02] Beirdo: well, at least it gives ya some inspiration too, I guess. I dunno about you, but sometimes that's all it takes for me.
[18:36:32] Nachtschatten (Nachtschatten!~rooms@p4FC730E3.dip.t-dialin.net) has joined #mythtv
[18:40:44] stuartm: http://pastebin.com/Hr0exWpQ
[18:41:10] stuartm: uses the IPv6 loopback if the configured IP was also IPv6
[18:41:19] stuartm: should work for BSD? Or not?
[18:41:35] stuartm: I'd like to avoid an ifdef ..
[18:41:53] Beirdo: I think that would work
[18:42:02] Beirdo: we can test it :)
[18:42:07] stuartm: yup
[18:42:51] Beirdo: looks like my Windows Qt build likes it better with more RAM and more disk space
[18:43:13] stuartm: I still haven't determined whether there are other places we make connections to the backend, hopefully not
[18:43:14] Beirdo: it's well past the one that consistently gacked
[18:43:39] Beirdo: well, there's 6543 and 6544
[18:43:49] Beirdo: does the frontend connect on both?
[18:44:11] stoffel (stoffel!~quassel@p57B4B368.dip.t-dialin.net) has quit (Ping timeout: 240 seconds)
[18:48:14] stuartm: crap, I've just realised that the patch isn't going to work in the case of a dropped network connection – if the interface goes down then the IP won't be listed in the available addresses any-more
[18:48:30] stuartm: any more
[18:48:40] Nachtschatten (Nachtschatten!~rooms@p4FC730E3.dip.t-dialin.net) has quit (Ping timeout: 246 seconds)
[18:48:44] Beirdo: eek
[18:49:42] Beirdo: I guess you could make a static var that latches the condition the first time it sees it, and caches it
[18:49:43] stuartm: we'd have to do it at a much higher level, when the frontend first connects to the backend and cache the result :(
[18:49:52] Beirdo: heh, yeah
[18:50:11] Beirdo: you could do the caching right in that code though
[18:50:29] Beirdo: if it ever matched, it won't need to loop again
[18:53:07] stuartm: yeah, and the patch as it exists now isn't entirely without merit since it prevents existing connections from being dropped just not new ones from failing
[18:56:29] Beirdo: yeah
[18:56:40] Nachtschatten (Nachtschatten!~rooms@tmo-103-183.customers.d1-online.com) has joined #mythtv
[19:00:55] Nachtschatten (Nachtschatten!~rooms@tmo-103-183.customers.d1-online.com) has quit (Client Quit)
[19:09:43] stuartm: I'm not sure about the static, I don't know if we're likely to re-use the same socket for a different address, the comments around there suggest that's a possibility
[19:10:02] stuartm: it could be a static map I guess
[19:10:23] Beirdo: yeah, a static map would do the trick
[19:16:56] Beirdo: OMG... Qt finally finished
[19:17:52] Beirdo: I'm setting up a Windows VM to build via the mythbuild.sh script, in case you were wondering
[19:21:39] Beirdo: I still chuckle every time I see "libass" flying by in the configure output
[19:26:41] jrr (jrr!~jrr@c-98-253-76-24.hsd1.in.comcast.net) has joined #mythtv
[19:26:52] jrr (jrr!~jrr@c-98-253-76-24.hsd1.in.comcast.net) has left #mythtv ()
[19:35:15] zombor (zombor!~zombor_@kohana/developer/zombor) has quit (Ping timeout: 276 seconds)
[19:36:43] zombor (zombor!~zombor_@kohana/developer/zombor) has joined #mythtv
[19:38:30] stoffel (stoffel!~quassel@p57B4B368.dip.t-dialin.net) has joined #mythtv
[19:38:50] stuartm: Beirdo: heh, that's not going to run every time a commit is pushed I hope?
[19:39:08] Beirdo: I sure hope not
[19:39:37] danielk22: Anyone know if there is a limit to Linux memory over-commit? I was just generating some dummy video with a obviously leaky program when the machine started acting funny top told me it was using 160GB of ram.. shouldn't the OOM killer kick in at some point?
[19:45:21] Beirdo: hehe
[19:45:41] Beirdo: I think you can tweak how much over-commit it does, but I honestly haven't looked into it much
[19:46:44] stoffel (stoffel!~quassel@p57B4B368.dip.t-dialin.net) has quit (Remote host closed the connection)
[19:52:31] stuartm: ugh, http://pastebin.com/1gYd3fZA
[19:52:54] Beirdo: wha???
[19:53:51] danielk22: 0.0.0.2?
[19:54:40] stuartm: ah, ok, seems that there is a SpecialAddress constructor, but no equivalent for setAddress()
[19:55:36] danielk22: So 0.0.0.2 is some Qt sentinel? It's not an RFC 3330 address.
[19:57:29] stuartm: danielk22: no, it's taken the enum value QHostAddress::LocalHost (with a integer value of 2) and translated it into an IP of 0.0.0.2
[19:57:55] stuartm: which is dumb, but easy enough to work around
[19:58:49] danielk22: ah...I this would not happen in C++11 with an explicit constructor :)
[19:59:02] stuartm: http://doc.trolltech.com/4.5/qhostaddress.html – note although the constructor will accept both the SpecialAddress value and an IP, setAddress() does not
[19:59:38] stuartm: which was my fault, I just assumed that it would
[20:00:20] danielk22: Ah.. C++11 wouldn't help there.
[20:00:26] stuartm: so instead of using setAddress on an existing QHostAddress you need to do a copy assignment
[20:06:06] stuartm: ok, so far, so good
[20:07:21] stuartm: http://pastebin.com/tt2vKL0B
[20:08:04] stuartm: backend is configured to listen on 192.168.159.2 but local frontend is connecting over 127.0.0.1 which it wouldn't previously do
[20:10:38] Beirdo: cool.
[20:14:41] stuartm (stuartm!~stuartm@mythtv/developer/stuartm) has quit (Remote host closed the connection)
[20:15:01] stuartm (stuartm!~stuartm@mythtv/developer/stuartm) has joined #mythtv
[20:15:05] stuartm: and it continues to work when I pull the ethernet cable :)
[20:16:50] stuartm: so ... who wants to test it on windows/bsd/osx and linux with ipv6?
[20:16:51] danielk22: stuartm: Hmm, I've never had a combo fe/be box fall down just because the ethernet cable was pulled.. Did you also bring down the network device?
[20:17:37] wagnerrp: danielk22: i assume something like networkmanager is detecting the lack of network and resetting the ip to a 169 address
[20:18:24] stuartm: danielk22: no, but it's a DHCP assigned IP that goes away when it detects that the network is no longer reachable – to be honest I've only seen this with wifi before now because I don't make a habit of yanking ethernet cables out when I'm watching TV
[20:18:34] danielk22: wagnerrp: ah, networkmanager is banned in this household.
[20:18:42] wagnerrp: :)
[20:19:22] stuartm: and yes, this is with my 0.24 production box which uses mythbuntu for simplicity so networkmanager is a factor
[20:20:02] Beirdo: stuartm: I can give it a shot with IPv6 this evening on my devel setup
[20:20:57] stuartm: Beirdo: http://pastebin.mandriva.com/23380
[20:23:18] Beirdo: cool
[20:24:00] Beirdo: grabbed it to the appropriate box. thanks
[20:29:11] Kunalagon (Kunalagon!~Kunalagon@212.200.240.146) has quit (Remote host closed the connection)
[20:41:15] stoffel (stoffel!~quassel@p57B4B368.dip.t-dialin.net) has joined #mythtv
[20:47:24] Jordack (Jordack!~jordack@h69-131-44-221.plmomi.dedicated.static.tds.net) has quit ()
[20:47:34] stoffel (stoffel!~quassel@p57B4B368.dip.t-dialin.net) has quit (Remote host closed the connection)
[21:27:49] stuartm: wagnerrp: not true, we can close the ticket as invalid ;)
[21:34:12] Beirdo: heh
[21:44:19] marsilainen (marsilainen!~matt@host-78-145-174-218.as13285.net) has joined #mythtv
[21:52:08] brfransen (brfransen!~brfransen@216.254.250.47) has quit (Read error: Connection reset by peer)
[21:52:59] brfransen (brfransen!~brfransen@216.254.250.47) has joined #mythtv
[21:54:01] j-rod is now known as j-rod|afk
[22:27:52] Nachtschatten (Nachtschatten!~rooms@tmo-103-183.customers.d1-online.com) has joined #mythtv
[22:28:07] Nachtschatten (Nachtschatten!~rooms@tmo-103-183.customers.d1-online.com) has quit (Client Quit)
[22:34:51] pheld (pheld!~heldal@cl-5.osl-01.no.sixxs.net) has quit (Quit: Leaving.)
[22:46:22] kth (kth!~kth@unaffiliated/kth) has quit (Quit: Leaving.)
[22:52:41] natanojl (natanojl!~jonatan@c83-252-237-63.bredband.comhem.se) has quit (Ping timeout: 240 seconds)
[22:58:44] wagnerrp: markk or danielk22: just a thought in relation to the stuttering users experience when shifting programs during livetv
[22:59:02] wagnerrp: playback can only begin at an I-frame, since that is the first time you have a fully decoded frame to operate from
[22:59:23] wagnerrp: when the player transitions from one file to the next, is that old frame storage flushed out of the buffer?
[22:59:51] wagnerrp: or does the new playback instance still have access to it?
[23:10:25] zombor (zombor!~zombor_@kohana/developer/zombor) has quit (Remote host closed the connection)
[23:35:47] marsilainen (marsilainen!~matt@host-78-145-174-218.as13285.net) has quit (Read error: Operation timed out)
[23:45:52] danielk22: wagnerrp: The files are transitioned at I-frames with MPEG-2. With H.264 files aren't always splittable at I frames, but that's probably not the issue. It's probably just that a lot of stuff is going on in the UI thread at that point.
[23:47:30] wagnerrp: did you see Paul Gardiner's claim in the -dev list that his broadcasts are showing up with frames referencing several I-frames previous?

IRC Logs collected by BeirdoBot.
Please use the above link to report any bugs.