Project

General

Profile

Actions

Bug #13511

closed

gem install fails on UNIX accounts with limited process count.

Added by hugespider (Clauss Gigantisch) almost 7 years ago. Updated almost 7 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.6p396 (2016-11-15 revision 56800) [x86_64-freebsd10.3]
[ruby-core:80873]

Description

On web hosting server ( paid remote server ) I cannot build libv8, because building system runs out of available processes.
Process limit is set to fixed value on that account.

So far I see no way to pass that limit to gem's building system so it runs out of available processes count and aborts because of that.

$ gem install libv8
Building native extensions.  This could take a while...
ERROR:  Error installing libv8:
	ERROR: Failed to build gem native extension.

    current directory: /usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/ext/libv8
/home/spide/.rvm/rubies/ruby-2.2.6/bin/ruby -r ./siteconf20170424-25391-1h47ct5.rb extconf.rb
creating Makefile

v8/third_party/icu (ERROR)
----------------------------------------
[0:01:05] Started.
[0:01:05] 
Traceback (most recent call last):
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 962, in _Clone
    self._Run(clone_cmd, options, cwd=self._root_dir, retry=True)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 1249, in _Run
    gclient_utils.CheckCallAndFilterAndHeader(cmd, env=env, **kwargs)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_utils.py", line 293, in CheckCallAndFilterAndHeader
    return CheckCallAndFilter(args, **kwargs)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_utils.py", line 557, in CheckCallAndFilter
    **kwargs)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/subprocess2.py", line 262, in __init__
    % (str(e), kwargs.get('cwd'), args[0]))
OSError: Execution failed with error: [Errno 35] Resource temporarily unavailable.
Check that /usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor or git exist and have execution permission.
----------------------------------------
Traceback (most recent call last):
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient.py", line 2360, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient.py", line 2346, in main
    return dispatcher.execute(OptionParser(), argv)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/subcommand.py", line 252, in execute
    return command(parser, args[1:])
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient.py", line 2099, in CMDsync
    ret = client.RunOnDeps('update', args)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient.py", line 1550, in RunOnDeps
    work_queue.flush(revision_overrides, command, args, options=self._options)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_utils.py", line 1112, in run
    self.item.run(*self.args, **self.kwargs)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient.py", line 850, in run
    file_list)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 166, in RunCommand
    return getattr(self, command)(options, args, file_list)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 450, in update
    self._Clone(revision, url, options)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 962, in _Clone
    self._Run(clone_cmd, options, cwd=self._root_dir, retry=True)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 1249, in _Run
    gclient_utils.CheckCallAndFilterAndHeader(cmd, env=env, **kwargs)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_utils.py", line 293, in CheckCallAndFilterAndHeader
    return CheckCallAndFilter(args, **kwargs)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_utils.py", line 557, in CheckCallAndFilter
    **kwargs)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/subprocess2.py", line 262, in __init__
    % (str(e), kwargs.get('cwd'), args[0]))
OSError: Execution failed with error: [Errno 35] Resource temporarily unavailable.
Check that /usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor or git exist and have execution permission.
Running: gclient root
Running: gclient config --spec 'solutions = [
  {
    "managed": False,
    "name": "v8",
    "url": "https://chromium.googlesource.com/v8/v8.git",
    "custom_deps": {},
    "deps_file": "DEPS",
    "safesync_url": "",
  },
]
'
Running: gclient sync --with_branch_heads
Traceback (most recent call last):
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 353, in <module>
    sys.exit(main())
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 348, in main
    return run(options, spec, root)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 342, in run
    return checkout.init()
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 142, in init
    self.run_gclient(*sync_cmd)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 76, in run_gclient
    return self.run(cmd_prefix + cmd, **kwargs)
  File "/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 66, in run
    return subprocess.check_output(cmd, **kwargs)
  File "/usr/local/lib/python2.7/subprocess.py", line 219, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '('gclient', 'sync', '--with_branch_heads')' returned non-zero exit status 1
/usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/ext/libv8/builder.rb:109:in `block in setup_build_deps!': unable to fetch v8 source (RuntimeError)
	from /usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/ext/libv8/builder.rb:107:in `chdir'
	from /usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/ext/libv8/builder.rb:107:in `setup_build_deps!'
	from /usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/ext/libv8/builder.rb:63:in `build_libv8!'
	from /usr/home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5/ext/libv8/location.rb:24:in `install!'
	from extconf.rb:7:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /home/spide/.rvm/gems/ruby-2.2.6/gems/libv8-5.3.332.38.5 for inspection.
Results logged to /home/spide/.rvm/gems/ruby-2.2.6/extensions/x86_64-freebsd-10/2.2.0/libv8-5.3.332.38.5/gem_make.out

Updated by nobu (Nobuyoshi Nakada) almost 7 years ago

  • Status changed from Open to Rejected

Try gem install --user-install.

Updated by hugespider (Clauss Gigantisch) almost 7 years ago

nobu (Nobuyoshi Nakada) wrote:

Try gem install --user-install.

Like this?

$ gem install libv8 --user-install
WARNING:  You don't have /home/spider/.gem/ruby/2.2.0/bin in your PATH,
	  gem executables will not run.
Building native extensions.  This could take a while...
ERROR:  Error installing libv8:
	ERROR: Failed to build gem native extension.

    current directory: /usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/ext/libv8
/home/spider/.rvm/rubies/ruby-2.2.6/bin/ruby -r ./siteconf20170426-51278-i2ejt3.rb extconf.rb
creating Makefile

v8/third_party/instrumented_libraries (ERROR)
----------------------------------------
[0:01:11] Started.
[0:01:11] 
Traceback (most recent call last):
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 962, in _Clone
    self._Run(clone_cmd, options, cwd=self._root_dir, retry=True)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 1249, in _Run
    gclient_utils.CheckCallAndFilterAndHeader(cmd, env=env, **kwargs)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_utils.py", line 293, in CheckCallAndFilterAndHeader
    return CheckCallAndFilter(args, **kwargs)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_utils.py", line 557, in CheckCallAndFilter
    **kwargs)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/subprocess2.py", line 262, in __init__
    % (str(e), kwargs.get('cwd'), args[0]))
OSError: Execution failed with error: [Errno 35] Resource temporarily unavailable.
Check that /usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor or git exist and have execution permission.
----------------------------------------
Traceback (most recent call last):
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient.py", line 2360, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient.py", line 2346, in main
    return dispatcher.execute(OptionParser(), argv)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/subcommand.py", line 252, in execute
    return command(parser, args[1:])
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient.py", line 2099, in CMDsync
    ret = client.RunOnDeps('update', args)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient.py", line 1550, in RunOnDeps
    work_queue.flush(revision_overrides, command, args, options=self._options)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_utils.py", line 1112, in run
    self.item.run(*self.args, **self.kwargs)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient.py", line 850, in run
    file_list)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 166, in RunCommand
    return getattr(self, command)(options, args, file_list)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 450, in update
    self._Clone(revision, url, options)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 962, in _Clone
    self._Run(clone_cmd, options, cwd=self._root_dir, retry=True)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_scm.py", line 1249, in _Run
    gclient_utils.CheckCallAndFilterAndHeader(cmd, env=env, **kwargs)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_utils.py", line 293, in CheckCallAndFilterAndHeader
    return CheckCallAndFilter(args, **kwargs)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/gclient_utils.py", line 557, in CheckCallAndFilter
    **kwargs)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/subprocess2.py", line 262, in __init__
    % (str(e), kwargs.get('cwd'), args[0]))
OSError: Execution failed with error: [Errno 35] Resource temporarily unavailable.
Check that /usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor or git exist and have execution permission.
Running: gclient root
Running: gclient config --spec 'solutions = [
  {
    "managed": False,
    "name": "v8",
    "url": "https://chromium.googlesource.com/v8/v8.git",
    "custom_deps": {},
    "deps_file": "DEPS",
    "safesync_url": "",
  },
]
'
Running: gclient sync --with_branch_heads
Traceback (most recent call last):
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 353, in <module>
    sys.exit(main())
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 348, in main
    return run(options, spec, root)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 342, in run
    return checkout.init()
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 142, in init
    self.run_gclient(*sync_cmd)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 76, in run_gclient
    return self.run(cmd_prefix + cmd, **kwargs)
  File "/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/vendor/depot_tools/fetch.py", line 66, in run
    return subprocess.check_output(cmd, **kwargs)
  File "/usr/local/lib/python2.7/subprocess.py", line 219, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '('gclient', 'sync', '--with_branch_heads')' returned non-zero exit status 1
/usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/ext/libv8/builder.rb:109:in `block in setup_build_deps!': unable to fetch v8 source (RuntimeError)
	from /usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/ext/libv8/builder.rb:107:in `chdir'
	from /usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/ext/libv8/builder.rb:107:in `setup_build_deps!'
	from /usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/ext/libv8/builder.rb:63:in `build_libv8!'
	from /usr/home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5/ext/libv8/location.rb:24:in `install!'
	from extconf.rb:7:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /home/spider/.gem/ruby/2.2.0/gems/libv8-5.3.332.38.5 for inspection.
Results logged to /home/spider/.gem/ruby/2.2.0/extensions/x86_64-freebsd-10/2.2.0/libv8-5.3.332.38.5/gem_make.out

Resources still not available.
I see issue is closed, so maybe I'm addressing wrong project and ask author(s) of libv8 ( or anything in between )? Or ruby is not going to run in limited resources environment( in this case maximum processes limit )?

May I ask for any comment on why it was rejected?

Updated by nobu (Nobuyoshi Nakada) almost 7 years ago

  • Status changed from Rejected to Third Party's Issue

hugespider (Clauss Gigantisch) wrote:

I see issue is closed, so maybe I'm addressing wrong project and ask author(s) of libv8 ( or anything in between )?

Yes, exactly.

Updated by ignisf (Petko Bordjukov) almost 7 years ago

Hello, libv8 maintainer here. This really does not look like an issue with Ruby itself. Seems to me it's due to Google's depot_tools spawning a bunch of processes to fetch v8 and its dependencies' sources. Further discussion: https://github.com/cowboyd/libv8/issues/236

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0