Rails Error: [BUG] Segmentation Fault

Olá,

Estou com um problema quando tento atualizar um página seguidamente. O Ruby interpreter simplesmente para de funcionar.

O código que tenho é o seguinte:

def index render :text => "#{Time.now}" end
Estou rodando o Rails 2.2 no Windows Vista e a mensagem que aparece no console é a seguinte:

C:/langs/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:1285: [BUG] Segmentation fault ruby 1.8.7 (2008-05-31 patchlevel 0) [i386-mswin32]
Alguma idéia do que pode ser?

Abração,

Felipe

Jesus!

Nunca vi isso.

Teoricamente o seu código não tem nenhum problema. Eu rodei a mesma coisa num linux aqui e não tive problema.

Mas, Ruby no Windows é extremamente complicado, o ideal é usar num ambiente *Nix da vida.

Pois é… o problema é que nõa posso usar unix e também é a primeira vez que isso acontece comigo. Já uso Rails há algum tempo e nunca havia visto isso. Vou reisntalar tudo outroa vez, mas agora o rails 2.2.1 ou 2.1

Sei lá. Foi só eu atualizar que começou isso aí.

Anexa um debugger e verifica onde tá crashando. Boa parte dos crashes no MRI são simples de corrigir.

Se você possuir um teste que reproduz isso facilmente é só rodar no gdb e quando rolar o segv começa pelo "t a a bt"
e vá adiante.

Só acontece com a versão 2.2.2 do Rails. Eu também não consigo instalar via gem a versão 2.2.0 ou a 2.2.1.
Com a versão 2.1.1 funcionou legal.

Vou continuar investigando.

[quote=louds]
Se você possuir um teste que reproduz isso facilmente é só rodar no gdb e quando rolar o segv começa pelo "t a a bt"
e vá adiante. [/quote]

“t a a bt” - Que isso?

Comando do GDB ue, ele permite atalhos, então por que raios vou digitar:
“thread all apply backtrace”, quando “t a a bt” funciona?

Dando uma de troll e revivendo o tópico ;p

Conseguiram resolver esse problema?

Instalei aqui tudo do 0 no meu PC novo e esse erro está rolando, to fazendo uma integração de Flex com Rails e na hora que eu carrego a página pela segunda vez (ou seja, a primeira requisição funciona) ele dá esse erro maldito =/

EDIT:
Fiz um gem update pra atualizar todos os gems e agora o erro mudou:

[code]E:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/mysql_adapter.rb:196: [BUG] Segmentation fault

ruby 1.8.6 (2007-09-24) [i386-mswin32]
[/code]

E outra coisa: antes, o erro acontecia depois do primeiro acesso a página (ou seja, no segundo). Agora é no terceiro, ou seja, se eu abro um “index” qualquer, aperto F5 ele vai, aperto F5 denovo ele vai, no terceiro dá esse erro aí e gg :frowning:

EDIT 2:
Vamos botar mais lenha na fogueira?

Resolvi usar o Mongrel ao invés do Webrick e, adivinhem só?

O erro mudou!

[code]E:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/benchmark.rb:9: [BUG] Segmentation fault

ruby 1.8.6 (2007-09-24) [i386-mswin32][/code]

Pessoal, pelo visto o erro está fortemente ligado ao MySQL, pois resolvi mudar o ambiente para usar postgresql e está funcionando normalmente

Ou é a versão que estou rodando do MySQL (5.1.30, community) ou é o mysql que instalei do gem

Abraço

Tou achando que o JRuby vai acabar sendo mais adotado para evitar esses problemas nebulosos, já que tenta usar muito menos código nativo (apesar de usar muito JNA também). Obviamente a implementação do Ruby MRI é toda em código nativo, exceto se você for tentar usar o Rubinius (Ruby in Ruby).
Imagine você tomar um erro desses porque está usando uma determinada versão do driver do MySQL em vez de outra determinada versão do PostgreSQL :frowning:
É desanimador.

Thingol, eu tentei usar com JRuby (a embedded version que vem com o netbeans) mas ele não deixava eu atualizar os gems para eu instalar o Rails.

Whatever, é desanimador mesmo essas coisas… O problema é que eu usava MySQL pra testes pessoais com Rails e Flex, mas até foi bom esse erro, eu gosto mais de psql mesmo hahaha :stuck_out_tongue:

Olá,

Alguém conseguiu resolver este problema?

Estou tendo o mesmo problema e ainda não consegui resolver, e estou usando o mysql.

Eu tenho um site em rails: http://www.preventos.com.br/ e precisei fazer uma atualização hoje, então resolvi re-instalar o rails para fazer os testes locais antes.

Instalei o ruby, o rails, o mongrel, br-rails e paperclip, pronto, minha app só usa isso.

Ai iniciei o server, até aqui tudo bem.

Quando vou acessar: pããã! (http://localhost:3000)

NO CONSOLE APARECE:

[code]d:/servidor/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/con
nection_adapters/mysql_adapter.rb:202: [BUG] Segmentation fault
ruby 1.8.6 (2008-08-11) [i386-mswin32]

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.[/code]

NA PÁGINA APARECE:

[quote] NoMethodError in HomeController#index

undefined method `each’ for #Mysql:0x344fa7c

RAILS_ROOT: D:/www/preventos
Application Trace | Framework Trace | Full Trace

d:/servidor/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:467:in columns' d:/servidor/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1271:incolumns’
d:/servidor/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:3003:in attributes_from_column_definition_without_lock' d:/servidor/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/locking/optimistic.rb:66:inattributes_from_column_definition’
d:/servidor/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:2430:in initialize' D:/www/preventos/app/models/usuarios_online.rb:7:innew’
D:/www/preventos/app/models/usuarios_online.rb:7:in validar_usuario_online' D:/www/preventos/app/controllers/application_controller.rb:10:invalida_usuario_online’
[/quote]

É a mesma aplicação que roda no meu servidor o.o

Ou seja, algum bug no activerecord ao usar o mysql.

Alguém sabe o que pode ser?

Acabei de fazer um teste, pois migrei meu mysql local para 5.1 recentemente.

Apontei meu banco de desenvolvimento para o banco de produção.

E adivinhe só? O MESMO ERRO!!

:frowning:

A mesma aplicação usando o mesmo banco, então só pode ser algum BUG do ruby mesmo.

Galera,

Consegui resolver o problema, bastou colocar a DLL do MySql lá na pasta BIN do ruby.

Para quem quiser, está ai:
http://www.prsolucoes.com/downloads/libmysql.zip

Deus abençõe a todos!

[quote=prchakal]Galera,

Consegui resolver o problema, bastou colocar a DLL do MySql lá na pasta BIN do ruby.

Para quem quiser, está ai:
http://www.prsolucoes.com/downloads/libmysql.zip

Deus abençõe a todos![/quote]

Amigo, acabei de passar por esse problema agora há pouco. Faz 10 minutos.
Mas graças a você, o problema foi resolvido rapidamente. Valeu demais.

Abração e Deus te abençoe!