tjeden
November 16, 2010, 10:56am
1
Dręczy nas paskudny błąd. Od czasu do czasu wywala się aplikacja,passenger renderuje stronę błędu, a po odświeżeniu strony jest już ok. W logach passengera znaleźliśmy to:
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/1.8/yaml.rb:133: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/autosave_association.rb:168: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/memoizable.rb:32: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/autosave_association.rb:183: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10
/var/www/kumulator/releases/20100804075146/vendor/plugins/newrelic_rpm/lib/new_relic/agent/method_tracer.rb:135: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/memoizable.rb:32: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/memoizable.rb:32: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/routing/route_set.rb:151: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/routing/route_set.rb:151: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/memoizable.rb:32: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10
Dzieje się to pod Debianem, REE, passenger 3.0.0 (na 2.2.14 było tak samo) z nginxem. Mamy tam trzy aplikacje, które chodzą na następujących wersjach Railsów: 1.2.3, 2.1.0 i 2.3.4
Zainstalowanie nowej wersję REE (ruby 1.8.7 (2010-04-19 patchlevel 253) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2010.02) i reinstalacja gemów nie pomogła.
Jakieś wskazówki co z tym zrobić i jak to rozwiązać? (Poza zaoraniem systemu i instalacji wszystkiego na nowo).
Tomash
November 16, 2010, 11:35am
2
Zaorać REE i postawić waniliowego 187. Mieliśmy podobne jazdy z REE, po jego wywaleniu może i zużycie pamięci wzrosło, ale pozbyliśmy się tych frustrujących błędów.
lotus
November 16, 2010, 1:24pm
3
Miałem (chyba) to samo http://stackoverflow.com/questions/3915095/ruby-free-invalid-pointer . Zgłosiłem buga, ale niestety nie miałem już pliku YAML, który to powodował i nie potrafiłem tego zreplikować. Generalnie wychodzi na to, że jak masz jakiś specyficzny YAML, to się wywala (na MRI i REE). Obeszłem to tak, że zaorałem config/*.yml, zrobiłem od nowa w jakiś inny sposób i działa.
I jeszcze przestrzegę przed instalacją systemu od nowa - nie pomogło.
tjeden
November 17, 2010, 7:47am
4
Zainstalowałem czysty 187 i nie pomogło.
lotus
November 17, 2010, 8:54am
5
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/1.8/yaml.rb:133 to prawdopodobnie YAML.load(tak przynajmniej jest w wersji 2010.02). Pomyśl, gdzie w aplikacji może się ładować jakiś YAML i dzieje się to na tyle rzadko, że błąd wystepuje tylko “od czasu do czasu”. Prawdopodobnie nie jest to YAML z configa, bo wtedy aplikacja nawet by nie startowała. Przedefinuj sobie metodę YAML.load, żeby logowała argumenty jakie dostaje i zobacz co powoduje błąd.
seban
November 17, 2010, 9:02am
6
Jak kiedys mialem problem z Ruby 1.9.2 i YAMLem gdy uzywalem gema yajl-ruby. Mozesz masz ten sam problem?
Arsen7
November 17, 2010, 9:35am
7
Pewnie to nie to jest przyczyną problemu, ale podzielę się z kolegami.
U mnie YAML zazwyczaj powodował problemy przy serializacji atrybutów będących moimi modelami (oczywiście, że nie ActiveRecord! ) - a i to tylko w trybie developerskim. Rzeczywistym problemem jest to, że YAML, kiedy nie mógł z jakiegoś powodu odserializować obiektu, zwracał atrybut jako nietknięty String albo jakąś tam inną, swoją klasę, ale nie raczył w żaden sposób zalogować danych rzuconego wyjątku.
Wiele problemów można odkryć faktycznie przedefiniowując odpowiednie metody YAML-a; szczególnie kawałki gdzie występuje ‘rescue’ bez żadnej obsługi błędów.
UPDATE: Te ‘rescue’ mogą być w Railsach, a niekoniecznie w YAMLu.
Ja miałem problem z yajl-ruby. Nie udało mi się go rozwiązać, po prostu nie działało.
Ostatecznie zrobiłem sobie lokalny hack na fallback do zwykłego jsona.
seban
November 17, 2010, 12:32pm
9
tjeden
November 18, 2010, 2:09pm
10
Wygląda na to, że czyste 1.8.7 jednak pomogło. Od wczoraj bug się nie pojawił. Dzięki za wszystkie sugestie.
Witam,
Ruby uzywam od wczoraj i nie ogarniam jeszcze podstaw, ale
Wykonuję taką komendę do zassania bazy:
heroku db:pull --app appname mysql://pisp:a@localhost/appname
Generalnie wszystko wygląda dobrze na początku ale na koncu coś sie wysypuje. Moglibyście mi pomóc?
[code]Loaded Taps v0.3.14
Warning: Data in the database ‘mysql://pisp:a@localhost/appname’ will be overwritten and will not be recoverable.
! WARNING: Potentially Destructive Action
! This command will affect the app: mobica
! To proceed, type “appname” or re-run this command with --confirm appname
appname
Receiving schema
Schema: 0% | | ETA: --:–:--
Schema: 7% |== | ETA: 00:00:41
Schema: 14% |===== | ETA: 00:00:37
Schema: 21% |======== | ETA: 00:00:33
Schema: 28% |=========== | ETA: 00:00:30
Schema: 35% |============== | ETA: 00:00:27
Schema: 42% |================= | ETA: 00:00:24
Schema: 50% |===================== | ETA: 00:00:21
Schema: 57% |======================= | ETA: 00:00:18
Schema: 64% |========================== | ETA: 00:00:15
Schema: 71% |============================= | ETA: 00:00:12
Schema: 78% |================================ | ETA: 00:00:09
Schema: 85% |=================================== | ETA: 00:00:06
Schema: 92% |====================================== | ETA: 00:00:03
Schema: 100% |==========================================| Time: 00:00:42
Receiving indexes
offers: 0% | | ETA: --:–:--
offers: 50% |===================== | ETA: 00:00:02
offers: 100% |==========================================| Time: 00:00:04
leads: 0% | | ETA: --:–:--
leads: 33% |============= | ETA: 00:00:04
leads: 66% |=========================== | ETA: 00:00:02
leads: 100% |==========================================| Time: 00:00:06
todos: 0% | | ETA: --:–:--
todos: 50% |===================== | ETA: 00:00:02
todos: 100% |==========================================| Time: 00:00:04
schema_migrat: 0% | | ETA: --:–:--
schema_migrat: 100% |==========================================| Time: 00:00:02
projects: 0% | | ETA: --:–:--
projects: 25% |========== | ETA: 00:00:06
projects: 50% |===================== | ETA: 00:00:04
projects: 75% |=============================== | ETA: 00:00:02
projects: 100% |==========================================| Time: 00:00:09
engineers: 0% | | ETA: --:–:--
engineers: 100% |==========================================| Time: 00:00:02
signoffs: 0% | | ETA: --:–:--
signoffs: 50% |===================== | ETA: 00:00:02
signoffs: 100% |==========================================| Time: 00:00:04
companies: 0% | | ETA: --:–:--
companies: 100% |==========================================| Time: 00:00:02
assignments: 0% | | ETA: --:–:--
assignments: 33% |============= | ETA: 00:00:04
assignments: 66% |=========================== | ETA: 00:00:02
assignments: 100% |==========================================| Time: 00:00:06
bidforms: 0% | | ETA: --:–:--
bidforms: 100% |==========================================| Time: 00:00:02
users: 0% | | ETA: --:–:--
users: 100% |==========================================| Time: 00:00:02
contacts: 0% | | ETA: --:–:--
contacts: 50% |===================== | ETA: 00:00:02
contacts: 100% |==========================================| Time: 00:00:04
calls: 0% | | ETA: --:–:--
calls: 50% |===================== | ETA: 00:00:02
calls: 100% |==========================================| Time: 00:00:04
Receiving data
14 tables, 2,800 records
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:333: [BUG] Segmentation fault
ruby 1.9.2p0 (2010-08-18) [i386-mingw32]
– control frame ----------
c:0038 p:---- s:0179 b:0179 l:000178 d:000178 CFUNC :fetch_fields
c:0037 p:0018 s:0176 b:0176 l:001674 d:000175 BLOCK C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:333
c:0036 p:0044 s:0170 b:0170 l:000169 d:000169 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:167
c:0035 p:0021 s:0162 b:0162 l:001a40 d:000161 BLOCK C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:149
c:0034 p:0201 s:0159 b:0159 l:000158 d:000158 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/connection_pool/threaded.rb:84
c:0033 p:0026 s:0150 b:0150 l:000149 d:000149 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/database/connecting.rb:226
c:0032 p:0084 s:0145 b:0145 l:001a40 d:001a40 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:149
c:0031 p:0046 s:0139 b:0139 l:000138 d:000138 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/dataset/actions.rb:541
c:0030 p:0032 s:0133 b:0133 l:000132 d:000132 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:405
c:0029 p:0013 s:0127 b:0127 l:001674 d:001674 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:331
c:0028 p:0072 s:0122 b:0122 l:000121 d:000121 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/dataset/actions.rb:123
c:0027 p:---- s:0117 b:0117 l:000116 d:000116 FINISH
c:0026 p:---- s:0115 b:0115 l:001550 d:001550 CFUNC :map
c:0025 p:0059 s:0112 b:0112 l:000111 d:000111 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/dataset/actions.rb:342
c:0024 p:0072 s:0107 b:0107 l:001a94 d:001a94 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/shared/mysql.rb:243
c:0023 p:0163 s:0100 b:0100 l:000099 d:000099 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/database/query.rb:162
c:0022 p:0053 s:0091 b:0091 l:000090 d:000090 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/utils.rb:159
c:0021 p:0141 s:0085 b:0085 l:000084 d:000084 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/data_stream.rb:227
c:0020 p:0070 s:0080 b:0080 l:000068 d:000079 BLOCK C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:271
c:0019 p:---- s:0074 b:0074 l:000073 d:000073 FINISH
c:0018 p:---- s:0072 b:0072 l:000071 d:000071 CFUNC :each
c:0017 p:0070 s:0069 b:0069 l:000068 d:000068 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:269
c:0016 p:0078 s:0066 b:0066 l:00170c d:000065 BLOCK C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:244
c:0015 p:---- s:0064 b:0064 l:000063 d:000063 FINISH
c:0014 p:---- s:0062 b:0062 l:000061 d:000061 CFUNC :call
c:0013 p:0024 s:0059 b:0059 l:000058 d:000058 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:194
c:0012 p:0011 s:0054 b:0054 l:00170c d:00170c METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:237
c:0011 p:0093 s:0051 b:0051 l:000050 d:000050 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/cli.rb:169
c:0010 p:0193 s:0044 b:0044 l:000043 d:000043 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-1.14.10/lib/heroku/commands/db.rb:152
c:0009 p:0070 s:0038 b:0038 l:000037 d:000037 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-1.14.10/lib/heroku/commands/db.rb:25
c:0008 p:0080 s:0034 b:0034 l:000033 d:000033 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-1.14.10/lib/heroku/command.rb:48
c:0007 p:0073 s:0025 b:0025 l:000024 d:000024 METHOD C:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-1.14.10/lib/heroku/command.rb:20
c:0006 p:0177 s:0018 b:0018 l:000017 d:000017 TOP C:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-1.14.10/bin/heroku:13
c:0005 p:---- s:0013 b:0013 l:000012 d:000012 FINISH
c:0004 p:---- s:0011 b:0011 l:000010 d:000010 CFUNC :load
c:0003 p:0127 s:0007 b:0007 l:000514 d:000328 EVAL C:/Ruby192/bin/heroku:19
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:000514 d:000514 TOP
– Ruby level backtrace information ----------------------------------------
C:/Ruby192/bin/heroku:19:in <main>' C:/Ruby192/bin/heroku:19:in
load’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-1.14.10/bin/heroku:13:in <top (required)>' C:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-1.14.10/lib/heroku/command.rb:20:in
run’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-1.14.10/lib/heroku/command.rb:48:in run_internal' C:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-1.14.10/lib/heroku/commands/db.rb:25:in
pull’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-1.14.10/lib/heroku/commands/db.rb:152:in taps_client' C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/cli.rb:169:in
clientxfer’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:237:in run' C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:194:in
catch_errors’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:194:in call' C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:244:in
block in run’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:269:in pull_data' C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:269:in
each’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/operation.rb:271:in block in pull_data' C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/data_stream.rb:227:in
factory’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/taps-0.3.14/lib/taps/utils.rb:159:in single_integer_primary_key' C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/database/query.rb:162:in
schema’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/shared/mysql.rb:243:in schema_parse_table' C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/dataset/actions.rb:342:in
map’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/dataset/actions.rb:342:in map' C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/dataset/actions.rb:123:in
each’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:331:in fetch_rows' C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:405:in
execute’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/dataset/actions.rb:541:in execute' C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:149:in
execute’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/database/connecting.rb:226:in synchronize' C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/connection_pool/threaded.rb:84:in
hold’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:149:in block in execute' C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:167:in
_execute’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:333:in block in fetch_rows' C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:333:in
fetch_fields’
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.[/code]
Pozdrawiam
Piotr
EDIT:
Dodam jeszcze, że w wyniku działania komendy pobieram scheme bazy, ale nie mam jej zasilonej żadną wartością - prosze zwrócic uwagę na ten fragment powyższego ‘logu’ Receiving data
14 tables, 2,800 records
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sequel-3.17.0/lib/sequel/adapters/mysql.rb:333: [BUG] Segmentation fault
ruby 1.9.2p0 (2010-08-18) [i386-mingw32]
Tomash
December 17, 2010, 1:45pm
12
nie używaj ruby 1.9.1, bo jest niestabilny i nikt go nie wspiera. używaj 1.9.2
zgryw
December 17, 2010, 1:50pm
13
Ale z tego co widzę, to jest 1.9.2.
Paczkę instalacyjną ściągnąłem jako 1.9.2 z http://rubyforge.org/frs/download.php/72170/rubyinstaller-1.9.2-p0.exe - z tego wynika, ze korzysta z niestabilnych bibliotek?
EDIT:
Pod wpływem postu Tomasha wywaliłem całę Ruby i zainstalowalem wszystko od nowa. Problem zniknął (pojawił sie za to SQLowy), wiec możliwe, ze musiałem w instalacji po drodze coś wcześniej sknocić.