Resultado de etiquetas “bus error”

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

  • Hola Paco! Que gusto verte por aquí :-) Tienes toda la razón en todo... aunque he vivido algún que ...

  • Gracias a todos por la info. Más o menos, me quedo con el resumen de que el Plan Bolonia sí tienen ...

  • Independientemente de la profundidad con que conozcan el asunto sobre el que te están contratando, l...

    Francisco-Jose Fernandez
    Aprende a costa del cliente
  • Ahora ya puedo comentar, no hay proxy que me lo impida ;) Yo en su momento estuve bastante metido e...

  • Abel, esto [1] también es Bolonia. [1] http://www.manuelrecena.com/blog/archives/873...

    Manuel Jesús Recena Soto
    Fan del Plan Bolonia
Cerrar