[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] still seeing semi-regular lockups

From: Eric Abrahamsen
Subject: Re: [O] still seeing semi-regular lockups
Date: Thu, 15 May 2014 18:43:44 +0800
User-agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.4.50 (gnu/linux)

Daimrod <address@hidden> writes:

> Eric Abrahamsen <address@hidden> writes:
>> Daimrod <address@hidden> writes:
>>> Bastien <address@hidden> writes:
>>>> Hi Eric,
>>>> Eric Abrahamsen <address@hidden> writes:
>>>>> After Nicolas made the last round of improvements to the caching
>>>>> mechanism I got far fewer hangs with Org, but they are still happening.
>>>>> Maybe once a day or so, on average, editing something in an Org buffer
>>>>> causes emacs to hang, and my fans to spin up, and there we are until I
>>>>> kill emacs.
>> [...]
>>> I have also semi-regular lockup with org-mode. I have opened a bug on
>>> debbugs and here is what Stefan told me to try to debug this:
>>>> You can try `debug-on-event'.
>>>> There's jit-lock-debug-mode but it doesn't disable inhibit-quit.
>>>> So you'll need to additionally use
>>>>    (advice-add 'jit-lock--debug-fontify :around
>>>>      (lambda (fun &rest args)
>>>>        (with-local-quit (apply fun args))))
>>>> Of course sometimes this doesn't work because jit-lock-debug-mode
>>>> changes the way things are executed and the bug may not manifest itself
>>>> any more, but it's worth a try.
>>>> Another source of info is to
>>>>   M-x trace-function RET org-adaptive-fill-function RET
>>>>   M-x trace-function RET org-element-at-point RET
>>>>   M-x trace-function RET org-element--cache-sync RET
>>>>   M-x trace-function RET org-element--cache-process-request RET
>>>> Then reproduce the hang, then break the hang somehow (maybe with the
>>>> jit-lock-debug hack above, or maybe with debug-on-event, or with C-g C-g
>>>> C-g, ...), then look at the *trace..* buffer.
>>> I'll try to see what I can find this week end and report back.
>>> By the way, if you want to see in which part the infloop occurs, you can
>>> attach a gdb debugger to the running emacs, source the
>>> <path-to-emacs-source>/src/.gdbinit file and use the `xbacktrace' command.
>>> $ gdb <path-to-emacs-executable> <emacs-pid>
>>> gdb) source <path-to-emacs-source>/src/.gdbinit
>>> ...
>>> gdb) xbacktrace
>>> You can also use the `bt' command but it contains much more noise.
>> Thanks! This is the sort of thing I assumed I'd have to do, and it's
>> good to have an actual recipe. If you're on it, I might take the lazy
>> option and spectate for now... :)
> No problem, but could you attach gdb during a lockup, source .gdbitinit
> and use the `xbacktrace' command to see if the lockup happens at the
> same place?

Most definitely. Saving the instructions now...

reply via email to

[Prev in Thread] Current Thread [Next in Thread]