GNU bug report logs - #30182
27.0.50; Crash when doing mouse-over on modeline

Previous Next

Package: emacs;

Reported by: Sujith <m.sujith <at> gmail.com>

Date: Sat, 20 Jan 2018 06:27:02 UTC

Severity: normal

Found in version 27.0.50

Done: martin rudalics <rudalics <at> gmx.at>

Bug is archived. No further changes may be made.

Full log


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

From: martin rudalics <rudalics <at> gmx.at>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: m.sujith <at> gmail.com, 30182 <at> debbugs.gnu.org
Subject: Re: bug#30182: Update
Date: Wed, 24 Jan 2018 09:38:49 +0100
>>   >   . Could the problem be caused by mode-line-default-help-echo being a
>>   >     function now, not just a string?  Maybe try to revert only that
>>   >     portion of the changeset, and see if that helps.
>>
>> It can be made into a string and the OP confirmed already that doing
>> that fixes things.
>
> He did?  If so, I missed that.  I thought he only said that disabling
> the part that runs the timer in the :eval form prevents the problem.

I asked the OP to

  Just to eliminate one possible cause: Does the bug disappear when you
  customize `mode-line-default-help-echo' to the default value of the
  'string' alternative?

and he answered that

  Yes, if that is done, then the crash doesn't happen.

> So if using a string instead of a function the returns a string solves
> the problem, then I guess we should try and understand why a function
> causes the problem.

Apparently because evaluating that function creates a timer.

>> The OP already checked that wrapping `mode-line-default-help-echo'
>> into a condition-case does not help.
>
> That doesn't surprise me, because safe_call1 alread runs the function
> inside condition-case.  But catching an error might not be all that
> needs to be done to undo the damage, so I think it is important to
> establish whether there is indeed an error signaled by that function.

w3m.el, when creating a buffer for its purposes, does

  (setq mode-line-buffer-identification
	`(
[...]
	  (w3m-current-process
	   "Loading..." ,(if (fboundp 'format-mode-line)
			     '(:eval (w3m-modeline-title))

where the latter contains

(defun w3m-modeline-title ()
[...]
				(condition-case nil
				    (format-mode-line mode-line-format 1)
				  (error "")))
[...]
	    (run-at-time 0.5 nil
			 (lambda (buffer)
			   (when (buffer-live-p buffer)
			     (with-current-buffer buffer
			       (setq w3m-modeline-title-timer nil))))
			 (current-buffer)))))))


But I haven't been able yet to trigger the crash from here.

martin




This bug report was last modified 7 years and 108 days ago.

Previous Next


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