volta icon indicating copy to clipboard operation
volta copied to clipboard

volta-shim v2.0.x crashes on macOS 14.6.1

Open cthompson-avb opened this issue 1 year ago • 2 comments

I am running macOS 14.6.1 on an Apple M2 Max.

I downloaded the v2.0.0 and v2.0.1 macos releases from the Releases tab.

The executables volta and volta-migrate work. When I run volta-shim (either directly or through the symlink), I get the error:

zsh: killed ./volta-shim

or using fish as my shell, I get the error

fish: Job 1, './volta-shim' terminated by signal SIGKILL (Forced quit)

This error happens with both v2.0.0 and v2.0.1.

For reference, here at the sha256 hashes of the tested files:

1a3e3eb2dfe3ae04512f54a9d1934681e7a4bd72416bf9d13c5e6e8f12aa7712  volta-shim v2.0.0
5e65a74750bf191fd17b038602fc1d74a0207f65c833f081baad48af7e4b184b  volta-shim v2.0.1

cthompson-avb avatar Aug 21 '24 17:08 cthompson-avb

Hi @cthompson-avb, that's very strange! I have the same macOS version (even an M2 Max), and the same SHA256 hash for volta-shim v2.0.1 and I'm not seeing anything like that.

If you have a chance, can you share your PATH environment variable (feel free to redact anything sensitive, of course!)? Also, if you do export VOLTA_LOGLEVEL=debug and then run the shim, does it show any additional output?

charlespierce avatar Aug 21 '24 20:08 charlespierce

I was having the same issue as well. Tailing the OSX syslog told me there is something wrong with code signature for volta-shim

$ log stream | grep volta
2024-09-04 12:46:21.828817-0700 0x173301   Default     0x0                  0      0    kernel: proc 11651: load code signature error 2 for file "volta-shim"
2024-09-04 12:46:21.829087-0700 0x173302   Default     0x0                  0      0    kernel: (AppleSystemPolicy) ASP: Unable to apply provenance sandbox: 268451845, 11651, /Users/ram-g-rao/.volta/bin/volta-shim
2024-09-04 12:46:21.829170-0700 0x173302   Default     0x0                  0      0    kernel: volta-shim[11651] Corpse allowed 1 of 5
2024-09-04 12:46:21.857160-0700 0x1732fe   Default     0x0                  1056   0    ReportCrash: Formulating fatal 309 report for corpse[11651] volta-shim
2024-09-04 12:46:21.860287-0700 0x1732fe   Default     0x0                  1056   0    ReportCrash: no MetricKit for process volta-shim type 309 bundleId (null)

When running a binary for the first time, OSX will check the code signature of the binary and if the binary is not signed by an apple identified developer, OSX will prompt the user to explicitly give permission to run the binary. Somehow I missed to give the explicit permission when I ran the volta shim for the first time. All the subsequent runs would just kept getting killed by OSX without a prompt. To force OSX to prompt me again, I had to delete the existing volta-shim binary and replace it with a freshly downloaded copy. Running the volta-shim would prompt you with permission to run and on approval things started to work again. 🙌

akhilstanis avatar Sep 04 '24 20:09 akhilstanis

I was having the same issue as well. Tailing the OSX syslog told me there is something wrong with code signature for volta-shim

$ log stream | grep volta
2024-09-04 12:46:21.828817-0700 0x173301   Default     0x0                  0      0    kernel: proc 11651: load code signature error 2 for file "volta-shim"
2024-09-04 12:46:21.829087-0700 0x173302   Default     0x0                  0      0    kernel: (AppleSystemPolicy) ASP: Unable to apply provenance sandbox: 268451845, 11651, /Users/ram-g-rao/.volta/bin/volta-shim
2024-09-04 12:46:21.829170-0700 0x173302   Default     0x0                  0      0    kernel: volta-shim[11651] Corpse allowed 1 of 5
2024-09-04 12:46:21.857160-0700 0x1732fe   Default     0x0                  1056   0    ReportCrash: Formulating fatal 309 report for corpse[11651] volta-shim
2024-09-04 12:46:21.860287-0700 0x1732fe   Default     0x0                  1056   0    ReportCrash: no MetricKit for process volta-shim type 309 bundleId (null)

When running a binary for the first time, OSX will check the code signature of the binary and if the binary is not signed by an apple identified developer, OSX will prompt the user to explicitly give permission to run the binary. Somehow I missed to give the explicit permission when I ran the volta shim for the first time. All the subsequent runs would just kept getting killed by OSX without a prompt. To force OSX to prompt me again, I had to delete the existing volta-shim binary and replace it with a freshly downloaded copy. Running the volta-shim would prompt you with permission to run and on approval things started to work again. 🙌

I have been reinstall volta for twice, but still don't have see any permission request, it seems like still will be crash next time.

EsunR avatar Oct 29 '24 03:10 EsunR

I was wondering if there’s any plan to address this issue. After allowing volta-shim in privacy settings, it still gets killed after an OS reboot, meaning I have to reinstall volta-shim every time.

junseinagao avatar Nov 13 '24 07:11 junseinagao

I was wondering if there’s any plan to address this issue. After allowing volta-shim in privacy settings, it still gets killed after an OS reboot, meaning I have to reinstall volta-shim every time.

Try this:

cd ~/.volta/bin
cp volta-shim volta-shim_bac
rm volta-shim
cp volta-shim_bac volta-shim

This may seem silly, but it worked for me and is easier than reinstalling.

EsunR avatar Nov 13 '24 07:11 EsunR

@EsunR

Thanks! I saved the script as a one-liner and now call it from Raycast.

junseinagao avatar Nov 13 '24 08:11 junseinagao

I don’t think there’s anything Volta itself can do about this unless we go out of our way to sign it, which we will not likely be doing, for a couple reasons:

  1. We’d need to set up CI and get an Apple dev account configured for it.
  2. It is not actually something you usually need to do, because usually this kind of thing is allowed at the level of the terminal emulator in which it is running, rather than a per-tool basis.

That said, you should be able to both check and, if necessary, fix the quarantining attribute on it with xattr; see this Stack Overflow answer for more details.

chriskrycho avatar Nov 22 '24 20:11 chriskrycho