Rasmus,

I had started down the path of bisecting the file, but wasn't having much luck isolating the problem, so I posted the question. I had some time to get back to it this afternoon, and I eventually tracked this down. It had to do with a missing ID rather than a duplicate one. The file contained a link to an ID that no longer existed in the file (or in any other org files), but it wasn't listed in the *Messages* buffer and export kept searching through all my org files over and over until I pressed C-g. When I removed that link, I still had some other problems in the file with text links, i.e. [[target]], that didn't have a matching target, i.e., <<target>>, but now these were identified in the *Messages* buffer (one per export attempt until I found them all). Once all of those were fixed, the export ran successfully.

I do use #+INCLUDE, but that is not the problem here.

Thanks,
Bruce


On Fri, Jul 24, 2015 at 4:38 AM, Rasmus <rasmus@gmx.us> wrote:
Hi Bruce,

Bruce Gilstrap <bruce@gilstraps.org> writes:

> This happens consistently with one file that I successfully exported last
> Friday under 8.2.10 but does not happen at all with some other files. So
> far, I have been unable to isolate exactly what it is about this file that
> causes the export to get stuck in this loop. I can do the legwork to track
> it down if someone more knowledgeable about the exporter can point me in
> the right direction. It seems obvious that it has something to do with IDs,
> but the files that still export properly contain IDs, too, so the issue
> isn't as simple as the existence of IDs in the file.

Would it be possible to bisect your file to find the offending part?
Otherwise you could try to hot-patch org-id-update-id-locations in
org-id.el.  For instance, try to change the last (if ...) to:

(if (> ndup 0)
          (message "WARNING: %d duplicate IDs found, check *Messages* buffer" ndup)
        (progn (message "%d unique files scanned for IDs" (length org-id-files))
               (message (mapconcat (lambda (x) (format "%s" x)) org-id-files "\n"))))

To see which files it is scanning.  Maybe that will give a clue as to
where the problem is.

Do you use #+INCLUDE?

Rasmus

--
Er du tosset for noge' lårt!