itchio / butler

🎩 Command-line itch.io helper
MIT License
745 stars 52 forks source link

Exit code 0xffffffff (-1) for (butler) / Segmentation fault on command-line run #189

Closed hsandt closed 4 years ago

hsandt commented 5 years ago

Butler v15.12.0

UPDATE: itch.io was installing bleeding-edge by default on Linux

When running butler from itch.io, I get:

Exit code 0xffffffff (-1) for (butler)

and from the command-line:

Segmentation fault

I cannot copy the full log (only itch.io shows more info than "Segmentation Fault", but the app prevents text highlighting) but the report should have been to the developers since I checked the box at the bottom (on the screenshot, in German, it says I'm sending the report for bug resolution). I'm still opening this issue to follow the resolution.

image

hsandt commented 5 years ago

I noticed 2 things:

  1. itch.io app seems to offer all versions of butler. But in practice, when you click on any download button on Ubuntu, you only have the choice between butler linux 64-bit (bleeding-edge) and linux 32-bit (bleeding-edge). So I can't get stable even if I want to from inside the app.

image

The linux 64-bit (bleeding-edge) was crashing for me, it was the one that showed the issue above. I downloaded linux 32-bit (bleeding-edge), still inside the itch.io app, and it worked fine. Then I redownloaded linux 64-bit (bleeding-edge) and this time it worked fine.

  1. I went to the website to download directly the files, and all versions (32/64, stable and bleeding-edge) work.

So my conclusion is that:

Version sum-up

64-bit bleeding-edge head, built on Apr 30 2019 @ 17:06:59, ref 55793fadd2a5b161a46c12b5faac8aee1b5ac6b6

64-bit stable v15.12.0, built on Apr 27 2019 @ 01:40:42, ref 4baabbcdc78269e996c3eaef3ec8da4c72c29aac

I installed butler for the NaNoRenO around April 1st, so the crash and fix must have happened in April, although I don't see anything matching by looking at the commit titles.

Request update

Since the original crash was fixed with the last bleeding-edge, I will transform my request (maybe I should open a new issue...):

  1. Allow to download stable versions of butler from Linux itch.io app
  2. Make the upgrade process from itch.io more transparent so we know which version we have and how to upgrade without downloading a new file (every time I re-download butler it will create a folder "butler 2", "butler 3", etc.).

Request 1 seems to be a missing config on the butler entry on itch.io.

Request 2 is on itch.io so I may repost it on https://github.com/itchio/itch/issues instead, unless there is already a similar issue. I search at "upgrade app" but don't see anything matching; tell me if you know an issue about the question of downloading copy vs upgrading + how to show currently installed versions.

I'll wait for developers' input so I know if I should rather close this issue and respawn it as Request 1, or just change its title.

fasterthanlime commented 5 years ago

Well, I'm confused about a few things.

I'm writing this from Ubuntu 19.04 64-bit, here's what I see if I try to install butler from the app:

image

You can also see that both the stable and the bleeding-edge version are tagged properly here: https://fasterthanlime.itch.io/butler

Installing stable works great:

image

(So does launching it from the itch app, but that's not very useful, since it's a command-line tool).

Installing bleeding-edge works great too:

image

You'd end up with butler, butler 2, butler 3 directories is if you installed several channels in parallel, like butler 64-bit stable and butler 64-bit bleeding-edge, that's just how the itch app names install folders (it has nothing to do with versions). I suppose another way is if there was another existing folder named butler that wasn't managed by the app in first place.

Upgrades to either stable or bleeding-edge are managed automatically by the app (it needs to be open though), you can find out which version you have in manage:

image

image

image


So, I'm not sure how you ended up with a butler binary that crashes with 0xFFFFFFFF :( All butler binaries pushed to itch.io go through unit and integration tests (on the final, release binary), so it's unlikely a bug that slipped into a few releases, and it's not fundamentally incompatible with your system either (since you can run recent builds), so my money is on a corrupted executable (maybe butler's own self-upgrade mechanism malfunctioning? although I've never had any reports of that).

fasterthanlime commented 5 years ago

Just thought of something re this screenshot:

I can think of one way to obtain that:

image

image

For example, right now, I have 64-bit bleeding-edge installed (from the previous comment), so it's excluded from that list (because it's already installed):

image