Skip to content

[Bug]: Eask incompatible with bug-reference-prog-mode #39

@Phundrak

Description

@Phundrak

I encounter a git error when running eask install-deps on https://github.com/rejeep/f.el/tree/feature/eask.

Expected behaviour

When executing eask install-deps, I expect the output to look like this:

Details
$ eask install-deps
Running Eask in the development environment
Press Ctrl+C to cancel.

Executing script inside Emacs...

✓ Checking Emacs version 29.0.50... done!
✓ Checking system gnu/linux... done!
✓ Try constructing the package-descriptor (test-project.el)... succeeded! 
✓ Loading Eask file in /tmp/eask-test/test-project/Eask... done!

Installing 2 package dependencies...
Loading package information... done ✓
  - Installing s (20210616.619)... done ✓
  - Installing dash (20220608.1931)... done ✓
(Total of 2 dependencies installed, 0 skipped)

I get this output using Emacs 29.0.50 with nativecomp (built on Arch Linux with the PKGBUILD mentioned below) using this test project, generated with eask create test-project.

Actual behaviour

It seems git fails with the error code 2. Here are the logs of the command as shown in the terminal.

Logs with Emacs 29.0.50 with nativecomp
$ eask install-deps
Running Eask in the development environment
Press Ctrl+C to cancel.

Executing script inside Emacs...

✓ Checking Emacs version 29.0.50... done!
✓ Checking system gnu/linux... done!
✓ Try constructing the package-descriptor (f.el)... succeeded! 
✓ Loading Eask file in /home/phundrak/.config/emacs/straight/repos/f.el/Eask... done!

Installing 2 package dependencies...
Loading package information... done ✓
  - Installing s (20210616.619)... Failed (status 2): git --no-pager remote get-url upstream .
Fatal error 11: Segmentation fault
Backtrace:
emacs(emacs_backtrace+0x54)[0x564d62749724]
emacs(terminate_due_to_signal+0x96)[0x564d625e3a8e]
emacs(+0x853ef)[0x564d625e43ef]
emacs(+0x33e5d9)[0x564d6289d5d9]
/usr/lib/libc.so.6(+0x3e8e0)[0x7f24b9e3e8e0]
/usr/lib/libc.so.6(free+0x1e)[0x7f24b9e9c89e]
emacs(Fapply+0x16c)[0x564d627d4b0c]
/usr/lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/vc-git-5d6756dc-76d3e64f.eln(F76632d6769742d636f6d6d616e64_vc_git_command_0+0x1ed)[0x7f24b2537d0d]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/vc-git-5d6756dc-76d3e64f.eln(F76632d6769742d7265706f7369746f72792d75726c_vc_git_repository_url_0+0x126)[0x7f24b25327d6]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
emacs(Fapply+0x112)[0x564d627d4ab2]
/usr/lib/emacs/29.0.50/x86_64-pc-linux-gnu/../../../../bin/../lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/preloaded/vc-hooks-cfa0878e-843d5f2f.eln(F76632d63616c6c2d6261636b656e64_vc_call_backend_0+0x176)[0x7f24b4447846]
emacs(exec_byte_code+0x52f)[0x564d6281bf6f]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
emacs(+0x277533)[0x564d627d6533]
emacs(Fmapc+0x51)[0x564d627d67d1]
emacs(exec_byte_code+0x52f)[0x564d6281bf6f]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/bug-reference-79735dad-18d45588.eln(F6275672d7265666572656e63652d7472792d73657475702d66726f6d2d7663_bug_reference_try_setup_from_vc_0+0xf0)[0x7f24b2592050]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
emacs(run_hook_with_args+0xdb)[0x564d627cd08b]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/bug-reference-79735dad-18d45588.eln(F6275672d7265666572656e63652d2d72756e2d6175746f2d7365747570_bug_reference__run_auto_setup_0+0x171)[0x7f24b2593881]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/bug-reference-79735dad-18d45588.eln(F6275672d7265666572656e63652d70726f672d6d6f6465_bug_reference_prog_mode_0+0x232)[0x7f24b2593f22]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/x86_64-pc-linux-gnu/../../../../bin/../lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/preloaded/files-1e8937b2-f66989eb.eln(F6861636b2d6f6e652d6c6f63616c2d7661726961626c65_hack_one_local_variable_0+0x482)[0x7f24b463cf22]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/x86_64-pc-linux-gnu/../../../../bin/../lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/preloaded/files-1e8937b2-f66989eb.eln(F6861636b2d6c6f63616c2d7661726961626c65732d6170706c79_hack_local_variables_apply_0+0xf5)[0x7f24b463b7d5]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/x86_64-pc-linux-gnu/../../../../bin/../lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/preloaded/files-1e8937b2-f66989eb.eln(F6861636b2d6c6f63616c2d7661726961626c6573_hack_local_variables_0+0x6b8)[0x7f24b463a7f8]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/x86_64-pc-linux-gnu/../../../../bin/../lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/preloaded/files-1e8937b2-f66989eb.eln(F6e6f726d616c2d6d6f6465_normal_mode_0+0x3c8)[0x7f24b4636a28]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/x86_64-pc-linux-gnu/../../../../bin/../lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/preloaded/files-1e8937b2-f66989eb.eln(F61667465722d66696e642d66696c65_after_find_file_0+0x18e)[0x7f24b4635c6e]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/x86_64-pc-linux-gnu/../../../../bin/../lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/preloaded/files-1e8937b2-f66989eb.eln(F66696e642d66696c652d6e6f73656c6563742d31_find_file_noselect_1_0+0x845)[0x7f24b4635535]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
/usr/lib/emacs/29.0.50/x86_64-pc-linux-gnu/../../../../bin/../lib/emacs/29.0.50/native-lisp/29.0.50-303f51a3/preloaded/files-1e8937b2-f66989eb.eln(F66696e642d66696c652d6e6f73656c656374_find_file_noselect_0+0x682)[0x7f24b4633dd2]
emacs(Ffuncall+0xfe)[0x564d627d0e8e]
...

