web-dev-qa-db-fra.com

ruby sur Rails la console est suspendue lors du chargement

Pour quelque raison que ce soit Rails refuse de démarrer, elle se bloque. Je n’ai apporté aucune modification à mon code, et d’autres projets utilisant la même version de Ruby = et Rails n'ont pas de problème. Quand je finis par Ctrl + C je récupère cette trace de pile, qui pointe vers le ressort.

Je ne peux pas expliquer pourquoi cela se produit d'un moment à l'autre, alors que cela fonctionnait bien. J'ai effacé toutes les pierres précieuses via RVM et réinstallé tout au long de la commande bundle, mais toujours pas de chance. Toute idée serait appréciée.

De plus, le serveur Rails n'a pas de problème. Donc, autant que je sache, le problème est lié au projet. Cependant, aucun code n'a changé et sa seule Rails qui a le problème.

Ruby 2.1.2 Rails 4.1.4

user_a@ubuntu:~/work/app_a$ Rails console
^C/home/user_a/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:54:in `gets': Interrupt
    from /home/user_a/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:54:in `verify_server_version'
    from /home/user_a/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:25:in `call'
    from /home/user_a/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
    from /home/user_a/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/Rails.rb:23:in `call'
    from /home/user_a/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
    from /home/user_a/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client.rb:26:in `run'
    from /home/user_a/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/bin/spring:48:in `<top (required)>'
    from /home/user_a/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load'
    from /home/user_a/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>'
    from /home/user_a/work/app_a/bin/spring:16:in `require'
    from /home/user_a/work/app_a/bin/spring:16:in `<top (required)>'
    from bin/Rails:3:in `load'
    from bin/Rails:3:in `<main>'

user_a@ubuntu:~/work/app_a$ 
125
theog

Le redémarrage du ressort devrait corriger les commandes suspendues:

$ bin/spring stop

J'ai expérimenté des commandes en attente (rake, bin/Rails, etc.) après avoir supprimé et recréé une nouvelle Rails. Google n'était pas très utile. J'espère que c'est le cas.

Spring démarre automatiquement lorsque vous relancez votre commande.

376
cee-dub

C'est quelque chose qui ne va pas avec la version Spring Gem, je suppose.

Allez dans votre Gemfile et commentez le joyau 'printemps'. Ensuite, lancez bundle install et réessayez.

# gem 'spring'

puis:

bundle install 

Si votre travail dépend de la gemme, essayez de mettre à jour les gemmes en:

bundle update
7
Eki Eqbal

Si $ bin/spring stop ne résout pas le problème, puis assurez-vous qu’il n’y a pas encore de processus Spring orphelin qui traîne:

$ ps aux | grep -i spring

Si vous voyez quelque chose comme

user  7163  0.0  0.0 110356  2165 pts/3    S+   19:40   0:00 grep --color=auto -i spring
user 16980  0.0  0.4 398826 17580 ?        Sl   Aug31   0:00 spring server | current | started 277 hours ago     

puis tuez le processus de printemps errant et essayez de redémarrer la console:

$ kill -9 16980 
$ Rails c
1
littleforest

Quand on soupçonne que le printemps est la cause de l'étrangeté, essayez d'exécuter cette commande

spring stop && spring start
0
Yurii Halapup