neovide: [MacOS Catalina 10.15.3] segmentation fault in release mode

When I run the target/release/neovide binary, I get either

neovide(57928,0x10b64ddc0) malloc: Incorrect checksum for freed object 0x7fe99c264870: probably modified after being freed.
Corrupt value: 0x7fe99c264550
neovide(57928,0x10b64ddc0) malloc: *** set a breakpoint in malloc_error_break to debug

or just

[1]    58061 segmentation fault  ./neovide

It works fine when I run the debug one (target/debug/neovide).

Same happens when I use cargo run and cargo run --release.

I believe the same issue was originally reported here https://github.com/Kethku/neovide/issues/73#issuecomment-584540091

Tested on the latest master (67468b2).

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 6
  • Comments: 60 (32 by maintainers)

Most upvoted comments

Narrowed it down a bit further:

  • git co 971bb3d
  • cargo run --release (works fine)
  • cargo update -p skia-safe. Output:
    Updating crates.io index
    Updating skia-bindings v0.23.2 -> v0.26.1
    Updating skia-safe v0.23.2 -> v0.26.1
    
  • cargo run --release (seg fault)

I can’t fix this issue myself as I don’t have a mac. Sorry folks

This commit https://github.com/Kethku/neovide/commit/1853652085d39ef5f63096b875453ea1daa2a79e breaks the release binary on MacOS. That commit only bumps versions of number of dependencies. You have to keep the following change from that commit though https://github.com/Kethku/neovide/commit/1853652085d39ef5f63096b875453ea1daa2a79e#diff-d2ede298d9a75c849170d6ef285eda1eR2103 because otherwise it will fail with the following error:

➜  neovide (master) ✗ cargo run --release
    Updating git repository `https://github.com/filnet/winit`
error: failed to load source for a dependency on `winit`

Caused by:
  Unable to update https://github.com/filnet/winit?branch=fix-panic-at-redraw-event-in-non-redraw-phase#1ddd984b

Caused by:
  revspec '1ddd984bdbec45e5345632e0999851c47f2b372d' not found; class=Reference (4); code=NotFound (-3)

For a better visualisation, please take a look at my fork -> https://github.com/mdudzinski/neovide/tree/issue_126. This commit reverts the broken commit but won’t compile because of the above error: https://github.com/mdudzinski/neovide/commit/77fafcbef5aab424513d19b97435284bd49bd1f0 This commit brings back the winit change in the Cargo.lock file so the app can compile https://github.com/mdudzinski/neovide/commit/5ae2a7078ad2b26de8bb14a38e46545d16373f1b

So one of the other updated dependencies from https://github.com/Kethku/neovide/commit/1853652085d39ef5f63096b875453ea1daa2a79e has broken the MacOS release binary.

I hope that helps.

ARG. I’m at a loss again

I get this issue on macOS Mojave 10.14.6

At this point I think its out of my hands. Seems like its not effecting everyone on MacOs, so until we can figure out the root of the issue, I’m not sure we can move forward on figuring out a fix. Luckily the performance even in debug mode isn’t terrible, so until then using debug builds can work… @jdm Thanks so much for the attempt at reproing.

Ah yes youre the issue op. My bad

As mentioned above, I am working on a port to sdl which is looking promising. I’m hoping to merge it in the coming days

Ok interesting. Then I think the fix is for me to hurry up and finish the move to sdl instead of winit which should be much more stable. In the meantime I will link to this issue in the upstream winit PR so they are aware that something broke. Thanks so much for doing the investigation! It helps me out a ton

Sent with GitHawk