/usr/lib/node_modules/@emacs-eask/eask/src/util.js:129
      throw 'Exit with code: ' + code;
      ^
Exit with code: null
(Use `node --trace-uncaught ...` to show where the exception was thrown)

Node.js v18.3.0

I also get this result on Emacs 28.1, both this Emacs version and 29.0.50 compiled with nativecomp (the package emacs-nativecomp on Arch Linux for 28.1, built with this PKGBUILD for 29.0.50).

The output changes when replacing emacs-nativecomp with plain emacs (without nativecomp). It technically doesn’t errors out, although it can look like it.

Logs with Emacs 28.1 without nativecomp
$ eask install-deps
Running Eask in the development environment
Press Ctrl+C to cancel.

Executing script inside Emacs...

✓ Checking Emacs version 28.1... done!
✓ Checking system gnu/linux... done!
✓ Try constructing the package-descriptor (f.el)... succeeded! 
✓ Loading Eask file in /home/phundrak/.config/emacs/straight/repos/f.el/Eask... done!

Installing 2 package dependencies...
Loading package information... done ✓
  - Installing s (20210616.619)... Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
done ✓
  - Installing dash (20220608.1931)... Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
Failed (status 2): git --no-pager remote get-url upstream .
done ✓
(Total of 2 dependencies installed, 0 skipped)

Steps to reproduce

  1. Install Emacs, with nativecomp for the first logs and without for the second logs.
  2. Clone https://github.com/rejeep/f.el
  3. Checkout branch feature/eask (https://github.com/rejeep/f.el/tree/feature/eask)
  4. Run eask install-deps
  5. Ta-dah! Either a git error and an Emacs segfault, or a couple of git errors but somehow a success?

I can reproduce these results with both machines I have on hand, both running an up-to-date version of Arch Linux with kernel version 5.18.2, one using linux-zen, the other using stock kernel. And on both machines, the test project mentioned at the top of this bug report behaves normally. I gave it the same dependencies, but somehow the results are different.

Eask version

$ eask --version
0.6.31

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions