question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Switching from single-file butler push to multi-file pushing seems to cause issues

See original GitHub issue

So far I have been pushing a single AppImage of Tiled on my linux-64bit-snapshot channel. This evening, I tried pushing the AppDir instead, so simply the directory containing all the files. I tried this because I thought it could reduce patch size and it would make the other executables shipping with Tiled more readily available.

But pushing the AppDir did something really strange on itch.io, where downloading the snapshot would produce a file called “Tiled-2017.06.27-x86_64.AppImage” (the name of the previous snapshot) but the contents was a ZIP of the new snapshot.

Unfortunately I couldn’t test what the itch.io app would have done, because it appeared to be having networking issues (downloads weren’t starting). In the meantime, I have pushed a single-file update again, which seems to be working fine.

In case it helps, the “wrong” version is the first “2017.07.11” in the build history.

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:15

github_iconTop GitHub Comments

1reaction
bjorncommented, Oct 3, 2017

@GranPC Thank you so much! I’m currently on holiday but I’ll definitely give this a try next week!

1reaction
fasterthanlimecommented, Jul 13, 2017

Ah! But that only explains why I am having issues trying to reproduce the issue those two users were facing. But when they wrote their comment, I had not tried to switch the download to a .zip yet…

I believe the issue started 30 days ago, when the first Tiled.dmg was pushed to the macos channel.

The single file feature backfired, and set the filename to Tiled.dmg, even for the app - which always gets a .zip, no matter what’s pushed (single file or multiple files) - so the app downloads to a file named Tiled.dmg, then goes trying to figure out what format it is. For dmg in particular, magic numbers aren’t enough - some .dmg files are actually bz2 compressed, and those cannot be identifier viat their four first bytes - so the app uses the file extension to guess that particular format instead.

Guessing that it’s a .dmg, it does its normal routine (trying to convert it to cdr, mount it, copy files out of it, unmounting it) - but it fails at conversion time because it’s not a .dmg, it’s a .zip.

The fix is to make the backend use a different field for the “single filename” so that the itch app doesn’t pick it up. (/cc @granpc - remember I felt uncomfortable overwriting the filename column? 😉)

That explains both comments and the trouble you’re having now (even though you switched back to pushing the .app, the filename set when you first pushed a single file is still there). We’ll fix it ASAP.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Pushing builds · The butler manual - itch.io docs
Pushing to a new channel will make a corresponding file appear on your game's page: Pushing to the same channel again will update...
Read more >
Problems pushing builds with butler. - Itch.io
You're pushing to win-linux and mac, the builds are processed properly and updated; However, they're hidden/prevented from being downloaded, so ...
Read more >
Reusing migration to simply and efficiently implement multi ...
Only multi-file operations can potentially involve multiple servers—single-file opera- tions will always involve only one server. The most common scheme for ...
Read more >
revamping the system interface to storage-class memory
This causes unneeded complexity and lower performance for SCM, ... AFS [92] provides close-to-open semantics: writes are pushed to the server.
Read more >
The Google File System - Cornell CS
We have seen problems caused by application ... includes all mutations before the switch. ... The client pushes the data to all the...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found