[ESS-bugs] ess-mode 5.3.3; bug in file-name-all-completions?
Rodney Sparapani
rsparapa at mcw.edu
Fri Oct 27 20:43:14 CEST 2006
Hi Steven:
When we who wrote those functions, we assumed that
directories that can be seen can be traversed. In
hindsight, that is a mistake. We need to change that to check if we
have the
appropriate permission before traversal. That should be easy to do and
hopefully
cross-platform is not an issue here since the elisp API should handle that.
Rodney
Steven McKinney wrote:
> (I initially submitted this email from a
> new computer behind a firewall, and the
> email was undeliverable. Is it possible for
> ESS bug report macro to 'ping the mother ship' to
> ensure emacs-based bug reports are deliverable?)
>
>
> From: <smckinney at bccrc.ca>
> To: ess-bugs at stat.math.ethz.ch
> Subject: ess-mode 5.3.3; bug in file-name-all-completions?
> Message-Id: <20061025000448.93E9B36D02 at compute-1-1.local>
> Date: Tue, 24 Oct 2006 17:04:48 -0700 (PDT)
>
> After installing ess-5.3.3 and invoking emacs, emacs reported error
> message shown below. Somewhere in the chain of function calls,
> an inappropriate directory (/opt/maven/bin in this case) is returned
> and ends up getting sent to file-name-all-completions. No R or Splus
> executables in that Apache Maven app subdirectory. That subdir is
> restricted on the cluster machine setup I am working on (Rocks cluster).
>
> Working fix:
> ------------
>
> I edited essd-sp6.el and replaced
> (defvar ess-s-versions '("Splus")
> with
> (defvar ess-s-versions nil
>
> I edited essd-r.el and replaced
> (defvar ess-r-versions '("R-1" "R-2" "R-devel" "R-patched")
> with
> (defvar ess-r-versions nil
>
> I can now start up Emacs and invoke R via
> M-x R
>
> ;;;Error Message;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> Debugger entered--Lisp error: (file-error "Opening directory" "permission denied" "/opt/maven/bin")
> file-name-all-completions("Splus" "/opt/maven/bin")
> (setq ess-tmp-files (file-name-all-completions ess-root-arg ess-tmp-dir))
> (progn (setq ess-tmp-files (file-name-all-completions ess-root-arg ess-tmp-dir)) (while ess-tmp-files (setq e
> ss-tmp-file ... ess-tmp-files ...) (if ... ..$
> (if (and (> ... 0) (file-exists-p ess-tmp-dir)) (progn (setq ess-tmp-files ...) (while ess-tmp-files ... ...)
> ))
> (when (and (> ... 0) (file-exists-p ess-tmp-dir)) (setq ess-tmp-files (file-name-all-completions ess-root-arg
> ess-tmp-dir)) (while ess-tmp-files (setq ess$
> (while ess-exec-path (setq ess-tmp-dir (car ess-exec-path) ess-exec-path (cdr ess-exec-path)) (when (and ...
> ...) (setq ess-tmp-files ...) (while ess-tmp-$
> (let* ((ess-exec-path ...) (ess-tmp-exec nil) (ess-tmp-path-count ...) (ess-tmp-dir nil) (ess-tmp-files nil)
> (ess-tmp-file nil)) (while ess-exec-path (set$
> ess-find-exec-completions("Splus")
> mapcar(ess-find-exec-completions ("Splus"))
> (apply (quote nconc) (mapcar (quote ess-find-exec-completions) ess-s-versions))
> (mapcar (quote file-name-nondirectory) (apply (quote nconc) (mapcar ... ess-s-versions)))
> (ess-uniq-list (mapcar (quote file-name-nondirectory) (apply ... ...)))
> (setq versions (ess-uniq-list (mapcar ... ...)))
> (progn (setq versions (ess-uniq-list ...)) (ess-write-to-dribble-buffer (format "(S): ess-s-versions-create m
> aking M-x defuns for %s" ...)) (setq ess-s-ve$
> (if ess-s-versions (progn (setq versions ...) (ess-write-to-dribble-buffer ...) (setq ess-s-versions-created
> versions) (while versions ... ... ... ... ...$
>
> ;;;END Error Message;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> Emacs : GNU Emacs 22.0.50.1 (x86_64-unknown-linux-gnu, X toolkit)
> of 2006-10-24 on rocks1.cluster.bccrc.ca
> Package: ess-mode 5.3.3
>
> current state:
> ==============
> (setq
> ess-language "S"
> ess-dialect "R"
> ess-ask-for-ess-directory t
> ess-ask-about-transfile nil
> ess-directory nil
> ess-keep-dump-files "always"
> ess-source-directory "/tmp/"
> )
> [ess-site.el]: ess-customize-alist=nil
> [ess-site.el _2_]: ess-customize-alist=nil
>
> (R): ess-dialect=nil, buf=*Messages*, start-arg=nil
> current-prefix-arg=nil
> (inferior-ess 0): ess-start-args=--no-readline
> ess-setq-vars-default 0: ess-language=Initial, -dialect=nil, buf=nil, comint..echoes=nil, comint..sender=comint
> -simple-send
> ess-setq-vars-default 1: ess-language=S, -dialect=R, buf=nil, comint..echoes=nil, comint..sender=comint-simple-
> send
>
> (inf-ess 1): lang=S, dialect=R, tmp-dialect=R, buf=*Messages*
> (inf-ess 1.1): procname=R temp-dialect=R, buf-name=*R*
> (inferior-ess) Method #3 start=/home/smckinney/ buf=*R*
> (ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=nil, comint..sender=comint-simple-send
> (inf-ess 2.1): ess-language=S, ess-dialect=R buf=*R*
> (inf-ess 2.2): start args = --no-readline , inf-ess-start-args=--no-readline
> (inf-ess finish [S(R), R(nil,nil)]
> (ess-multi 0): inf-ess-start-args=--no-readline , comint-..echoes=nil
> (i-ess 1): buf=*R*, lang=S, comint..echo=nil, comint..sender=comint-simple-send,
> (i-ess 2): buf=*R*, lang=S, comint..echo=t, comint..sender=inferior-R-input-sender,
> (ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=t, comint..sender=inferior-R-input-sender
> (i-ess 3): curr-buf=*R*, comint..echo=t, comint..sender=inferior-R-input-sender,
> (ess-multi post inf-ess: start-args=--no-readline , comint-echoes=t
> (ess-multi 1): start-args=--no-readline
> Making Process...Buf *R*, Proc R, Prog R
> Start File=nil, Args= --no-readline .
> (R): inferior-ess-language-start=options(STERM='iESS', editor='emacsclient')
>
> --BA57D52365.1161734690/rocks1.cluster.bccrc.ca--
>
> Steven McKinney
>
> Statistician
> Molecular Oncology and Breast Cancer Program
> British Columbia Cancer Research Centre
>
> email: smckinney at bccrc.ca
>
> tel: 604-675-8000 x7561
>
> BCCRC
> Molecular Oncology
> 675 West 10th Ave, Floor 4
> Vancouver B.C.
> V5Z 1L3
> Canada
>
> _______________________________________________
> ESS-bugs ESS-bugs at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/ess-bugs
>
> _______________________________________________
> ESS-core list: https://stat.ethz.ch/mailman/listinfo/ess-core
>
More information about the ESS-bugs
mailing list