emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Replacing property-name hangs Emacs


From: Thorsten Jolitz
Subject: Re: [O] Replacing property-name hangs Emacs
Date: Sat, 19 Jul 2014 10:07:56 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Thorsten Jolitz <address@hidden> writes:

Hi List, 

> seems to be an Org problem:
>
> when doing query-replace or replace-string on the name of a headline
> property, Emacs hangs with 100pc CPU and I have to restart. 
>
> MWE and emacs -Q not possible, sorry, I tried... 
>
> PS
>
> Org-mode version 8.3beta (release_8.3beta-44-g05be57 @
> /usr/share/emacs/24.3/lisp/org/lisp/)
>
> GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2) of
> 2014-06-11 on var-lib-archbuild-staging-x86_64-jgc

Here is a copy of what I sent to the emacs-help list, this seems to be
an Org parser problem (or a configuration problem - cannot reproduce it
with emacs -Q):

#+begin_quote
>> Try sending the Emacs process a SIGUSR2, this forces
>> it into the (Lisp level) debugger.  Maybe you then
>> can see what it "does".
>
> You mean like this:
>
> kill -s usr2 4352
>
> (get the PID with 'ps -e | grep emacs')
>
> or, equivalently (?)
>
> pkill --signal usr2 emacs

nice tip, thanks, I hope I remember this!

Here is the beginning of the file where I want to replace :resource_id:
with :name: by doing 

