Subject: bug#32351: assq_no_quit: circular loop (default, line-number, line-number-current-line)

From: Keith David Bershatsky <[email-masked]>
Date: Fri, 03 Aug 2018 08:17:30 -0700

Thank you, Eli, for looking at issue #32351.

There is no error message, just a never-ending loop.  Source code line numbers in fns.c match up with 07/07/2018 master branch bearing commit 98463bed07ecc9057094928ffdc2321eaaf3ab52.  This is my working build with feature requests (crosshairs and multiple fake cursors).  No reversions have been made to fns.c.

The general circumstances with a full configuration are as follows:

1.  Original single window in a GUI frame with native line numbers and truncate-lines non-nil.

2.  Try to create/display a new window to the right that takes up approximately 95 percent of the overall frame; e.g., my custom 12 month rotating calendar.  [A workaround would be "well, if it hurts, then don't do that".  However, it would be nice to come up with a programmatic solution to avoid a never-ending loop.]

3.  Emacs tries to display line numbers on the little sliver of a tall/razor-thin window.  However, redisplay never finishes so the new window is not yet displayed and all that is visible to the naked eye is the full-size original window.

4.  assq_no_quit goes into a forever never-ending loop.

5.  C-z in the terminal to break with gdb.

6.  Step:  while (CONSP (list)

7.  Step:  list = XCDR (list);

8.  Repeat stepping to infinity; e.g., step 500 yields the same results as paragraph 6/7 above.

I can reproduce this on my end every time, so if there is anything you would like to see with gdb, I'd be happy to print.  However, I may need some guidance regarding how to do it, since I just know the basics such as pp OBJECT, print, step and so forth.  I anticipate having some time in the evenings over the weekend and can work on trying to come up with an Emacs -Q recipe.

Keith

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

> Date: [08-02-2018 23:45:37] <03 Aug 2018 09:45:37 +0300>
> From: Eli Zaretskii <[email-masked]>
> To: Keith David Bershatsky <[email-masked]>
> CC: [email-masked]
> Subject: Re: bug#32351: assq_no_quit: circular loop (default, line-number, line-number-current-line)
> 
> > Date: Thu, 02 Aug 2018 19:10:12 -0700
> > From: Keith David Bershatsky <[email-masked]>
> >
> > I apologize in advance for "not yet" having a concise recipe from Emacs -Q.  I can work on creating a recipe in the coming days/weeks/months.  I am able to produce this reliably in Emacs master branch, using a full user configuration.  Here are the relevant lines from LIST to the assq_no_quit function.
> 
> Where does the error message cited in the subject come from?  It
> doesn't come from assq_no_quit, does it?
> 
> Also, your line numbers don't match the current master (fns.c:1487 is
> not in assq_no_quit), so I cannot be sure what local changes do you
> have that are involved.
> 
> And finally, yes, a recipe which at least states what are the
> customizations required to reproduce would be nice.
> 
> Thanks.