GNU bug report logs - #41465
28.0.50 (but also earlier versions); etags asserion error (with too many files?)

Previous Next

Package: emacs;

Reported by: Gregor Zattler <telegraph <at> gmx.net>

Date: Fri, 22 May 2020 19:33:01 UTC

Severity: normal

Found in version 28.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 41465 in the body.
You can then email your comments to 41465 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#41465; Package emacs. (Fri, 22 May 2020 19:33:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Gregor Zattler <telegraph <at> gmx.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 22 May 2020 19:33:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gregor Zattler <telegraph <at> gmx.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.0.50 (but also earlier versions); etags asserion error (with too
 many files?)
Date: Fri, 22 May 2020 21:31:57 +0200
Dear emacs developers,

I get an assertion error when executing the following line
(from a cron job of mine):

grfz <at> no:~/src$ find ~/src -type f -print0 | egrep -zZ '(\.el|\.c|\.h)(\.gz)?$' | xargs -0r etags
etags: etags.c:1987: pfnote: Assertion `name == NULL || name[0] != '\0'' failed.
xargs: etags: terminated by signal 6
125 (master *) grfz <at> no:~/src$

This happens with etags from debian buster, as with etags
build from emacs-27 branch of emacs git repo, as with etags build
from feature/native-comp branch.


Under ~/src there is also the linux kernel git repo.  There
is no assertion error if I filter it out:

$ find . -type f -print0 | egrep -vzZ linux | egrep -zZ '(\.el|\.c|\.h)(\.gz)?$' | xargs -0r etags
0 (master *) grfz <at> no:~/src$

There is also no assertion error if I filter for .el files
only:

125 (master *) grfz <at> no:~/src$ find ~/src -type f -print0 | egrep -zZ '(\.el)(\.gz)?$' | xargs -0r etags
0 (master *) grfz <at> no:~/src$


Therefore I assume this somehow is related to the number of files.


Ciao; Gregor
--
 -... --- .-. . -.. ..--.. ...-.-





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41465; Package emacs. (Fri, 22 May 2020 21:40:02 GMT) Full text and rfc822 format available.

Message #8 received at 41465 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Gregor Zattler <telegraph <at> gmx.net>, 41465 <at> debbugs.gnu.org
Subject: Re: bug#41465: 28.0.50 (but also earlier versions); etags asserion
 error (with too many files?)
Date: Sat, 23 May 2020 00:38:58 +0300
Hi!

On 22.05.2020 22:31, Gregor Zattler wrote:
> Dear emacs developers,
> 
> I get an assertion error when executing the following line
> (from a cron job of mine):
> 
> grfz <at> no:~/src$ find ~/src -type f -print0 | egrep -zZ '(\.el|\.c|\.h)(\.gz)?$' | xargs -0r etags
> etags: etags.c:1987: pfnote: Assertion `name == NULL || name[0] != '\0'' failed.
> xargs: etags: terminated by signal 6
> 125 (master *) grfz <at> no:~/src$

Looking at the code, it seems more likely the problem is because we're 
failing to parse some particular piece of code.

So if you can determine which file fails to parse, and send us an 
example, that should help fix it.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41465; Package emacs. (Sat, 23 May 2020 08:35:01 GMT) Full text and rfc822 format available.

Message #11 received at 41465 <at> debbugs.gnu.org (full text, mbox):

From: Gregor Zattler <telegraph <at> gmx.net>
To: Dmitry Gutov <dgutov <at> yandex.ru>, 41465 <at> debbugs.gnu.org
Subject: Re: bug#41465: 28.0.50 (but also earlier versions); etags asserion
 error (with too many files?)
