ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:49687] [Ruby trunk Misc#12520] CIFS raises Errno::EACCES for chown while UID not found in remote system
       [not found] <redmine.issue-12520.20160626114333@ruby-lang.org>
@ 2016-06-26 11:43 ` artonx
  2016-06-26 18:17 ` [ruby-dev:49688] [Ruby trunk Bug#12520] " nobu
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 5+ messages in thread
From: artonx @ 2016-06-26 11:43 UTC (permalink / raw
  To: ruby-dev

Issue #12520 has been reported by Akio Tajima.

----------------------------------------
Misc #12520: CIFS raises Errno::EACCES for chown while UID not found in remote system
https://bugs.ruby-lang.org/issues/12520

* Author: Akio Tajima
* Status: Open
* Priority: Normal
* Assignee: 
----------------------------------------
FileUtilsを利用した:preserve => trueのcp_r中に例外となります。(題名が真の原因かは不明。それ以外に思い当たる点がない)
システムはDebian jessieです。
~~~
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08)
~~~
具体的には以下のようになりました。
~~~
/usr/local/lib/ruby/2.3.0/fileutils.rb:1411:in `chown': Permission denied @ chown_internal - /mnt/media/Music2/iTunes/iTunes Music/Jeanette/Porque Te Vas/02 Porqué Te Vas_.m4a (Errno::EACCES)
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1411:in `copy_metadata'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:475:in `block in copy_entry'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1504:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1501:in `block in wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `each'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1501:in `block in wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `each'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:469:in `copy_entry'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:444:in `block in cp_r'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1571:in `block in fu_each_src_dest'
~~~
やりたいことはmtimeのコピーですが、FileUtils.cp_rでは:mtimeを個々のファイルごとに指定できないので:preserveを利用する以外に方法がありません(ここに別解があればそれでも良いのでBUGではなくMiscにしています)。
リファレンスによれば、:preserveは、
~~~
:preserve
    真を指定すると更新時刻と、可能なら所有ユーザ・所有グループもコピーします。
~~~
と、chownについては努力目標となっています。
というわけで、以下のようにErrno::EACCESも救済したいです。
~~~
--- devl/ruby-2.3.1/lib/fileutils.rb	2015-12-16 14:07:31.000000000 +0900
+++ /usr/local/lib/ruby/2.3.0/fileutils.rb	2016-06-26 20:24:57.552398812 +0900
@@ -1410,7 +1410,7 @@ module FileUtils
         else
           File.chown st.uid, st.gid, path
         end
-      rescue Errno::EPERM
+      rescue Errno::EPERM, Errno::EACCES
         # clear setuid/setgid
         if st.symlink?
           begin
~~~
よろしくお願いします。



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:49688] [Ruby trunk Bug#12520] CIFS raises Errno::EACCES for chown while UID not found in remote system
       [not found] <redmine.issue-12520.20160626114333@ruby-lang.org>
  2016-06-26 11:43 ` [ruby-dev:49687] [Ruby trunk Misc#12520] CIFS raises Errno::EACCES for chown while UID not found in remote system artonx
@ 2016-06-26 18:17 ` nobu
  2016-06-27  1:30 ` [ruby-dev:49689] [Ruby trunk Bug#12520][Assigned] " nobu
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 5+ messages in thread
From: nobu @ 2016-06-26 18:17 UTC (permalink / raw
  To: ruby-dev

Issue #12520 has been updated by Nobuyoshi Nakada.

Tracker changed from Misc to Bug
Description updated
Backport set to 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN

試してはいないのですが、`FileUtils.install(preserve: true)` ではどうでしょうか。

----------------------------------------
Bug #12520: CIFS raises Errno::EACCES for chown while UID not found in remote system
https://bugs.ruby-lang.org/issues/12520#change-59357

* Author: Akio Tajima
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
`FileUtils`を利用した`:preserve => true`の`cp_r`中に例外となります。(題名が真の原因かは不明。それ以外に思い当たる点がない)
システムはDebian jessieです。

~~~
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08)
~~~
具体的には以下のようになりました。

~~~
/usr/local/lib/ruby/2.3.0/fileutils.rb:1411:in `chown': Permission denied @ chown_internal - /mnt/media/Music2/iTunes/iTunes Music/Jeanette/Porque Te Vas/02 Porqué Te Vas_.m4a (Errno::EACCES)
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1411:in `copy_metadata'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:475:in `block in copy_entry'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1504:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1501:in `block in wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `each'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1501:in `block in wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `each'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:469:in `copy_entry'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:444:in `block in cp_r'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1571:in `block in fu_each_src_dest'
~~~
やりたいことはmtimeのコピーですが、`FileUtils.cp_r`では`:mtime`を個々のファイルごとに指定できないので`:preserve`を利用する以外に方法がありません(ここに別解があればそれでも良いのでBUGではなくMiscにしています)。
リファレンスによれば、`:preserve`は、

> ~~~
:preserve
    真を指定すると更新時刻と、可能なら所有ユーザ・所有グループもコピーします。
~~~

と、`chown`については努力目標となっています。
というわけで、以下のように`Errno::EACCES`も救済したいです。

~~~diff
--- devl/ruby-2.3.1/lib/fileutils.rb	2015-12-16 14:07:31.000000000 +0900
+++ /usr/local/lib/ruby/2.3.0/fileutils.rb	2016-06-26 20:24:57.552398812 +0900
@@ -1410,7 +1410,7 @@ module FileUtils
         else
           File.chown st.uid, st.gid, path
         end
-      rescue Errno::EPERM
+      rescue Errno::EPERM, Errno::EACCES
         # clear setuid/setgid
         if st.symlink?
           begin
~~~
よろしくお願いします。



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:49689] [Ruby trunk Bug#12520][Assigned] CIFS raises Errno::EACCES for chown while UID not found in remote system
       [not found] <redmine.issue-12520.20160626114333@ruby-lang.org>
  2016-06-26 11:43 ` [ruby-dev:49687] [Ruby trunk Misc#12520] CIFS raises Errno::EACCES for chown while UID not found in remote system artonx
  2016-06-26 18:17 ` [ruby-dev:49688] [Ruby trunk Bug#12520] " nobu
@ 2016-06-27  1:30 ` nobu
  2016-06-27  9:55 ` [ruby-dev:49690] [Ruby trunk Bug#12520][Feedback] " artonx
  2016-06-27 12:02 ` [ruby-dev:49691] [Ruby trunk Bug#12520] " nobu
  4 siblings, 0 replies; 5+ messages in thread
From: nobu @ 2016-06-27  1:30 UTC (permalink / raw
  To: ruby-dev

Issue #12520 has been updated by Nobuyoshi Nakada.

Status changed from Open to Assigned
Assignee set to Akio Tajima

----------------------------------------
Bug #12520: CIFS raises Errno::EACCES for chown while UID not found in remote system
https://bugs.ruby-lang.org/issues/12520#change-59362

* Author: Akio Tajima
* Status: Assigned
* Priority: Normal
* Assignee: Akio Tajima
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
`FileUtils`を利用した`:preserve => true`の`cp_r`中に例外となります。(題名が真の原因かは不明。それ以外に思い当たる点がない)
システムはDebian jessieです。

~~~
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08)
~~~
具体的には以下のようになりました。

~~~
/usr/local/lib/ruby/2.3.0/fileutils.rb:1411:in `chown': Permission denied @ chown_internal - /mnt/media/Music2/iTunes/iTunes Music/Jeanette/Porque Te Vas/02 Porqué Te Vas_.m4a (Errno::EACCES)
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1411:in `copy_metadata'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:475:in `block in copy_entry'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1504:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1501:in `block in wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `each'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1501:in `block in wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `each'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:469:in `copy_entry'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:444:in `block in cp_r'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1571:in `block in fu_each_src_dest'
~~~
やりたいことはmtimeのコピーですが、`FileUtils.cp_r`では`:mtime`を個々のファイルごとに指定できないので`:preserve`を利用する以外に方法がありません(ここに別解があればそれでも良いのでBUGではなくMiscにしています)。
リファレンスによれば、`:preserve`は、

> ~~~
:preserve
    真を指定すると更新時刻と、可能なら所有ユーザ・所有グループもコピーします。
~~~

と、`chown`については努力目標となっています。
というわけで、以下のように`Errno::EACCES`も救済したいです。

~~~diff
--- devl/ruby-2.3.1/lib/fileutils.rb	2015-12-16 14:07:31.000000000 +0900
+++ /usr/local/lib/ruby/2.3.0/fileutils.rb	2016-06-26 20:24:57.552398812 +0900
@@ -1410,7 +1410,7 @@ module FileUtils
         else
           File.chown st.uid, st.gid, path
         end
-      rescue Errno::EPERM
+      rescue Errno::EPERM, Errno::EACCES
         # clear setuid/setgid
         if st.symlink?
           begin
~~~
よろしくお願いします。



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:49690] [Ruby trunk Bug#12520][Feedback] CIFS raises Errno::EACCES for chown while UID not found in remote system
       [not found] <redmine.issue-12520.20160626114333@ruby-lang.org>
                   ` (2 preceding siblings ...)
  2016-06-27  1:30 ` [ruby-dev:49689] [Ruby trunk Bug#12520][Assigned] " nobu
@ 2016-06-27  9:55 ` artonx
  2016-06-27 12:02 ` [ruby-dev:49691] [Ruby trunk Bug#12520] " nobu
  4 siblings, 0 replies; 5+ messages in thread
From: artonx @ 2016-06-27  9:55 UTC (permalink / raw
  To: ruby-dev

Issue #12520 has been updated by Akio Tajima.

Status changed from Assigned to Feedback

installは次の2点がcp_rと違って、あまり使いたくはないというのが本音です。
1. file_compareで内容を比較する=> 実行ファイルのインストールなら理解できますが、サイズが違うかどうかで十分(この場合、全体量が数100GBあるので中まで読ませたくない。インストールならせいぜい100MB程度~数GB程度が対象とは思う)
2. やりたいことはinstallではなく、再帰的なコピー(名前重要)
とはいえ、代替案としては許容範囲でしょうね。
(もうちょっと考えてみます)

----------------------------------------
Bug #12520: CIFS raises Errno::EACCES for chown while UID not found in remote system
https://bugs.ruby-lang.org/issues/12520#change-59365

* Author: Akio Tajima
* Status: Feedback
* Priority: Normal
* Assignee: Akio Tajima
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
`FileUtils`を利用した`:preserve => true`の`cp_r`中に例外となります。(題名が真の原因かは不明。それ以外に思い当たる点がない)
システムはDebian jessieです。

~~~
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08)
~~~
具体的には以下のようになりました。

~~~
/usr/local/lib/ruby/2.3.0/fileutils.rb:1411:in `chown': Permission denied @ chown_internal - /mnt/media/Music2/iTunes/iTunes Music/Jeanette/Porque Te Vas/02 Porqué Te Vas_.m4a (Errno::EACCES)
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1411:in `copy_metadata'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:475:in `block in copy_entry'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1504:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1501:in `block in wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `each'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1501:in `block in wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `each'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:469:in `copy_entry'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:444:in `block in cp_r'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1571:in `block in fu_each_src_dest'
~~~
やりたいことはmtimeのコピーですが、`FileUtils.cp_r`では`:mtime`を個々のファイルごとに指定できないので`:preserve`を利用する以外に方法がありません(ここに別解があればそれでも良いのでBUGではなくMiscにしています)。
リファレンスによれば、`:preserve`は、

> ~~~
:preserve
    真を指定すると更新時刻と、可能なら所有ユーザ・所有グループもコピーします。
~~~

と、`chown`については努力目標となっています。
というわけで、以下のように`Errno::EACCES`も救済したいです。

~~~diff
--- devl/ruby-2.3.1/lib/fileutils.rb	2015-12-16 14:07:31.000000000 +0900
+++ /usr/local/lib/ruby/2.3.0/fileutils.rb	2016-06-26 20:24:57.552398812 +0900
@@ -1410,7 +1410,7 @@ module FileUtils
         else
           File.chown st.uid, st.gid, path
         end
-      rescue Errno::EPERM
+      rescue Errno::EPERM, Errno::EACCES
         # clear setuid/setgid
         if st.symlink?
           begin
~~~
よろしくお願いします。



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:49691] [Ruby trunk Bug#12520] CIFS raises Errno::EACCES for chown while UID not found in remote system
       [not found] <redmine.issue-12520.20160626114333@ruby-lang.org>
                   ` (3 preceding siblings ...)
  2016-06-27  9:55 ` [ruby-dev:49690] [Ruby trunk Bug#12520][Feedback] " artonx
@ 2016-06-27 12:02 ` nobu
  4 siblings, 0 replies; 5+ messages in thread
From: nobu @ 2016-06-27 12:02 UTC (permalink / raw
  To: ruby-dev

Issue #12520 has been updated by Nobuyoshi Nakada.


まぁそれはそれとして入れといていいんじゃないでしょうか。
そういう環境があるということであれば。

----------------------------------------
Bug #12520: CIFS raises Errno::EACCES for chown while UID not found in remote system
https://bugs.ruby-lang.org/issues/12520#change-59367

* Author: Akio Tajima
* Status: Feedback
* Priority: Normal
* Assignee: Akio Tajima
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
`FileUtils`を利用した`:preserve => true`の`cp_r`中に例外となります。(題名が真の原因かは不明。それ以外に思い当たる点がない)
システムはDebian jessieです。

~~~
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08)
~~~
具体的には以下のようになりました。

~~~
/usr/local/lib/ruby/2.3.0/fileutils.rb:1411:in `chown': Permission denied @ chown_internal - /mnt/media/Music2/iTunes/iTunes Music/Jeanette/Porque Te Vas/02 Porqué Te Vas_.m4a (Errno::EACCES)
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1411:in `copy_metadata'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:475:in `block in copy_entry'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1504:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1501:in `block in wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `each'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1501:in `block in wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `each'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1500:in `wrap_traverse'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:469:in `copy_entry'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:444:in `block in cp_r'
	from /usr/local/lib/ruby/2.3.0/fileutils.rb:1571:in `block in fu_each_src_dest'
~~~
やりたいことはmtimeのコピーですが、`FileUtils.cp_r`では`:mtime`を個々のファイルごとに指定できないので`:preserve`を利用する以外に方法がありません(ここに別解があればそれでも良いのでBUGではなくMiscにしています)。
リファレンスによれば、`:preserve`は、

> ~~~
:preserve
    真を指定すると更新時刻と、可能なら所有ユーザ・所有グループもコピーします。
~~~

と、`chown`については努力目標となっています。
というわけで、以下のように`Errno::EACCES`も救済したいです。

~~~diff
--- devl/ruby-2.3.1/lib/fileutils.rb	2015-12-16 14:07:31.000000000 +0900
+++ /usr/local/lib/ruby/2.3.0/fileutils.rb	2016-06-26 20:24:57.552398812 +0900
@@ -1410,7 +1410,7 @@ module FileUtils
         else
           File.chown st.uid, st.gid, path
         end
-      rescue Errno::EPERM
+      rescue Errno::EPERM, Errno::EACCES
         # clear setuid/setgid
         if st.symlink?
           begin
~~~
よろしくお願いします。



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-06-27 11:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <redmine.issue-12520.20160626114333@ruby-lang.org>
2016-06-26 11:43 ` [ruby-dev:49687] [Ruby trunk Misc#12520] CIFS raises Errno::EACCES for chown while UID not found in remote system artonx
2016-06-26 18:17 ` [ruby-dev:49688] [Ruby trunk Bug#12520] " nobu
2016-06-27  1:30 ` [ruby-dev:49689] [Ruby trunk Bug#12520][Assigned] " nobu
2016-06-27  9:55 ` [ruby-dev:49690] [Ruby trunk Bug#12520][Feedback] " artonx
2016-06-27 12:02 ` [ruby-dev:49691] [Ruby trunk Bug#12520] " nobu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).