при обновлении с Rails 3.0.9 до 3.1.0 процессор Ruby на 99% загружается в процессор - PullRequest
3 голосов
/ 08 ноября 2011

Я пробовал это пару раз сейчас.Я использую rvm, а рубин, который я использую, - это 1.8.7.Запуск «обновления пакета» после изменения моего Gemfile приводит к зависанию процессора почти на 100%.Работает уже более часа.Есть ли что-то особенное, что мне нужно сделать?

1 Ответ

6 голосов
/ 05 декабря 2011

Я выяснил, как это отладить, и, таким образом, смог решить мои проблемы.

Короткая версия (на основании моих поверхностных знаний о сборщике):

  • bundle updateили bundle install оба просматривают ваш Gemfile и затем пытаются разрешить зависимости для указанных самоцветов.Этот шаг заставляет ваш процессор сгореть, скорее всего (это должно произойти после того, как он напечатает Fetching source index for http://rubygems.org/)

Я столкнулся с тем, что иногда Bundler застревает в бесконечном цикле (или, по крайней мере, дольше, чем я ожидал) пытаясь разрешить конфликтующие требования.В моем случае это было то, что двум разным драгоценным камням требовался третий драгоценный камень с различными требованиями к версии.

По какой-то причине, упаковщик попал в бесконечный цикл (или в очень, очень длинный цикл), пытаясьразрешить зависимости.

Я в основном нашел эту проблему на github: https://github.com/carlhuda/bundler/issues/1450

, которая заставила меня попробовать эту команду:

DEBUG_RESOLVER=1 bundle install

Выполнениеэто дало мне достаточно информации, чтобы идентифицировать гем-зависимость, которая сбивала с толку компоновщика.В моем случае это были два разных драгоценных камня, требующие разных версий гема строителя.

Я исправил это, указав версию компоновщика, которая будет работать для обоих самоцветов:

gem 'builder', '~> 3.0.0'

Это решило проблему, и в следующий раз, когда я запустил установку или обновление, оно завершилось за разумное время.

Надеюсь, это поможет вам разобраться в вашей проблеме.

...