Subject: bug#16995: 24.3; CPU usage spikes to 100% for minutes at a time

From: Eli Zaretskii <[email-masked]>
Date: Thu, 13 Mar 2014 05:49:14 +0200

> From: Andrew Beekhof <[email-masked]>
> Date: Thu, 13 Mar 2014 11:30:15 +1100
> Cc: [email-masked]
> 
> > The backtrace you posted indicates that Emacs is in garbage
> > collection.  To see if this is indeed the cause of those "lockups",
> > could you please customize garbage-collection-messages to a non-nil
> > value, and then see if every time Emacs locks up there's a message in
> > the echo area announcing GC?
> 
> It took about 2 hours of solid editing to hit it again this morning, but eventually I did.
> 
> For the first while I saw 'Garbage collecting...done', with the 'done' part flashing.
> 
> Then it switched to 'Garbage collecting...'
> 
> At some point I must have hit C-l (goto-line) because after I came back from making breakfast (I wasn't exaggerating when I said 'minutes') it was prompting for a line number.
> Pressing C-g (cancel) at this point resulted in the buffer flashing between displaying 'Quit' and 'Garbage collecting...'
> 
> After it stopped doing this, I used the pointer to move the cursor which got me back to the 'Garbage collecting...' phase followed by 'Garbage collecting...done', with the 'done' part flashing again.
> 
> Top says:
> 
> 22971 beekhof   20   0  658092  61636  15584 R  99.1  0.8  37:03.28 emacs                                                                                                                                                                                                                                         
> 
> (note that its still the same process from yesterday)
> 
> 
> If I now switch to a .c file, things appear normal.
> Switching back to the .py file and doing anything results in more garbage collection.

So I guess the question now becomes why does Python mode conses so
many Lisp objects that it triggers GC so frequently.