emacs-orgmode
[Top][All Lists]
Advanced

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

Re: infinite recursion org-update-id-locations / org-entry-properties /


From: Justin Vallon
Subject: Re: infinite recursion org-update-id-locations / org-entry-properties / org-entry-blocked-p / org-edna / org-id-find / org-id-update-locations
Date: Fri, 31 Jul 2020 14:31:04 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.9.0

I just tried using straight for org, and master (a1e5bee5c) has a
rewritten org-update-id-locations that uses regexps to find the IDs.  It
appears to have fixed the problem (for cases that I tried).

-Justin


On 7/30/20 4:21 PM, Justin Vallon wrote:
> I copy by org files between 2 machines.  Thus, my .org-id-locations file
> gets stale when I archive on one machine, then sync the org files.
> 
> I also use org-edna.
> 
> Sometimes, org-agenda will go into an infinite loop (recursion depth,
> etc) when scanning.
> 
> I believe what is happening is:
> 
> - org-agenda / org-edna builds the agenda, and hits a "missing" id(X)
> - org-update-id-locations starts scanning files/nodes to refresh
> - org-cached-entry-get tries to get all properties
> - org-entry-blocked-p is called
> - org-edna then tries to parse the BLOCKER property
> - the property mentions "id(Y)", which has not been found (yet)
> - cache miss, rescan files
> 
> The X and Y could be different, but once id(Y) is missing and the
> cache-miss happens during id-scanning, it will repeat.
> 
> I suppose it also might be sensitive to the order of files in the list,
> since scanning the archive first would scan the older IDs, then the
> active file would reference those older IDs.  However, I would imagine
> there would be trouble if an "earlier" node in the active file
> referenced an ID that appeared "later" in the file, since the file is
> being scanned in-order.
> 
> I haven't tried this, but the simplest case to reproduce might be to
> delete the .org-id-locations file, then feed it:
> 
> * Second
>   BLOCKER: id(first)
> * First
>   ID: first
> 
> I can try to build a (simple) reproducible test case if this is unclear.
> 
> My work-around is to disable org-edna, run org-id-update-id-locations,
> then reenable org-edna.
> 


-- 
-Justin
JustinVallon@gmail.com



reply via email to

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