mackworth / cTiVo

TiVo Show Downloads for MacOS
220 stars 36 forks source link

Crashing v3.4.5 - after May 12 2023 #517

Closed dmazzella-- closed 1 year ago

dmazzella-- commented 1 year ago

Just in the last few days (sometime after 12-May-2023 and this post, 15-May-2023), cTivo version 3.4.5 crashes just after starting. It begins to show the Now Playing list, then stops.

I have an ancient (late 2009) MacMini I use almost exclusively for cTivo, running OSX 10.11.x Ex Capitan, but I've also I've tested with 3.4.5 on a Intel with the latest OSX 13. On that newer Mac, 3.6 beta and

On OSX 13, cTivo v 3.5.3 and v3.6Beta works fine. but 3.4.5 crashes just like the 2009 Mini -- IF you clear the caches and prefs in the ~/Library/Application Support/com.cTiVo.cTiVo and ~/Library/Preferences/com.cTiVo.cTiVo.plist first!

I found that if I start 3.5.3 on OSX13, let it load, close and open 3.4.5, it works ok?!

In the crash log, this line stood out: 2023-05-15 13:36:37:126 -[MTTVDB infoForEpisodeNamed:orSeason:andEpisode:inSeries:onAirDate:completionHandler:failureHandler:withSeriesIDCandidate:andEpisodeCandidate:]_block_invoke@476>TVDB Episode JSON type Error (should be Array): for 353160

cTivo-3.4.5-crash-Terminal-OSX13.txt com.cTiVo.cTiVo 2023-05-15--19-25-37-282.log

cTivo-3.4.5-crash-Terminal.txt

dmazzella-- commented 1 year ago

FYI, I deleted ~/Preferences/com.cTiVo.cTiVo.plist and restarted on the 2009 MacMini, and 3.4.5 didn't at first crash at startup. But once I set everything up again, but it started to fail. at the same JSON type error?

-- EDIT/UPDATE --

I think the problem is with the show "Outdoor Nevada" and the info on TVDB. I'm not sure what since I don't know what the URL query string was, but I permanently deleted the episodes from my TIVO, and the ancient Mac is more stable now.

mackworth commented 1 year ago

I indeed saw your travails in the crash logger; thanks for reporting in though as it confirms my suspicion.

The root cause is that TVDB just started sending some junk on certain requests from its older database. In the original TVDB code, I missed a JSON-syntax check, so the older code crashes on that particular junk. If you run it again, cTiVo will naturally ask for the same request, get the same result, and crash again.

The newer code (3.5/3.6) accesses the version 4 TVDB database, which doesn't have this problem. So if you run 3.5, then it will get the right info for that show and cache it locally. if you THEN run 3.4, it'll use the cached version, so no crash. But if you delete the cache, then it will query version 3 DB and crash again.

You're not alone, I'm seeing a few other people have hit this crash (although nobody before 5/12). I can recreate it by hitting Empty Cache in 3.4.5. So I've created a version 3.4.6 that will ignore the bad info. Give it a try here, and let me know if it fixes it for you.

mackworth commented 1 year ago

Let me know also if the RPC stuff works (e.g. the Remote control screen and instantaneous updates of theNow playing list when you add or delete a recording on TiVo)

dmazzella-- commented 1 year ago

RPC - Remote, Play now on TiVo, Delete on TiVo, and updates to the Now Playing List all work. Thanks!

mackworth commented 1 year ago

I've pushed this out to everyone, but I have literally no way to test the update works.

Can you do me a favor: open 3.4.5 (redownload here if you have to) and confirm that you get the "Update available"? If so, then go ahead and update it with that button?

dmazzella-- commented 1 year ago

Yes, it shows the update to 3.4.6 is available on the ancient Mac mini.

With 3.4.5 on my MBP running Ventura, I get the update required to 3.5.3.

Screenshot 2023-05-18 at 3 08 20 PM

mackworth commented 1 year ago

Awesome. There's a lot of fiddly little bits to ensure that the right client is offered the right version and that nobody's hacked it in between my generating and their downloading it. I usually get them wrong, so glad to hear it worked this time.

Thanks again for reporting it; it makes it much easier to find/fix the problem.