Skip to content

Instantly share code, notes, and snippets.

@ZelphirKaltstahl
Created April 3, 2019 20:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ZelphirKaltstahl/68ab4f8cbd558fb6eea71e211adb1269 to your computer and use it in GitHub Desktop.
Save ZelphirKaltstahl/68ab4f8cbd558fb6eea71e211adb1269 to your computer and use it in GitHub Desktop.
troubleshooting org-mode async

Issue Reporting Checklist

This checklist will help you diagnose problems with your ob-async setup.

Instructions

Execute the src blocks one at a time with ctrl-c ctrl-c to ensure that ob-async-org-babel-execute-src-block is used for files with the :async header-arg. If by the end of this file your issue isn’t solved, open an issue on Github with the contents of this file.

First, make sure you can execute emacs-lisp src blocks without the async header argument. Otherwise you’ve got bigger problems, and none of this is going to work.

(message "Yes, I can synchronously execute emacs-lisp from an org-babel src block.")

Checklist

From where are you loading ob-async?

(symbol-file 'ob-async-org-babel-execute-src-block)
(message "PID: %s\nEmacs version: %s\norg version: %s\nPath to org: %s" (emacs-pid) (emacs-version) (org-version) (symbol-file 'org-version))

Execution of the :async block occurs in an Emacs subprocess. Are you using a consistent version of emacs and org-mode across both processes? Compare the output of this block the output of the previous block.

(message "PID: %s\nEmacs version: %s\norg version: %s\nPath to org: %s" (emacs-pid) (emacs-version) (org-version) (symbol-file 'org-version))

The Emacs subprocess inherits the value of org-babel-load-languages from its parent. Here are the languages which are loaded in the subprocess. If you don’t see your desired language here, it means you never added it to org-babel-load-languages (in the parent process).

org-babel-load-languages

If you’re still facing problems, turn on async debugging.

(setq async-debug t)

If possible, replace the following block with a block that reproduces your problem, then execute it.

(message "I'm executed in a subprocess.")

This is the elisp that was sent to the Emacs subprocess. If there’s still nothing obviously wrong, file an issue on GitHub and include the contents of this file as a Gist.

(switch-to-buffer "*Messages*")
(goto-char (point-max))
(re-search-backward "Transmitting sexp {{{\\([^}]+\\)}}}")
(match-string 1)

Bug Description

If your issue still hasn’t been resolved, describe it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment