GNU bug report logs - #20662
25.0.50; Remote copy through Dired fails

Previous Next

Package: emacs;

Reported by: Manuel Uberti <manuel.uberti <at> inventati.org>

Date: Tue, 26 May 2015 16:21:03 UTC

Severity: normal

Found in version 25.0.50

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

Full log


Message #23 received at 20662 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Uberti <manuel.uberti <at> inventati.org>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 20662 <at> debbugs.gnu.org
Subject: Re: bug#20662: 25.0.50; Remote copy through Dired fails
Date: Thu, 28 May 2015 14:39:00 +0200
On 28/05/15 12:12, Michael Albinus wrote:
> Manuel Uberti <manuel.uberti <at> inventati.org> writes:
> 
> Hi Manuel,
> 
>> I already tried leaving out everything after line 92. To be more
>> precise, first I tried living out only my Dired-related settings, then
>> everything in my ~/.emacs.d/lisp directory. The error still happens.
> 
> And it doesn't happen to. So it seems to depend on the file/directory
> you intend to copy.
> 
>> I will try toggle debug-on-error on, but I am pretty sure I already
>> tried that way and there was no stacktrace for that error. That is why I
>> debugged line-by-line and narrowed the problem down to the line I
>> mentioned in my first message.
> 
> You have said
> 
> | After some debugging, I nailed down the issue to this line of
> | dired-copy-file-recursive:
> |
> | (copy-file from to ok-flag preserve-time)
> 
> That is not sufficient information; I don't know how
> dired-copy-file-recursive was called, and I don't know the values of the
> arguments.
> 
> I guess you have used edebug for debugging. When you have reached the
> point you've mentioned, please press 'd'. This produces a backtrace.
> 
>> Manuel Uberti
> 
> Best regards, Michael.
> 

Thanks for your patience.
I turn debug-on-error on, and press 'd' as you suggested, right before
(copy-file from to ok-flag preserve-time) throws an error.

