[ESS] remote R execution via tramp hangs

Vitalie Spinu spinuvit at gmail.com
Fri Sep 26 19:26:18 CEST 2014


Then it's probably not ess related. Look into your *tramp/ssh XXX*
buffer. Tramp is probably waiting for shell prompt.

  Vitalie

You should see in *messages* something along the following lines:

Tramp: Inserting `/ssh:vspinu2:/home/vspinu/.Rhistory'...
Tramp: Encoding remote file `/ssh:vspinu2:/home/vspinu/.Rhistory' with `base64 <%s'...done
Tramp: Decoding local file `/tmp/tramp.5255SVj' with `base64-decode-region'...done
Tramp: Inserting `/ssh:vspinu2:/home/vspinu/.Rhistory'...done
Tramp: Opening connection for vspinu2 using ssh...
Tramp: Sending command `exec ssh -q    -o ControlPersist=no -e none vspinu2'
Tramp: Waiting for prompts from remote shell...done
Tramp: Found remote shell prompt on `vspinu2'
Tramp: Opening connection for vspinu2 using ssh...done
ess-tracebug mode enabled
Tramp: Encoding local file `/tmp/tramp.5255ffp' using `base64-encode-region'...done
Tramp: Decoding remote file `/ssh:vspinu2:/home/vspinu/.Rhistory' using `base64 -d -i >%s'...done


 >>> Jannis on Fri, 26 Sep 2014 13:42:43 +0200 wrote:

 > Thanks for your reply. No Buffer is created. I only see some messages in the
 > "message buffer" on the bottom left and it freezes after the "opening connection
 > ..." message. C- g seems to stop process of starting R (i.e. the message
 > disappears and emacs is responsive again). This is not getting R started,
 > however. Is there any way (i.e. logs) to find out what causes this error?

 > Jannis

 > On 25.09.2014 19:31, Vitalie Spinu wrote:
 >> Does C-g help? Do you see an *R* buffer created?
 >> 
 >> Vitalie
 >> 
 >> >>> Jannis on Thu, 25 Sep 2014 17:17:08 +0200 wrote:
 >> 
 >> > Dear ESS users,
 >> 
 >> > after updating to ubuntu 14.04 I have problems to remotely run R on another
 >> > machine via ess and tramp. I start tramp via Ctr - x Ctr -f and then point emacs
 >> > to a file on the remote machine (.i.e
 >> > /machine_name/path_to_file/file_name.R). When I then hit Alt -x R (as I used to
 >> > do before the update), emacs hangs after the message
 >> 
 >> > "Tramp: Opening connection for machine_name using ssh...done"
 >> 
 >> > and is not responsive anymore. The exact same mechanism worked before. I can
 >> > also connect directly to the machine via ssa (i.e. via Alt -x  ssh) without any
 >> > problems. Does anybody have an idea on how to narrow down on the cause of the
 >> > error?
 >> 
 >> > Cheers
 >> > Jannis
 >> 
 >> > This is my .emacs file:
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;; general and startup ;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > ;; Tell emacs where is your personal elisp lib dir
 >> > ;; this is the dir you place all your extra packages
 >> > (add-to-list 'load-path "~/.emacs.d/")
 >> 
 >> > ;;disable startup messages
 >> > (setq inhibit-startup-message t)
 >> 
 >> > ;; want two windows at startup
 >> > (split-window-horizontally)
 >> 
 >> > ;;fullscreen mode
 >> > (defun toggle-fullscreen ()
 >> >   (interactive)
 >> >   (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
 >> >                  '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
 >> >   (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
 >> >                  '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0)))
 >> > (toggle-fullscreen)
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  misc tools
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > ;; show tabs
 >> > (require 'tabbar)
 >> > (tabbar-mode)
 >> 
 >> > ;; ido stuff
 >> > (require 'ido)
 >> > (ido-mode t)
 >> > (setq ido-enable-flex-matching t)
 >> > (setq ido-create-new-buffer 'always)
 >> 
 >> > ;; open recent files
 >> > (require 'recentf)
 >> > (setq recentf-auto-cleanup 'never) ;; disable before we start recentf!
 >> > (recentf-mode 1)
 >> 
 >> > ;;regex tool
 >> > (load "regex-tool" t)
 >> 
 >> > ;; bind recent files
 >> > (global-set-key "\C-x\C-r" 'recentf-open-files)
 >> 
 >> > ;; clipboard
 >> > (setq x-select-enable-clipboard t)
 >> 
 >> > ;; global
 >> > (require 'smartparens-config)
 >> > (require 'smartparens-latex)
 >> > (smartparens-global-mode t)
 >> > (add-hook 'post-command-hook 'sp--post-command-hook-handler)
 >> 
 >> > ;; highlights matching pairs
 >> > (show-smartparens-global-mode t)
 >> 
 >> > ;;(add-hook 'inferior-ess-mode-hook (lambda () (smartparens-mode 1)))
 >> 
 >> > ;;(add-hook 'ess-R-post-run-hook 'smartparens-mode)
 >> > ;; (add-hook 'ess-post-run-hook 'smartparens-mode)
 >> 
 >> > ;;(require 'smart-operator)
 >> > ;;(add-hook 'ess-mode-hook 'smart-operator-mode)
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > (require 'fixme-mode)
 >> > (require 'fic-mode)
 >> > ;(require 'fic-mode)
 >> > ;(add-hook 'ess-mode-hook 'turn-on-fic-mode)
 >> > ;(add-hook 'latex-mode-hook 'turn-on-fic-mode)
 >> > ;(add-hook 'LaTeX-mode-hook 'turn-on-fic-mode)
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  autosave ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > (require 'backup-each-save)
 >> > (add-hook 'after-save-hook 'backup-each-save)
 >> 
 >> > ;; Put autosave files (ie #foo#) and backup files (ie foo~) in ~/.emacs.d/.
 >> > (custom-set-variables
 >> >   ;; custom-set-variables was added by Custom.
 >> >   ;; If you edit it by hand, you could mess it up, so be careful.
 >> >   ;; Your init file should contain only one such instance.
 >> >   ;; If there is more than one, they won't work right.
 >> >  '(LaTeX-command "latex -synctex=1")
 >> >  '(auto-save-file-name-transforms (quote ((".*" "~/.emacs.d/autosaves/\\1" t))))
 >> >  '(backup-directory-alist (quote ((".*" . "~/.emacs.d/autosaves/"))))
 >> >  '(comint-move-point-for-output (quote others))
 >> >  '(csv-separators (quote ("" ",")))
 >> >  '(delete-old-versions t)
 >> >  '(kept-new-versions 100)
 >> >  '(kept-old-versions 100)
 >> >  '(make-directory "~/.emacs.d/autosaves/" t)
 >> >  '(version-control t))
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ess stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > ;; r profile
 >> > (setenv "R_PROFILE_USER" "/home/my_name/.R/.RProfile")
 >> 
 >> > ;; path of R program
 >> > (setq inferior-R-program-name "/usr/lib/R/bin/R")
 >> 
 >> > ;; define startup options
 >> > (setq inferior-R-args "--no-save --no-restore --silent")
 >> 
 >> > ;; ess stuff
 >> > (require 'ess-site)
 >> 
 >> > ;; turn off echoing of commands
 >> > (setq ess-eval-visibly-p nil)
 >> 
 >> > ;; save history to one specific file
 >> > (setq ess-history-directory "~/.R/")
 >> 
 >> > ;; Enable function argument hint for ESS
 >> > (require 'ess-eldoc)
 >> 
 >> > ;;start tracebug
 >> > (require 'ess-tracebug)
 >> > (add-hook 'ess-post-run-hook 'ess-tracebug t)
 >> 
 >> > (ess-toggle-underscore nil)
 >> > (server-start)
 >> 
 >> > ;; Code folding in ess mode
 >> > (add-hook 'ess-mode-hook
 >> >       (lambda()
 >> >         (local-set-key (kbd "C-c <right>") 'hs-show-block)
 >> >         (local-set-key (kbd "C-c <left>")  'hs-hide-block)
 >> >         (local-set-key (kbd "C-c <up>")    'hs-hide-all)
 >> >         (local-set-key (kbd "C-c <down>")  'hs-show-all)
 >> >         (hs-minor-mode t)))
 >> 
 >> > (autoload 'ess-rdired "ess-rdired"
 >> >   "View *R* objects in a dired-like buffer." t)
 >> 
 >> > ;;speed up emacs by removing echoing
 >> > (setq ess-eval-visibly-p nil)
 >> 
 >> > (define-key comint-mode-map [C-up] 'comint-previous-matching-input-from-input)
 >> > (define-key comint-mode-map [C-down] 'comint-next-matching-input-from-input)
 >> 
 >> > ;;'(ess-auto-newline t)
 >> 
 >> > (add-hook  'inferior-ess-mode-hook
 >> >        (lambda()
 >> > ;         ess-S-mouse-me-menu-commands
 >> > ;         turn-on-font-lock
 >> >          (smartparens-mode 1)))
 >> 
 >> > ; no wuatsion for startup directory
 >> >  (setq ess-ask-for-ess-directory nil)
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ssh stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > ;;set up ssh tunelling
 >> > (load "~/.emacs.d/ssh.el")
 >> > (setq ssh-program "ssh")
 >> 
 >> > ;; turn off shell command echo
 >> > (defun my-comint-init ()
 >> >   (setq comint-process-echoes t))
 >> > (add-hook 'comint-mode-hook 'my-comint-init)
 >> 
 >> > ;; allow interaction with screen
 >> > ;; used to send screen keybindings to shell in emacs
 >> > (define-key shell-mode-map (kbd "C-l") (lambda (seq) (interactive "k")
 >> > (process-send-string nil seq)))
 >> > (define-key inferior-ess-mode-map (kbd "C-l") (lambda (seq) (interactive "k")
 >> > (process-send-string nil seq)))
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   Tex stuff
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > (setq TeX-auto-save t)
 >> > (setq TeX-parse-self t)
 >> > (setq TeX-save-query nil)
 >> > (setq TeX-PDF-mode t)
 >> > (setq-default TeX-master nil)
 >> 
 >> > ;; (setq TeX-view-program-list '(("Okular" "okular --unique %u")))
 >> 
 >> > ;; (add-hook 'LaTeX-mode-hook '(lambda ()
 >> > ;;                   (add-to-list 'TeX-expand-list
 >> > ;;                        '("%u" Okular-make-url))))
 >> 
 >> > ;; (defun Okular-make-url () (concat
 >> > ;;                "file://"
 >> > ;;                (expand-file-name (funcall file (TeX-output-extension) t)
 >> > ;;                          (file-name-directory (TeX-master-file)))
 >> > ;;                "#src:"
 >> > ;;                (TeX-current-line)
 >> > ;;                (expand-file-name (TeX-master-directory))
 >> > ;;                "./"
 >> > ;;                (TeX-current-file-name-master-relative)))
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> > ;; Enable synctex correlation
 >> > (setq TeX-source-correlate-method 'synctex)
 >> > ;; Enable synctex generation. Even though the command shows
 >> > ;; as "latex" pdflatex is actually called
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> > ;; Use Okular as the pdf viewer. Build okular
 >> > ;; command, so that Okular jumps to the current line
 >> > ;; in the viewer.
 >> > (setq TeX-view-program-selection
 >> >  '((output-pdf "PDF Viewer")))
 >> > (setq TeX-view-program-list
 >> >  '(("PDF Viewer" "okular --unique %o#src:%n%b")))
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > (load "preview-latex.el" nil t t)
 >> 
 >> > (setq ispell-program-name "aspell") ; could be ispell as well, depending on your
 >> > preferences
 >> > (setq ispell-dictionary "english") ; this can obviously be set to any language
 >> > your spell-checking program supports
 >> 
 >> > (dolist (hook '(lisp-mode-hook
 >> >                 emacs-lisp-mode-hook
 >> >                 shell-mode-hook
 >> >         ess-mode-hook))
 >> >   (add-hook hook 'flyspell-prog-mode))
 >> 
 >> > (require 'tex-site)
 >> > (autoload 'reftex-mode "reftex" "RefTeX Minor Mode" t)
 >> > (autoload 'turn-on-reftex "reftex" "RefTeX Minor Mode" nil)
 >> > (autoload 'reftex-citation "reftex-cite" "Make citation" nil)
 >> > (autoload 'reftex-index-phrase-mode "reftex-index" "Phrase Mode" t)
 >> > ;(add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode
 >> > ;(add-hook 'plain-tex-mode-hook 'turn-on-reftex) ; with Emacs latex mode
 >> 
 >> > ;; (add-hook 'reftex-load-hook 'imenu-add-menubar-index)
 >> > (add-hook 'LaTeX-mode-hook 'turn-on-reftex)
 >> 
 >> > (add-hook 'LaTeX-mode-hook 'turn-on-auto-fill)
 >> > ;(add-hook 'latex-mode-hook 'turn-on-auto-fill)
 >> > (add-hook 'text-mode-hook 'turn-on-auto-fill)
 >> > (setq-default fill-column 80)
 >> 
 >> > (dolist (hook '(LaTeX-mode-hook))
 >> >   (add-hook hook (lambda () (flyspell-mode 1))))
 >> > ;(dolist (hook '(latex-mode-hook))
 >> > ;  (add-hook hook (lambda () (flyspell-mode 1))))
 >> 
 >> > (setq TeX-parse-self t) ; Enable parse on load.
 >> > (setq TeX-auto-save t) ; Enable parse on save.
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   layout stuff
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > ;; show changes since last save
 >> > (global-highlight-changes-mode t)
 >> > (global-set-key (kbd "<M-down>") 'highlight-changes-next-change)
 >> > (global-set-key (kbd "<M-up>") 'highlight-changes-previous-change)
 >> > (set-face-foreground 'highlight-changes nil)
 >> > (set-face-background 'highlight-changes "#6495ed")
 >> > (set-face-foreground 'highlight-changes-delete nil)
 >> > (set-face-background 'highlight-changes-delete "#ff8c00")
 >> > (global-set-key (kbd "<f6>") 'highlight-changes-visible-mode) ;; changes
 >> > (add-hook 'text-mode-hook
 >> >       (defun highlight-changes-remove-after-save ()
 >> >         "Remove previous changes after save."
 >> >         (make-local-variable 'after-save-hook)
 >> >         (add-hook 'after-save-hook
 >> >               (lambda ()
 >> >             (highlight-changes-remove-highlight (point-min) (point-max))))))
 >> 
 >> > (add-hook 'ess-mode-hook
 >> >       (defun highlight-changes-remove-after-save ()
 >> >         "Remove previous changes after save."
 >> >         (make-local-variable 'after-save-hook)
 >> >         (add-hook 'after-save-hook
 >> >               (lambda ()
 >> >             (highlight-changes-remove-highlight (point-min) (point-max))))))
 >> 
 >> > ;; In every buffer, the line which contains the cursor will be fully
 >> > ;; highlighted
 >> > (global-hl-line-mode 1)
 >> 
 >> > ;; ;; autocomplete stuff
 >> > ;; (add-to-list 'load-path "~/.emacs.d/autocomplete/")
 >> > ;; (require 'auto-complete-config)
 >> > ;; (add-to-list 'ac-dictionary-directories "~/.emacs.d/autocomplete//ac-dict")
 >> > ;; (ac-config-default)
 >> > ;; (define-key ac-completing-map "\r" nil)
 >> > ;; (setq
 >> > ;;  ;; ac-auto-show-menu 1
 >> > ;;  ;; ac-candidate-limit nil
 >> > ;;  ;; ac-delay 0.1
 >> > ;;  ;; ac-disable-fafluxes_clean[ siteT, 'NEE_f', idx_extreme]ces (quote (font-lock-comment-face font-lock-doc-face))
 >> > ;;  ac-ignore-case 'smart
 >> > ;;  ;;ac-menu-height 20
 >> > ;;  ac-quick-help-delay 3
 >> > ;;  ;; ac-quick-help-prefer-pos-tip t
 >> > ;;  ;; ac-use-quick-help nil
 >> > ;;  ac-fuzzy-enable t
 >> > ;;  )
 >> > (add-to-list 'load-path "~/.emacs.d/")
 >> > (require 'auto-complete-config)
 >> > (add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
 >> > (ac-config-default)
 >> 
 >> > ;; align equal signs
 >> > ;; Align with spaces only
 >> > (defadvice align-regexp (around align-regexp-with-spaces)
 >> >   "Never use tabs for alignment."
 >> >   (let ((indent-tabs-mode nil))
 >> >     ad-do-it))
 >> > (ad-activate 'align-regexp)
 >> 
 >> > ;; activate parenthesis matching
 >> > (show-paren-mode t)
 >> 
 >> > ;; no line wrap
 >> > (setq default-truncate-lines t)
 >> 
 >> > (require 'fill-column-indicator)
 >> > (add-hook 'ess-mode-hook 'fci-mode)
 >> 
 >> > ;;highlight FIXMES
 >> 
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> > (add-hook 'text-mode-hook
 >> >       (lambda()
 >> >         (font-lock-add-keywords nil
 >> >                     '(("\\<\\(FIXME\\|TODO\\|XXX+\\|BUG\\):"
 >> >                        1 font-lock-warning-face prepend)))))
 >> 
 >> > (add-hook 'ess-mode-hook
 >> >       (lambda()
 >> >         (font-lock-add-keywords nil
 >> >                     '(("\\<\\(FIXME\\|TODO\\|XXX+\\|BUG\\):"
 >> >                        1 font-lock-warning-face prepend)))))
 >> 
 >> > (add-hook 'LaTeX-mode-hook
 >> >                (lambda ()
 >> >                 (font-lock-add-keywords nil
 >> >                  '(("\\<\\(FIXME\\|TODO\\|BUG\\):" 1 font-lock-warning-face
 >> > t)))))
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; behaviur
 >> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 >> 
 >> > ;; ===== Set standard indent to 2 rather that 4 ====
 >> > (setq standard-indent 2)
 >> 
 >> > ;; scroll only one line
 >> > (setq scroll-step 1)
 >> 
 >> > ;; ========== Support Wheel Mouse Scrolling ==========
 >> > (mouse-wheel-mode t)
 >> 
 >> > (global-set-key (kbd "C-l") 'highlight-regexp)
 >> 
 >> > (defun sort-words (reverse beg end))
 >> 
 >> > (global-set-key "\C-x\C-b" 'buffer-menu)
 >> 
 >> > (setq tramp-default-method "ssh")
 >> > ;(getenv "R_PROFILE_USER")
 >> 
 >> > (custom-set-faces
 >> >   ;; custom-set-faces was added by Custom.
 >> >   ;; If you edit it by hand, you could mess it up, so be careful.
 >> >   ;; Your init file should contain only one such instance.
 >> >   ;; If there is more than one, they won't work right.
 >> >  )
 >> 
 >> > ______________________________________________
 >> > ESS-help at r-project.org mailing list
 >> > https://stat.ethz.ch/mailman/listinfo/ess-help>



More information about the ESS-help mailing list