[ESS] remote R execution via tramp hangs

Jannis bt_jannis at yahoo.de
Fri Sep 26 14:05:02 CEST 2014


Well, i can start R via M - x ssh, invoke R there and run M-x 
ess-remote. I do not get the full ess functionality there, however (i.e. 
function help, auto completion etc). Your suggestions (i.e. setting this 
starting directory) result in the same error (i.e. emacs freezes).

Any further ideas?

Jannis



On 26.09.2014 13:54, Chris Wallace wrote:
> Jannis,
>
> I'm afraid I can't help directly with your problem, but I recall 
> similar hangs.  I wonder have you tried any alternate way to start the 
> remote R?  I typically run R over multi-hop ssh, and the reliable 
> method I've now adopted is to set ess-directory to 
> "/ssh:user at crazyhophost:~/" via the customize-variable, and 
> ess-ask-for-ess-directory to t via the same method, so I can easily 
> edit where I want ess to start.  Then every time I start R it is on 
> the remote host, but I can edit the location if needed.
>
> I start every R script with a setwd() so I can always know in which 
> directory it should be run.
>
> Does this help at all?
>
> Chris
>
> On 26/09/14 12:42, Jannis 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
>>>
>>
>> ______________________________________________
>> ESS-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/ess-help
>
>



More information about the ESS-help mailing list