GNU bug report logs - #62741
30.0.50; Eglot jdtls project test: pass on emacs-29, fail on master

Previous Next

Package: emacs;

Reported by: Basil Contovounesios <contovob <at> tcd.ie>

Date: Sun, 9 Apr 2023 17:48:02 UTC

Severity: minor

Found in version 30.0.50

Fixed in version 30.1

Done: Basil Contovounesios <contovob <at> tcd.ie>

Bug is archived. No further changes may be made.

Full log


Message #24 received at 62741-done <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Basil Contovounesios <contovob <at> tcd.ie>
Cc: Dmitry Gutov <dmitry <at> gutov.dev>, 62741-done <at> debbugs.gnu.org
Subject: Re: bug#62741: 30.0.50; Eglot jdtls project test: pass on emacs-29,
 fail on master
Date: Mon, 10 Apr 2023 10:51:08 +0100
On Mon, Apr 10, 2023 at 10:11 AM Basil Contovounesios <contovob <at> tcd.ie> wrote:
>
> close 62741 30.1
> severity 62741 minor
> quit
>
> João Távora [2023-04-10 09:17 +0100] wrote:
>
> > Pasting the backtrace here for Dmitry to have a look.
> >
> > Test eglot-test-eclipse-connect backtrace:
> >   string-match("\0" nil 0)
> >   split-string(nil "\0" t)
> >   project--vc-list-files("/tmp/eglot--fixturernYTOR/project/" Git nil)
> >   #f(compiled-function (dir) #<bytecode -0xa5be45661654310>)("/tmp/eglot--fixturernYTOR/project/")
> >   mapcan(#f(compiled-function (dir) #<bytecode -0xa5be45661654310>) ("/tmp/eglot--fixturernYTOR/project/"))
> >   #f(compiled-function (project &optional dirs) #<bytecode 0x114f4cd06dfc2088>)((vc Git "/tmp/eglot--fixturernYTOR/project/"))
> >   apply(#f(compiled-function (project &optional dirs) #<bytecode 0x114f4cd06dfc2088>) (vc Git "/tmp/eglot--fixturernYTOR/project/") nil)
> >   project-files((vc Git "/tmp/eglot--fixturernYTOR/project/"))
> >
> > It would seem that the problem here is there are no files versioned yet,
> > so this expression in project--vc-list-files
> >
> >    (apply #'vc-git--run-command-string nil "ls-files" args)
> >
> > Returns nil.
> >
> > But I cannot reproduce this locally.
>
> It's easy to reproduce the backtrace without Eglot, and it happens both
> on master and emacs-29.  From emacs -Q:
>
>   (let ((dir (make-nearby-temp-file "my-" t)))
>     (unwind-protect
>         (let ((default-directory (file-name-as-directory dir)))
>           (make-directory ".git")
>           (make-empty-file "file") ; Optional.
>           (require 'project)
>           (project-files (project-current)))
>       (delete-directory dir t)))
>
>   C-x C-e

This indeed breaks, but it doesn't break if you replace the
'make-directory' with '(shell-command "git init")'.

And yet, when you tried that in Eglot's CI, it seem it _did_
break with the same error.  So I don't know what's going on.

João




This bug report was last modified 2 years and 41 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.