Resultado de etiquetas “activerecord”

Ruby se muere

Al menos, se muere cuando le pido que trabaje duro para mi...

/Users/amuino/.gem/ruby/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:1650: [BUG] Segmentation fault
ruby 1.8.6 (2008-08-11) [universal-darwin9.0]

Abort trap

Lo mejor es que es un error semi-aleatorio: no ocurre siempre en la misma línea ni fichero ni gema... pero ocurre siempre en algún momento de un proceso batch de varias horas.

Es muy posible que no sea culpa de ruby (he probado tanto con la versión instalada por Apple como con Darwin Ports) si  no del adaptador de MySQL... no lo sé.

En cualquier caso... yo ya me había olvidado de todos estos bus error y segmentation fault hace muchos años, al usar Java (aunque sí, también he visto alguna JVM morirse...).

Así que mi siguiente intento ha sido usar JRuby. Instalo el adaptador activerecord jdbc para mysql, un nuevo entorno y a volar. Sencillo ¿no?

Lamentablemente, tengo una dependencia que utiliza la gema libxml-ruby, que necesita una extensión nativa (¿extensiones nativas? ¿aplicaciones interpretadas no portables? ¿no hemos dado un paso atrás?)... algo que jruby no permite.

Por suerte, el proceso batch no usa libxml y puedo desactivarlo al usar jruby:

config.gem 'libxml-ruby', :lib=>"xml/libxml", :version => '1.1.3' unless RUBY_PLATFORM =~ /java/

Sólo queda configurar el acceso a mysql mediante jdbc. Es importante instalar la gema desde linea de comandos.

jruby -S gem install activerecord-jdbcmysql-adapter

Algo que me ha confundido durante horas han sido los errores del tipo:

Missing these required gems:   activerecord-jdbcmysql-adapter  = 0.9.2

... que son causados por declarar la dependencia en environment.rb. No lo hagas :-)

Y el toque final es añadir la compatibilidad del adaptador jdbc con la configuración mysql "de toda la vida" para no tener que tocar el database.yml ni crear un nuevo environment.

jruby script/generate jdbc

(Esto sólo activa el adaptador jdbc cuando se ejecuta sobre jruby).

Han sido unas cuantas horas de experimentos, búsquedas en google y frustración... ¡que espero que le ahorren tiempo a alguien!

1

Sobre mi

No hay sorpresas, mi nombre es Abel Muiño. Soy un apasionado del desarrollo de software desde que cayó en mis manos un ZX Spectrum 48K... si no recuerdo mal, tendría unos 7 años. Han pasado bastantes años, varias empresas y...

Comentarios recientes

  • @Manuel: tienes toda la razón sobre el "efecto contagio". Durante estas vacaciones hablaba del tem...

  • Germán: creo que tengo el mismo joystick de la foto en algún cajón en casa de mi padre ;-) Sobre tu...

  • Hola Abel: Está claro que Dios los cría y ellos se juntan. De ahí que siga tu blog, porque comparto...

    Manuel Jesús Recena Soto
    My most authentic self
  • Uff da miedo conocer tanta gente parecida, hace poco publiqué esta foto: http://twitpic.com/2c90t7...

  • No hombre! Gracias a ti que le subes el nivel a este pobre blog! Estoy de acuerdo en que no siempre...

Cerrar