,----
| M-%: resource_id RET name RET
`----

Emacs hangs already at the 2nd (piano) entry. 

#+begin_src org
* Instruments
** rhythm-section
*** harmony
**** guitar
   :PROPERTIES:
   :name: guitar
   :abbrev:   g
   :END:

**** piano
    :PROPERTIES:
    :name: piano
    :abbrev:   p
    :END:

*** rhythm
**** bass
    :PROPERTIES:
    :resource_id: bass
    :abbrev:   b
    :END:

**** drums
    :PROPERTIES:
    :resource_id: drums
    :abbrev:   dr
    :END:

** horns
    :PROPERTIES:
    :resource_id: horns
    :abbrev:   hrs
    :END:
#+end_src

here is the backtrace I get, it seems to be an Org-mode (cache?) problem
- should I move this report to the Org mailing list?

Debugger entered--Lisp error: (quit)
  looking-at("^\\(\\*+\\)\\(?:
+\\(TODO\\|NEXT\\|DONE\\|WAITING\\|HOLD\\|CANCELLED\\|PHONE\\)\\)?\\(?:
+\\(\\[#.\\]\\)\\)?\\(?: +\\(.*?\\)\\)??\\(?:[
]+\\(:[[:alnum:address@hidden:]+:\\)\\)?[ ]*$")
  org-heading-components()
  org-element-headline-parser(116 t)
  org-element--current-element(116 element nil nil)
  byte-code("\212\214~\210^Hb\210
\205..\306\307!\204..\n\205..\310^H\311\".\312^K..\f;address@hidden"*..\311\211../^K\204`.\316.0\317
\211.1.2\320.1P.3\321 ,\203V.\311y\210\322\311w\210\323
\210\202?.^H..U\203\217.\324\325.4\203\211.\326^K..\f;address@hidden"*\202\212.^K\"\210\202?.\327\316.0\317
\211.1.2\320.1P+..\316#\203\263.\311y\210\322\311w\210\323
\210\202?.^Kd^HU\203\277.^HS\202\300.^H..5\330^K..\f;address@hidden"*\206\340...b\210\331.5..\f;address@hidden"*\211.6^HX\205%..6b\205%.\326.5..\f;address@hidden"*\211.5)\204\342..5\203>.m\2038..5.\202>..5.`./*\331\f..\f;address@hidden"*\206q.\212\316.0\317
\211.1.2\320.1P.3\332
\210,`)\f\311.7.8.6.4\203\251.`^HU\203\215.\324\325.8\"\210\202\251..9\211.9\205\240.\333
\206\240.\334.9\335
\")\203\251.\324\336\311\"\210\f\204\370.\337.6\304.7\340.8..\f;address@hidden"*$\211.\326.8.:.\211.;\203\345.\341\f\311..:address@hidden:#\240\210\f+\210\343\f!\210\331\f..\f;\203
address@hidden"*\f\211.:\204
.\f;\205(.\344\202(address@hidden(.\f@).;\211.<^HX\203A.d.<U\204A..<b\210\202\376..;.=>\204Q.\324\325\f\"\210\202\376.\330\f..\f;address@hidden"*\345\f..\f;address@hidden"*.>.?.4\204\276..?\205\365..>\205\365..?^HW\204\252..?^HU\205\365..;\346>?\205\365..>^HV\204\276..>^HU\205\365.d^HU\205\365../\206\305..?b\210\311./\347.;\350\"\203\326.\351\202\353.\347.;\352\"\203\342.\353\202\353.\347.;\354\"\205\353.\355.7\f.8.>\211.6*\204\376.\324\325\f\"\210*\311.\202y."
[pos org-element-use-cache orgstruct-mode cached element property
derived-mode-p org-mode org-element--cache-find nil :begin
get-text-property 0 plist-get t org-get-limited-outline-regexp "^"
outline-previous-heading " . \n" beginning-of-line throw exit :parent
re-search-backward :contents-begin :end outline-next-heading
input-pending-p time-less-p current-time interrupt
org-element--current-element :structure org-add-props plist-put
org-element--cache-put plain-text :contents-end (plain-list table) eql
plain-list item property-drawer node-property table table-row begin
next org-called-with-limited-levels org-outline-regexp ...] 9)
  org-element--parse-to(120 t nil)
  byte-code("^H\306H\307U\203\f.\310\311\215\210^H\306H\312U\203U.^H\307H
\232\203(address@hidden"\210\316^H\312H^H\317H^K#..\203A..\fW\203A.\313\320\321\"\210\322\f\315..#./^H\323./I\210^H\306\324I\210*^H\307H^H\317H^H\323H.0\307H.1>\204n.\325\326\327\330#\210.0\312H\307H\321C\315\321.2.3.4.5./.6.7./\204\227.\331.6!\203\227.\313\314\315\"\210.5\203\251..5\324H\211.8.9\332.9.:\"\206..\333.9.9.;.9;\203\305.\334\307.;address@hidden;\"*.<.9\211.9:\204\343..9;address@hidden@)\337>\203\371..<T\202\373..<.=\n\203\f.\340.9.=.:#\202...=*).=.3\203h..5\307H\203h..=.7.>\211.?\250\203B..>\250\2039..?.>W\202T..?.>@X\202T..>address@hidden>W\202T.\341\342\215*\204h..5.4B.4.5\307H.5\202\245..=.7.>\211.?\250\203\214..>\250\203\203..?.>W\202\236..?.>@X\202\236..>address@hidden>W\202\236.\341\342\215*\204\213..=
\232\203\256.\313\314\315\"\210.2\204\312...\211..\205\306.\343
\206\306.\344..\345
\")\203\333.^H\307.=I\210^H\323./I\210\313\320\321\"address@hidden@address@hidden@>\203..9\211.9:\204...9;address@hidden@)\347=\203.\335.A\350\"\211.9:\2047..9;address@hidden@)\351=\204.\335.A\346\"\321.)address@hidden)address@hidden)\306.)address@hidden)address@hidden@\203\233..=.@>\205\241.\335.A.=\"\211.E\203\263.\353.A.=.6.E\\#\210).BA\211.B\204\211.\321..\210\332.8.F\"address@hidden)address@hidden@address@hidden@\203..\346.@>\203\206..9\211.9:\204...9;\205\".\336\202\"address@hidden"..9@)\347=\203\206.\335.A\350\"\211.9:\204>..9;address@hidden@)\351=\204\206.\335.A\346\"\321.)address@hidden)address@hidden)\306.)address@hidden)address@hidden@\203\242..=.@>\205\250.\335.A.=\"\211.E\203\272.\353.A.=.6.E\\#\210).BA\211.B\204\220.\321..\210.BA\211.B\204\345.*.BA\211.B\204\320.*\333.8.9.;.9;\203\363.\334\307.;address@hidden;\"*.<./\203O.\354./.9.;.9;\203..\334\307.;.9#\202\"address@hidden;\"*.<X\203O.\350./.9.;.9;address@hidden;address@hidden;\"*\211./\204.../\204c.\331.6!\203c.\313\314\321\"\210\202|../\203|.\350.8.9.;.9;\203.\334\307.;address@hidden;\"*\211.J?\206\320.\333.J.9.;.9;\203\246.\334\307.;address@hidden;\"*\333./.9.;.9;\203\306.\334\307.;address@hidden;\"*W)\203|..8\350./.E.;\211.9;\203\360.\355.9\321.;address@hidden;.E#\240\210.9+\210\346./.9.;.9;\203..\334\307.;.9#\202\"address@hidden;\"*\211.K\203{.\346.8.9.;.9;address@hidden;address@hidden;\"*\203{..8\346.K.E.;\211.9;\203h.\355.9\321.;address@hidden;.E#\240\210.9+\210).\203\212..<.V\203\212.\315.2)address@hidden"
[request next org-element--cache-sync-requests extra limit threshold 6
0 end-phase (byte-code "^H\306H^H\307H^H\310H...\f\211.\205..\311
\206..\312\f\313
\")\203%.\314\315\316\"\210.\306H.$>\2044.\317\320\321\322#\210.\323H\306H\316\211.%.&.'.'\203W..'\307H\211.(.(\324.(.)\"\206\272.\325.(.(.*.(;\203o.\326\306.*.(#\202w.\327.(address@hidden"*.+.(\211.(:\204\215..(;\205\227.\330\202\227..(@9\205\227..(@)\331>\203\243..+T\202\245..+.,.-\203\267.\332.(.,.)#\202\271..,*)\211.,^K..\211./\250\203\337...\250\203\326../..W\202\361../address@hidden/@..W\202\361.\333\334\215*\203\376..'\323H.'\202S.^K.,..\211./\250\203!...\250\203.../..W\2023../address@hidden/@..W\2023.\333\334\215*\203H..(.&.,.%.'\306H.'\202S..(.&.,.%\316.'*\202A..&\203..\325.&.(.*.(;\203s.\326\306.*.(#\202{.\327.(address@hidden"*.0.1\203\275..%.1..\211./\250\203\247...\250\203\236../..W\202\271../address@hidden/@..W\202\271.\333\334\215*\203\304..0\nX\202\374..&\211.2\203\371..2
=\204\371.\335.2.(.*.(;\203\352.\326\306.*.(#\202\362.\327.(address@hidden"*\211.2\204\314..2)\203...&.(\336..(\"\210\337.(.3\")\210\202*.^H\306.%I\210^H\323.0I\210^H\340\323I\210\314\341\316\"\210)\2023.\314\342\343\"\210+\202\f."
[request outreach end beg time-limit org-element--cache 0 2 4
input-pending-p time-less-p current-time throw interrupt nil error "%s
accessing a non-%s" avl-tree--dummyroot avl-tree- 1 gethash :begin
get-text-property plist-get plain-text (item table-row) puthash exit
(byte-code "^H\203/. \203/.\302^H \"\203..\303\304\305\"\210\202..\302
^H\"\203&.\303\304\306\"\210\202..^HA. A.\202..^H?\2055. \207" [a b
car-less-than-car throw exit t nil] 3) :parent avl-tree-delete remhash
6 end-phase quit t cl-struct-avl-tree--tags data-key data node element
org-element--cache-sync-keys property begin key
org-element--cache-sync-requests b a pos next ...] 5) 1 throw quit t +
3 interrupt nil org-element--parse-to 5 2 error "%s accessing a
non-%s" avl-tree--dummyroot avl-tree- zerop gethash :begin
get-text-property plist-get plain-text (item table-row) puthash exit
(byte-code "^H\203/. \203/.\302^H \"\203..\303\304\305\"\210\202..\302
^H\"\203&.\303\304\306\"\210\202..^HA. A.\202..^H?\2055. \207" [a b
car-less-than-car throw exit t nil] 3) input-pending-p time-less-p
current-time :structure plain-list :parent item (:begin
:contents-begin :contents-end :end :post-affiliated) plist-put :end
org-add-props time-limit parent org-element--cache
cl-struct-avl-tree--tags ...] 8)
  org-element--cache-process-request([1642 134 123 -7 (property-drawer
(:begin 57 :end 123 :contents-begin 73 :contents-end 113 :post-blank 1
:post-affiliated 57 :parent nil)) nil 2] nil 167 nil -7)
  byte-code("address@hidden@.\306
\n\205..\n\307H^K\211?\205^_.\310\311
\f\".\206$.\307%\210\n\203A.\n\211.\f\312.\f\312H \312H\\I\210)\n\313
\313HI\210^HA\211.\204..\306\207" [org-element--cache-sync-requests
request next threshold org-element-cache-sync-duration extra
org-element--cache-process-request 0 time-add current-time 3 2 v] 8)
  org-element--cache-sync(#<buffer instruments.org> 167 -7)
  org-element--cache-submit-request(144 167 -7)
  org-element--cache-after-change(149 153 11)
  replace-match("name" nil t)
  replace-match-maybe-edit("name" nil t nil (149 160 #<buffer
instruments.org>))
  perform-replace("resource_id" "name" t nil nil nil nil nil nil)
  query-replace("resource_id" "name" nil nil nil)
  call-interactively(query-replace nil nil)
#+end_quote

-- 
cheers,
Thorsten




reply via email to

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