Subject: Re: bug#20662: 25.0.50; Remote copy through Dired fails

From: Manuel Uberti <[email-masked]>
Date: Thu, 28 May 2015 16:08:17 +0200

On 28/05/15 15:16, Michael Albinus wrote:
> Manuel Uberti <[email-masked]> writes:
> 
> Hi Manuel,
> 
>> 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:
> 
> Well, I've nailed it down to
> 
> --8<---------------cut here---------------start------------->8---
> (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)))))
> 
> (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:[email-masked]#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:[email-masked]#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:[email-masked]#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)
> 
> dired-do-create-files(copy dired-copy-file "Copy" nil 67 nil nil)
> dired-do-copy(nil)
> funcall-interactively(dired-do-copy nil)
> call-interactively(dired-do-copy nil nil)
> command-execute(dired-do-copy)
> --8<---------------cut here---------------end--------------->8---
> 
> Looks like you are copying
> "/ssh:[email-masked]#2130:/home/admin/boccaperta/contabilita/fattureods/078_crowdknitting.ods"
> to "/home/manuel/documents/boccaperta/contabilita/boccaperta/reddito2015/fattureods/078_crowdknitting.ods".
> 
> Questions:
> 
> - Is "/ssh:[email-masked]#2130:/home/admin/boccaperta/contabilita/fattureods/078_crowdknitting.ods"
>   a regular file? Is it readable (ie, can you open it in Emacs)? Or is
>   it a link?
> 
> - Does the directory "/home/manuel/documents/boccaperta/contabilita/boccaperta/reddito2015/fattureods/"
>   exist? Is it writable (ie, can you create a new file in that
>   directory)? Does there exist already a file "078_crowdknitting.ods"?
> 
> - Given, you have a file "/tmp/078_crowdknitting.ods". Could you copy it to 
>   "/home/manuel/documents/boccaperta/contabilita/boccaperta/reddito2015/fattureods/078_crowdknitting.ods"
>   via dired?
> 
>> Regards,
>> Manuel
> 
> Best regards, Michael.
> 
To answer your questions:

-
"/ssh:[email-masked]#2130:/home/admin/boccaperta/contabilita/fattureods/078_crowdknitting.ods"
is a regular file, I can open it with LibreOffice Calc (.ods) via Dired
- the directory
"/home/manuel/documents/boccaperta/contabilita/boccaperta/reddito2015/fattureods/"
exists and it is writable
- no, same error.

Best regards

Manuel Uberti
<[email-masked]>