Date: Sat, 23 May 2020 10:34:15 +0200
[Message part 1 (text/plain, inline)]
Hi Dmitry,
* Dmitry Gutov <dgutov <at> yandex.ru> [2020-05-23; 00:38]:
> On 22.05.2020 22:31, Gregor Zattler wrote:
>> etags: etags.c:1987: pfnote: Assertion `name == NULL || name[0] != '\0'' failed.
>> xargs: etags: terminated by signal 6
>> 125 (master *) grfz <at> no:~/src$
>
> Looking at the code, it seems more likely the problem is because we're
> failing to parse some particular piece of code.
>
> So if you can determine which file fails to parse, and send us an
> example, that should help fix it.

OK, your right, I did:

0 (master=) grfz <at> no:~/src/linux$ find . -type f -print0 | egrep -zZ -- '(\.el|\.c|\.h)(\.gz)?$' | xargs -0IXXXXX sh -c "etags XXXXX || echo XXXXX"
etags: etags.c:1987: pfnote: Assertion `name == NULL || name[0] != '\0'' failed.
Aborted
./sound/soc/codecs/cs43130.c
etags: etags.c:1987: pfnote: Assertion `name == NULL || name[0] != '\0'' failed.
Aborted
./include/net/mac80211.h
0 (master=) grfz <at> no:~/src/linux$

I attach these two files.


Thanks for looking into this; Gregor
--
 -... --- .-. . -.. ..--.. ...-.-
[cs43130.c (application/octet-stream, attachment)]
[mac80211.h (application/octet-stream, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41465; Package emacs. (Sat, 23 May 2020 20:23:02 GMT) Full text and rfc822 format available.

Message #14 received at 41465 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Gregor Zattler <telegraph <at> gmx.net>, 41465 <at> debbugs.gnu.org
Subject: Re: bug#41465: 28.0.50 (but also earlier versions); etags asserion
 error (with too many files?)
Date: Sat, 23 May 2020 23:22:01 +0300
On 23.05.2020 11:34, Gregor Zattler wrote:
> I attach these two files.

Thank you. But I couldn't reproduce the error.

Do you get the same result if you run

  etags cs43130.c mac80211.h

?

Are you sure this executable came from the Emacs tree? If you have a 
checkout of that development tree, can you run it from there? E.g.

  path/to/emacs/lib-src/emacs cs43130.c mac80211.h

?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41465; Package emacs. (Sat, 23 May 2020 23:08:02 GMT) Full text and rfc822 format available.

Message #17 received at 41465 <at> debbugs.gnu.org (full text, mbox):

From: Gregor Zattler <telegraph <at> gmx.net>
To: Dmitry Gutov <dgutov <at> yandex.ru>, 41465 <at> debbugs.gnu.org
Subject: Re: bug#41465: 28.0.50 (but also earlier versions); etags asserion
 error (with too many files?)
Date: Sun, 24 May 2020 01:07:26 +0200
Hi Dmitry,
* Dmitry Gutov <dgutov <at> yandex.ru> [2020-05-23; 23:22]:
> On 23.05.2020 11:34, Gregor Zattler wrote:
>> I attach these two files.
>
> Thank you. But I couldn't reproduce the error.
>
> Do you get the same result if you run
>
>    etags cs43130.c mac80211.h
>
> ?
>
> Are you sure this executable came from the Emacs tree? If you have a
> checkout of that development tree, can you run it from there? E.g.
>
>    path/to/emacs/lib-src/emacs cs43130.c mac80211.h

I did it again:

0 (master *) grfz <at> no:~/.cron.daily$ ~/src/emacs/lib-src/etags ~/src/linux/sound/soc/codecs/cs43130.c
etags: etags.c:1988: pfnote: Assertion `name == NULL || name[0] != '\0'' failed.
Aborted
134 (master *) grfz <at> no:~/.cron.daily$ /usr/bin/etags ~/src/linux//include/net/mac80211.h
etags: etags.c:1987: pfnote: Assertion `name == NULL || name[0] != '\0'' failed.
Aborted
134 (master *) grfz <at> no:~/.cron.daily$


This also happens with the binary from debian buster 10.4 ,
therefore I don't think it is caused by my specific build
options, which anyway are:

CFLAGS='-g -O2 -fdebug-prefix-map=/home/grfz/src/emacs=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -fno-pie'

LDFLAGS='-Wl,-z,relro -no-pie'

CPPFLAGS='-Wdate-time -D_FORTIFY_SOURCE=2  '

./configure -C --prefix=/usr/local/stow/emacs-snapshot --with-file-notification=inotify --with-cairo --without-toolkit-scroll-bars --with-x-toolkit=gtk3 --with-sound=yes --without-gconf --with-mailutils --with-x=yes --enable-checking=yes --enable-check-lisp-object-type=yes --with-nativecomp


For me this assertion error is not a big problem since I now
exclude the linux src tree from the tags creation because of
emacs performance reasons.

Ciao; Gregor
--
 -... --- .-. . -.. ..--.. ...-.-





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41465; Package emacs. (Sun, 24 May 2020 01:45:01 GMT) Full text and rfc822 format available.

Message #20 received at 41465 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Gregor Zattler <telegraph <at> gmx.net>, 41465 <at> debbugs.gnu.org
Subject: Re: bug#41465: 28.0.50 (but also earlier versions); etags asserion
 error (with too many files?)
Date: Sun, 24 May 2020 04:43:25 +0300
On 24.05.2020 02:07, Gregor Zattler wrote:
> This also happens with the binary from debian buster 10.4 ,
> therefore I don't think it is caused by my specific build
> options, which anyway are:
> 
> CFLAGS='-g -O2 -fdebug-prefix-map=/home/grfz/src/emacs=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -fno-pie'
> 
> LDFLAGS='-Wl,-z,relro -no-pie'
> 
> CPPFLAGS='-Wdate-time -D_FORTIFY_SOURCE=2  '
> 
> ./configure -C --prefix=/usr/local/stow/emacs-snapshot --with-file-notification=inotify --with-cairo --without-toolkit-scroll-bars --with-x-toolkit=gtk3 --with-sound=yes --without-gconf --with-mailutils --with-x=yes --enable-checking=yes --enable-check-lisp-object-type=yes --with-nativecomp
> 
> 
> For me this assertion error is not a big problem since I now
> exclude the linux src tree from the tags creation because of
> emacs performance reasons.

Thanks you for that addition.

Indeed, when I configure Emacs with

  CFLAGS='-g -O2' --enable-checking

etags does abort with assertion errors you described.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41465; Package emacs. (Sun, 24 May 2020 14:19:02 GMT) Full text and rfc822 format available.

Message #23 received at 41465 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Gregor Zattler <telegraph <at> gmx.net>
Cc: 41465 <at> debbugs.gnu.org
Subject: Re: bug#41465: 28.0.50 (but also earlier versions); etags asserion
 error (with too many files?)
Date: Sun, 24 May 2020 17:18:07 +0300
Hi Gregor,

Please keep the bug email in Cc.

On 24.05.2020 09:58, Gregor Zattler wrote:
> Hi Dmitry,
> * Dmitry Gutov <dgutov <at> yandex.ru> [2020-05-24; 04:43]:
>> Thanks you for that addition.
>>
>> Indeed, when I configure Emacs with
>>
>>     CFLAGS='-g -O2' --enable-checking
>>
>> etags does abort with assertion errors you described.
> 
> arghs, my statement "also happens with the binary from
> debian buster 10.4" was wrong.  I tested with /usr/bin/etags
> but forgot I that wrestled my emacs-27 build into the
> alternatives system of debian.
> 
> I tested again with
> 
> 0 (master *) grfz <at> no:~$ /usr/bin/etags.emacs ~/src/linux//include/net/mac80211.h
> 0 (master *) grfz <at> no:~$ /usr/bin/etags.emacs ~/src/linux/sound/soc/codecs/cs43130.c
> 
> and now there are no assertion errors with these files.

Makes sense.

> But shouldn't there also be no assertion errors with
> --enable-checking ?

There shouldn't be.

So it's a valuable bug report, just less urgent than we might have 
decided previously.

I'll let our developers who know etags better handle it from here.




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sun, 24 May 2020 15:05:02 GMT) Full text and rfc822 format available.

Notification sent to Gregor Zattler <telegraph <at> gmx.net>:
bug acknowledged by developer. (Sun, 24 May 2020 15:05:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 41465-done <at> debbugs.gnu.org, telegraph <at> gmx.net
Subject: Re: bug#41465: 28.0.50 (but also earlier versions);
 etags asserion error (with too many files?)
Date: Sun, 24 May 2020 18:04:42 +0300
> From: Dmitry Gutov <dgutov <at> yandex.ru>
> Date: Sun, 24 May 2020 04:43:25 +0300
> 
> > For me this assertion error is not a big problem since I now
> > exclude the linux src tree from the tags creation because of
> > emacs performance reasons.
> 
> Thanks you for that addition.
> 
> Indeed, when I configure Emacs with
> 
>    CFLAGS='-g -O2' --enable-checking
> 
> etags does abort with assertion errors you described.

Thanks, I applied the trivial band-aid to fix this on the emacs-27
branch.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 22 Jun 2020 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 359 days ago.

Previous Next


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