Project

General

Profile

Actions

Bug #14207

closed

Failed to build 2.5.0-rc1 on CircleCI

Added by minimum2scp (Tsuyoshi YAMADA) over 6 years ago. Updated over 6 years ago.

Status:
Closed
Target version:
ruby -v:
2.5.0-rc1
[ruby-dev:50373]

Description

CircleCI の docker 上で ruby 2.5.0-rc1 をビルドしてみたらエラーになりました。

make 時に多くの拡張ライブラリが "Could not be configured. It will not be installed" となっていて、
fileutilsで "Operation not permitted - copy_file_range" というメッセージが出ていました。

linking ruby
make[2]: Leaving directory '/tmp/ruby-2.5.0-rc1'
make[1]: Leaving directory '/tmp/ruby-2.5.0-rc1'
make[1]: Entering directory '/tmp/ruby-2.5.0-rc1'
*** Following extensions are not compiled:
dbm:
    Could not be configured. It will not be installed.
    /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:441: Operation not permitted - copy_file_range
    Check ext/dbm/mkmf.log for more details.
io/console:
    Could not be configured. It will not be installed.
    /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:441: Operation not permitted - copy_file_range
    Check ext/io/console/mkmf.log for more details.
io/nonblock:
    Could not be configured. It will not be installed.
    /tmp/ruby-2.5.0-rc1/lib/mkmf.rb:309: closed stream
    Check ext/io/nonblock/mkmf.log for more details.
io/wait:
    Could not be configured. It will not be installed.
    /tmp/ruby-2.5.0-rc1/lib/mkmf.rb:309: closed stream
    Check ext/io/wait/mkmf.log for more details.
etc:
    Could not be configured. It will not be installed.
    /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:441: Operation not permitted - copy_file_range
    Check ext/etc/mkmf.log for more details.

(snip)

readline:
    Could not be configured. It will not be installed.
    /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:441: Operation not permitted - copy_file_range
    Check ext/readline/mkmf.log for more details.
gdbm:
    Could not be configured. It will not be installed.
    /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:441: Operation not permitted - copy_file_range
    Check ext/gdbm/mkmf.log for more details.
openssl:
    Could not be configured. It will not be installed.
    /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:441: Operation not permitted - copy_file_range
    Check ext/openssl/mkmf.log for more details.
*** Fix the problems, then remove these directories and try again if you want.

また、 make install から呼ばれる do-install-nodoc ターゲットでも
"Operation not permitted - copy_file_range (Errno::EPERM)" のメッセージが
バックトレースとともに出ていました。

./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems -r./x86_64-linux-fake ./tool/rbinstall.rb --make="make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --mantype="man"
installing binary commands:         /usr/local/ruby-2.5.0-rc1/bin
/tmp/ruby-2.5.0-rc1/lib/fileutils.rb:1291:in `copy_stream': Operation not permitted - copy_file_range (Errno::EPERM)
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:1291:in `block (2 levels) in copy_file'
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:1290:in `open'
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:1290:in `block in copy_file'
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:1289:in `open'
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:1289:in `copy_file'
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:430:in `copy_file'
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:782:in `block in install'
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:1461:in `block in fu_each_src_dest'
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:1475:in `fu_each_src_dest0'
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:1459:in `fu_each_src_dest'
    from /tmp/ruby-2.5.0-rc1/lib/fileutils.rb:778:in `install'
    from ./tool/rbinstall.rb:167:in `install'
    from ./tool/rbinstall.rb:346:in `block in <main>'
    from ./tool/rbinstall.rb:853:in `block in <main>'
    from ./tool/rbinstall.rb:850:in `each'
    from ./tool/rbinstall.rb:850:in `<main>'
uncommon.mk:312: recipe for target 'do-install-nodoc' failed

この現象は、ビルドする対象を2.5.0-preview1に変更すると起きませんでした。
また、ローカルPC (Debian) の Docker では 2.5.0-rc1 でも 2.5.0-preview1 でも問題なくビルドできました。

CircleCI 上で git bisect して調べてみると、 r60284 で発生するようになったようです。

CircleCIでのビルド時のログと、再現のための Dockerfile, .circleci/config.yml を添付します。


Files

build-2.5.0-rc1.log (85.8 KB) build-2.5.0-rc1.log minimum2scp (Tsuyoshi YAMADA), 12/20/2017 03:06 AM
Dockerfile (520 Bytes) Dockerfile minimum2scp (Tsuyoshi YAMADA), 12/20/2017 03:06 AM
config.yml (319 Bytes) config.yml .circleci/config.yml minimum2scp (Tsuyoshi YAMADA), 12/20/2017 03:06 AM
14207.patch (824 Bytes) 14207.patch sorah (Sorah Fukumori), 12/20/2017 08:27 AM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0