This is the stacktrace:

  (copy-file (edebug-after 0 68 from) (edebug-after 0 69 to)
(edebug-after 0 70 ok-flag) (edebug-after 0 71 preserve-time))
  (if (edebug-after (edebug-before 55) 59 (stringp (edebug-after
(edebug-before 56) 58 (car (edebug-after 0 57 attrs))))) (edebug-after
(edebug-before 60) 66 (make-symbolic-link (edebug-after (edebug-before
61) 63 (car (edebug-after 0 62 attrs))) (edebug-after 0 64 to)
(edebug-after 0 65 ok-flag))) (edebug-after (edebug-before 67) 72
(copy-file (edebug-after 0 68 from) (edebug-after 0 69 to) (edebug-after
0 70 ok-flag) (edebug-after 0 71 preserve-time))))
  (condition-case err (edebug-after (edebug-before 54) 73 (if
(edebug-after (edebug-before 55) 59 (stringp (edebug-after
(edebug-before 56) 58 (car (edebug-after 0 57 attrs))))) (edebug-after
(edebug-before 60) 66 (make-symbolic-link (edebug-after (edebug-before
61) 63 (car (edebug-after 0 62 attrs))) (edebug-after 0 64 to)
(edebug-after 0 65 ok-flag))) (edebug-after (edebug-before 67) 72
(copy-file (edebug-after 0 68 from) (edebug-after 0 69 to) (edebug-after
0 70 ok-flag) (edebug-after 0 71 preserve-time))))) (file-date-error
(edebug-after (edebug-before 74) 79 (let* ((v (edebug-after
(edebug-before 75) 77 (dired-make-relative ...)))) (setq
dired-create-files-failures (cons v (edebug-after 0 78
dired-create-files-failures))))) (edebug-after (edebug-before 80) 83
(dired-log "Can't set date on %s:\n%s\n" (edebug-after 0 81 from)
(edebug-after 0 82 err)))))
  (if (edebug-after (edebug-before 24) 41 (and (edebug-after 0 25
recursive) (edebug-after (edebug-before 26) 30 (eq t (edebug-after
(edebug-before 27) 29 (car (edebug-after 0 28 attrs))))) (edebug-after
(edebug-before 31) 40 (or (edebug-after (edebug-before 32) 34 (eq
(edebug-after 0 33 recursive) (quote always))) (edebug-after
(edebug-before 35) 39 (yes-or-no-p (edebug-after ... 38 ...)))))))
(edebug-after (edebug-before 42) 46 (copy-directory (edebug-after 0 43
from) (edebug-after 0 44 to) (edebug-after 0 45 preserve-time)))
(edebug-after (edebug-before 47) 52 (or (edebug-after 0 48 top)
(edebug-after (edebug-before 49) 51 (dired-handle-overwrite
(edebug-after 0 50 to))))) (edebug-after (edebug-before 53) 84
(condition-case err (edebug-after (edebug-before 54) 73 (if
(edebug-after (edebug-before 55) 59 (stringp (edebug-after ... 58 ...)))
(edebug-after (edebug-before 60) 66 (make-symbolic-link (edebug-after
... 63 ...) (edebug-after 0 64 to) (edebug-after 0 65 ok-flag)))
(edebug-after (edebug-before 67) 72 (copy-file (edebug-after 0 68 from)
(edebug-after 0 69 to) (edebug-after 0 70 ok-flag) (edebug-after 0 71
preserve-time))))) (file-date-error (edebug-after (edebug-before 74) 79
(let* ((v ...)) (setq dired-create-files-failures (cons v ...))))
(edebug-after (edebug-before 80) 83 (dired-log "Can't set date on
%s:\n%s\n" (edebug-after 0 81 from) (edebug-after 0 82 err)))))))
  (let ((attrs (edebug-after (edebug-before 20) 22 (file-attributes
(edebug-after 0 21 from))))) (edebug-after (edebug-before 23) 85 (if
(edebug-after (edebug-before 24) 41 (and (edebug-after 0 25 recursive)
(edebug-after (edebug-before 26) 30 (eq t (edebug-after ... 29 ...)))
(edebug-after (edebug-before 31) 40 (or (edebug-after ... 34 ...)
(edebug-after ... 39 ...))))) (edebug-after (edebug-before 42) 46
(copy-directory (edebug-after 0 43 from) (edebug-after 0 44 to)
(edebug-after 0 45 preserve-time))) (edebug-after (edebug-before 47) 52
(or (edebug-after 0 48 top) (edebug-after (edebug-before 49) 51
(dired-handle-overwrite (edebug-after 0 50 to))))) (edebug-after
(edebug-before 53) 84 (condition-case err (edebug-after (edebug-before
54) 73 (if (edebug-after ... 59 ...) (edebug-after ... 66 ...)
(edebug-after ... 72 ...))) (file-date-error (edebug-after
(edebug-before 74) 79 (let* ... ...)) (edebug-after (edebug-before 80)
83 (dired-log "Can't set date on %s:\n%s\n" ... ...))))))))

dired-copy-file-recursive("/ssh:admin <at> 192.168.1.50#2130:/home/admin/boccaperta/contabilita/fattureods/078_crowdknitting.ods"
"/home/manuel/documents/boccaperta/contabilita/boccaperta/reddito2015/fattureods/078_crowdknitting.ods"
nil t t always)

dired-copy-file("/ssh:admin <at> 192.168.1.50#2130:/home/admin/boccaperta/contabilita/fattureods/078_crowdknitting.ods"
"/home/manuel/documents/boccaperta/contabilita/boccaperta/reddito2015/fattureods/078_crowdknitting.ods"
nil)
  dired-create-files(dired-copy-file "Copy"
("/ssh:admin <at> 192.168.1.50#2130:/home/admin/boccaperta/contabilita/fattureods/078_crowdknitting.ods")
(lambda (_from) (edebug-enter (quote edebug-anon97303) (list _from)
(function (lambda nil (edebug-after 0 0 target))))) 67)
  (if (edebug-after (edebug-before 116) 125 (and (edebug-after
(edebug-before 117) 119 (consp (edebug-after 0 118 into-dir)))
(edebug-after (edebug-before 120) 124 (functionp (edebug-after
(edebug-before 121) 123 (car (edebug-after 0 122 into-dir)))))))
(edebug-after (edebug-before 126) 137 (apply (edebug-after
(edebug-before 127) 129 (car (edebug-after 0 128 into-dir)))
(edebug-after 0 130 operation) (edebug-after 0 131 rfn-list)
(edebug-after 0 132 fn-list) (edebug-after 0 133 target) (edebug-after
(edebug-before 134) 136 (cdr (edebug-after 0 135 into-dir)))))
(edebug-after (edebug-before 138) 149 (if (edebug-after (edebug-before
139) 144 (not (edebug-after (edebug-before 140) 143 (or (edebug-after 0
141 dired-one-file) (edebug-after 0 142 into-dir))))) (edebug-after
(edebug-before 145) 148 (error "Marked %s: target must be a directory:
%s" (edebug-after 0 146 operation) (edebug-after 0 147 target)))))
(edebug-after (edebug-before 150) 157 (or (edebug-after 0 151 into-dir)
(edebug-after (edebug-before 152) 156 (setq target (edebug-after
(edebug-before 153) 155 (directory-file-name (edebug-after 0 154
target))))))) (edebug-after (edebug-before 158) 170 (dired-create-files
(edebug-after 0 159 file-creator) (edebug-after 0 160 operation)
(edebug-after 0 161 fn-list) (edebug-after (edebug-before 162) 168 (if
(edebug-after 0 163 into-dir) (edebug-after (edebug-before 164) 165
(function (lambda ... ...))) (edebug-after (edebug-before 166) 167
(function (lambda ... ...))))) (edebug-after 0 169 marker-char))))
  (let* ((fn-list (edebug-after (edebug-before 7) 9
(dired-get-marked-files nil (edebug-after 0 8 arg)))) (rfn-list
(edebug-after (edebug-before 10) 14 (mapcar (edebug-after (edebug-before
11) 12 (function dired-make-relative)) (edebug-after 0 13 fn-list))))
(dired-one-file (edebug-after (edebug-before 15) 27 (and (edebug-after
(edebug-before 16) 18 (consp (edebug-after 0 17 fn-list))) (edebug-after
(edebug-before 19) 23 (null (edebug-after ... 22 ...))) (edebug-after
(edebug-before 24) 26 (car (edebug-after 0 25 fn-list)))))) (target-dir
(edebug-after (edebug-before 28) 29 (dired-dwim-target-directory)))
(default (edebug-after (edebug-before 30) 40 (and (edebug-after 0 31
dired-one-file) (edebug-after (edebug-before 32) 39 (expand-file-name
(edebug-after ... 37 ...) (edebug-after 0 38 target-dir)))))) (defaults
(edebug-after (edebug-before 41) 44 (dired-dwim-target-defaults
(edebug-after 0 42 fn-list) (edebug-after 0 43 target-dir)))) (target
(edebug-after (edebug-before 45) 62 (expand-file-name (edebug-after
(edebug-before 46) 61 (let (... setup-hook) (setq setup-hook ...)
(unwind-protect ... ...)))))) (into-dir (edebug-after (edebug-before 63)
114 (cond ((edebug-after (edebug-before 64) 66 (null ...)) (edebug-after
(edebug-before 67) 106 (if ... nil ...))) ((edebug-after (edebug-before
107) 109 (eq ... t)) nil) (t (edebug-after (edebug-before 110) 113
(funcall ... ...))))))) (edebug-after (edebug-before 115) 171 (if
(edebug-after (edebug-before 116) 125 (and (edebug-after (edebug-before
117) 119 (consp (edebug-after 0 118 into-dir))) (edebug-after
(edebug-before 120) 124 (functionp (edebug-after ... 123 ...)))))
(edebug-after (edebug-before 126) 137 (apply (edebug-after
(edebug-before 127) 129 (car (edebug-after 0 128 into-dir)))
(edebug-after 0 130 operation) (edebug-after 0 131 rfn-list)
(edebug-after 0 132 fn-list) (edebug-after 0 133 target) (edebug-after
(edebug-before 134) 136 (cdr (edebug-after 0 135 into-dir)))))
(edebug-after (edebug-before 138) 149 (if (edebug-after (edebug-before
139) 144 (not (edebug-after ... 143 ...))) (edebug-after (edebug-before
145) 148 (error "Marked %s: target must be a directory: %s"
(edebug-after 0 146 operation) (edebug-after 0 147 target)))))
(edebug-after (edebug-before 150) 157 (or (edebug-after 0 151 into-dir)
(edebug-after (edebug-before 152) 156 (setq target (edebug-after ... 155
...))))) (edebug-after (edebug-before 158) 170 (dired-create-files
(edebug-after 0 159 file-creator) (edebug-after 0 160 operation)
(edebug-after 0 161 fn-list) (edebug-after (edebug-before 162) 168 (if
(edebug-after 0 163 into-dir) (edebug-after ... 165 ...) (edebug-after
... 167 ...))) (edebug-after 0 169 marker-char))))))
  dired-do-create-files(copy dired-copy-file "Copy" nil 67 nil nil)
  (let ((dired-recursive-copies (edebug-after 0 1
dired-recursive-copies))) (edebug-after (edebug-before 2) 8
(dired-do-create-files (quote copy) (edebug-after (edebug-before 3) 4
(function dired-copy-file)) "Copy" (edebug-after 0 5 arg) (edebug-after
0 6 dired-keep-marker-copy) nil (edebug-after 0 7 dired-copy-how-to-fn))))
  dired-do-copy(nil)
  funcall-interactively(dired-do-copy nil)
  call-interactively(dired-do-copy nil nil)
  command-execute(dired-do-copy)

Hope it can be of any help. If you need to do some other tests/debug,
please ask.

Regards,
Manuel




This bug report was last modified 10 years and 49 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.