Archive for July, 2008
Smart Crash Reports and the GPL
OK, before this gets out of hand, a quick word. To paraphrase Michael Jackson: I’m a coder not a lawyer. I appreciate d4rk’s bring the matter to our attention (although next time, if you want to avoid getting into name-calling, just drop us an email).
The background: Smart Crash Reports, as mdpdb pointed out, doesn’t require linking against anything. We were linking against optional object files for the purposes of installing the reporter, as a convenience to our users. Kind of amusing, right, all the hubbub that results from an innocent effort to improve software quality? But I get it, slippery slope and all.
My amateur reading of the license would seem to imply that the XBMC team could simply issue a quick statement saying “We authorize the Plex team to call two function calls in Smart Crash Reports” and everyone would be happy and in compliance.
However, that’s not needed. Enrique came up with a patch an hour or so after we heard about the issue, to be included in the next RC, which will be out as soon as I get a chance.
I’m sorry for the mistake. Trolls, back under the bridge. Peace out.

Release 0.5-RC3: Statistical bugfixing
The crash reports filtered in today, and at the end of the day I sorted them into folders. There were literally 26 identical crashes when playing VIDEO_TS, which is a great sign that a lot of people are running into the problem. Thanks so much to the people who wrote a quick description. Feel free to add your email if you don’t mind me contacting you for further information.
Anyway, the release today (HTTP, Torrent, Source) fixes the most common crashes and hangs that I observed after a day of watching reports come in.
- FIX: Possible crash when adding or editing source.
- FIX: Crash playing VIDEO_TS files (the biggest one!)
- FIX: Code signing is done correctly, so it will behave with Leopard Firewall.
- FIX: Lots of crashes as a result of some optical drive code still being enabled by default.
- FIX: A *ton* of hangs doing various things (e.g. adding sources, stopping video). The problem was that the scanner thread (which sometimes starts when the program starts), creates a big-ass database transaction inside which it does tons of time-consuming things like network scraping. This means that (a) no other database operations can run, like saving where you were in a file for resuming when you stop, or setting content on a source and (b) if the scan gets aborted for some reason, you end up with nothing in the database! The transactional design is simply incorrect. For now I’ve simply disabled the transaction, which fixes all the hangs, but it *may* introduce other issues (but hopefully not). I’ll choose the devil I don’t know on this one.

Smart Crash Reporter
I’m glad the new version of Smart Crash Reporter installed for more people, the reports are pouring in this morning. The good news is that the majority are clustered around the same few issues, so it definitely helps us focus our attention.
To the people who took the time to write in the crash report a quick description of what they were doing at the time of the crash, grazie mille!! That really helps. And if you said “no” to the installer but changed your mind, you can install it from here.
