लोड होने पर रेल्स कंसोल पर रूबी लटकी हुई है


146

जो भी कारण के लिए, रेल कंसोल पर रूबी शुरू करने से इनकार करता है; यह बस लटका हुआ है। मैंने अपने कोड में कोई बदलाव नहीं किया है, और रूबी पर रूबी और रूबी के समान संस्करण का उपयोग करने वाली अन्य परियोजनाओं में कोई समस्या नहीं है। जब मैं अंत में Ctrl+ Cमुझे यह स्टैक ट्रेस मिलता है, जो स्प्रिंग को इंगित करता है।

मैं समझा नहीं सकता कि यह एक क्षण से दूसरे क्षण तक क्यों हो रहा है, जहां यह ठीक काम कर रहा था। मैंने आरवीएम के माध्यम से सभी रत्नों को साफ कर दिया है और बंडल कमांड के माध्यम से सभी को फिर से स्थापित किया है, लेकिन फिर भी कोई भाग्य नहीं है। किसी भी सुझाव की सराहना की जाएगी।

इसके अलावा रूबी ऑन रेल सर्वर का कोई मुद्दा नहीं है जहां तक ​​मैं बता सकता हूं। मुद्दा परियोजना से संबंधित है, हालांकि कोई भी कोड नहीं बदला गया है, और यह केवल रूबी ऑन रेल्स कंसोल है जिसमें समस्या है।

रूबी 2.1.2
रेल 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$

जवाबों:


415

स्प्रिंग को फिर से शुरू करने से हैंगिंग कमांड को ठीक करना चाहिए:

$ bin/spring stop

मैंने पटरियों पर एक नई रूबी को हटाने और फिर से बनाने के बाद हैंगिंग कमांड (रेक, बिन / रेल, आदि) का अनुभव किया। Google उस मददगार नहीं था। मुझे आशा है कि यह है।

जब आप अपनी कमान फिर से चलाएँगे तो स्प्रिंग अपने आप शुरू हो जाएगा।


यह मेरे लिए 4.1.1 रेल के साथ काम किया। मुझे यह देखने के लिए स्प्रिंग मणि पर पढ़ने की जरूरत है कि यह क्या कर रहा है।
जेटीम्स

1
@ cee-dub लेकिन इसके पीछे क्या कारण है, क्यों वसंत इसे रेलिंग कंसोल चलाने नहीं दे रहा है?
कमल

3
इसने मेरे लिए काम नहीं किया। मैं वसंत को रोकने के बाद भी समस्या का सामना कर रहा हूं।
डोनाटो

3
बस इस मुद्दे में भाग गया: जब मैं भागा bin/spring stop, Spring is not running.तो मुझे प्रतिक्रिया मिली, तो मैं भाग गया ps aux | grep spring, 5 वसंत प्रक्रियाओं को देखा, और मैन्युअल रूप से उन्हें मार दिया, जिसने समस्या को ठीक कर दिया।
इयान टेलर

गजब का! कभी अनुमान नहीं लगाया होगा कि।
रामबेटिनो

7

मुझे लगता है कि स्प्रिंग मणि संस्करण के साथ यह कुछ गलत है।

अपने Gemfile पर जाएं और मणि 'वसंत' पर टिप्पणी करें। फिर दौड़ें bundle installऔर फिर से प्रयास करें।

# gem 'spring'

और तब:

bundle install

यदि आपका काम रत्न पर निर्भर करता है, तो रत्न को अपडेट करके देखें:

bundle update

यह मेरे लिए भी लिनक्स टकसाल पर 4.1.4
slhck

3
से सावधान रहना bundle update। यदि आप इसे इस तरह से करते हैं तो आपके पास पूरे वातावरण में अपने रत्न संस्करणों को मौलिक रूप से बदलने का मौका है। यह बहुत सारे साइड इफेक्ट्स पेश कर सकता है जो आप नहीं चाहते हैं। आप bundle update spring
जायडेल जूल

@ संजय आपको हमेशा अपने संस्करणों को अपने जेफाइल में रखना चाहिए, जिसमें पथ संस्करण भी शामिल है। बुंडलर स्वचालित रूप से मामूली संस्करणों को अपडेट करेगा, लेकिन प्रमुख संस्करणों को नहीं, लेकिन आप उस संस्करण में वापस रोल कर सकते हैं जिसे आपने मूल रूप से निर्दिष्ट किया था (जिसे आप जानते हैं कि आपका ऐप काम करता है) किसी भी समय।
बेन ऑबिन

अपने Gemfile में संस्करण डालने के विषय में - सहमत। मैं प्रमुख संस्करणों को अद्यतन करने पर प्रतिबंध के बारे में नहीं जानता था, लेकिन यह समझ में आता है जब मुझे लगता है कि इसके माध्यम से :) अच्छी जानकारी, धन्यवाद
jaydel

3

यदि $ bin/spring stopसमस्या हल नहीं होती है, तो यह सुनिश्चित करने के लिए जांचें कि कोई अनाथ स्प्रिंग प्रक्रिया अभी भी चारों ओर लटकी नहीं है:

$ ps aux | grep -i spring

अगर आपको कुछ ऐसा दिख रहा है

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     

इसके बाद गलत स्प्रिंग प्रक्रिया को मारें और कंसोल को फिर से शुरू करने का प्रयास करें:

$ kill -9 16980 
$ rails c

1

जब यह संदेह होता है कि वसंत अजीबता का कारण है, तो इस आदेश को चलाने का प्रयास करें:

spring stop && spring start
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.