{"id":554,"date":"2008-06-05T15:39:45","date_gmt":"2008-06-05T15:39:45","guid":{"rendered":"http:\/\/blografia.net\/vicm3\/?p=554"},"modified":"2008-06-05T15:39:45","modified_gmt":"2008-06-05T15:39:45","slug":"cuando-estable-es-demasiado-estable","status":"publish","type":"post","link":"https:\/\/blografia.net\/vicm3\/2008\/06\/cuando-estable-es-demasiado-estable\/","title":{"rendered":"Una de ROR"},"content":{"rendered":"<p>Tenemos por ahi una aplicaci\u00f3n corriendo en Ruby on Rails (ROR). En Debian Etch (stable), sin embargo para utilizarla de manera nativa nos encontramos con que usarla como fast cgi en Apache 1.3.x es por decirlo de una manera bonita, extremadamente dificil.<\/p>\n<p>Asi que usamos un backport de mongrel&#8230; primer problema, mod_proxy que en apache 2.2.x ha mejorado enormidades, en apache 1.3.x funciona, pero con sus asegunes&#8230; entonces pense en hacer aptitude install apache2&#8230; sin embargo creo es mejor a que acabe el semestre antes de migrar mis cosas a apache2.<\/p>\n<p>Por otro lado estuve haciendo strace del mongrel antes de que por sugerencia de mi compa\u00f1ero sysadmin se implementara mongrel_cluster + pound + apache_mod_proxy :D<\/p>\n<p>Total que en su ultima corrida como mongrel_rails&#8230; <\/p>\n<p>Tan solo nos quedamos con este error.<\/p>\n<blockquote><p>\nsigprocmask(SIG_BLOCK, NULL, [])        = 0<br \/>\nsigprocmask(SIG_BLOCK, NULL, [])        = 0<br \/>\nsigprocmask(SIG_BLOCK, NULL, [])        = 0<br \/>\nsigprocmask(SIG_BLOCK, NULL, [])        = 0<br \/>\nsigprocmask(SIG_BLOCK, NULL, [])        = 0<br \/>\nsigprocmask(SIG_BLOCK, NULL, [])        = 0<br \/>\nsigprocmask(SIG_BLOCK, NULL, [])        = 0<br \/>\n&#8212; SIGSEGV (Segmentation fault) @ 0 (0) &#8212;<br \/>\nwrite(2, \u00ab\/home\/webapps\/railapp\u00bb&#8230;, 94) = 94<br \/>\nwrite(2, \u00ab[BUG] \u00ab, 6)                   = 6<br \/>\nwrite(2, \u00abSegmentation fault\u00bb, 18)      = 18<br \/>\nwrite(2, \u00ab\\nruby 1.8.5 (2006-08-25) [i486-l\u00bb&#8230;, 39) = 39<br \/>\nrt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0<br \/>\ntgkill(16616, 16616, SIGABRT)           = 0<br \/>\n&#8212; SIGABRT (Aborted) @ 0 (0) &#8212;<br \/>\nrt_sigprocmask(SIG_BLOCK, [ABRT], NULL, 8) = 0<br \/>\nrt_sigaction(SIGABRT, {SIG_DFL}, {0xb6e49060, [ABRT], SA_INTERRUPT}, 8) = 0<br \/>\nrt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0<br \/>\ntgkill(16616, 16616, SIGABRT)           = 0<br \/>\n&#8212; SIGABRT (Aborted) @ 0 (0) &#8212;<br \/>\nProcess 16616 detached\n<\/p><\/blockquote>\n<p>Y en los logs<\/p>\n<blockquote><p>\nmongrel.8202.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] rb_gc_mark(): unkno<br \/>\nwn data type 0x25(0xbff08948) non object<br \/>\nmongrel.8204.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:127.0.0.1 &#8211; [Wed, 23 Apr 2008 07:24:27 GMT] \u00abGET \/centers\/list HTTP\/<br \/>\n1.1&#8243;\/usr\/lib\/ruby\/1.8\/mongrel\/debug.rb:180: [BUG] Segmentation fault<br \/>\nmongrel.log:\/home\/webapps\/railapp\/vendor\/plugins\/will_paginate\/lib<br \/>\n\/will_paginate\/finder.rb:155: [BUG] rb_gc_mark(): unknown data type 0x0(0x8e3711<br \/>\n8) non object<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/mongrel\/stats.rb:44: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/mongrel\/debug.rb:180: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/home\/webapps\/railapp\/vendor\/rails\/activerecord\/lib\/ac<br \/>\ntive_record\/connection_adapters\/postgresql_adapter.rb:87: [BUG] Segmentation fau<br \/>\nlt<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\n&#8230;<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault<br \/>\nmongrel.log:\/usr\/lib\/ruby\/1.8\/cgi\/session.rb:166: [BUG] Segmentation fault\n<\/p><\/blockquote>\n<p>Haciendo un par de busquedas en google (bueno m\u00e1s que un par) no econtre ningun ticket abierto en Debian, Ruby o Mongrel :\/, asi que seguimos con una soluci\u00f3n a la medida que cuando pesca que mongrel se muere lo reinicia&#8230;<\/p>\n<p>Originalmente habia hecho uno muy rudimentario, pero que igual a alguien mas le podria servir, asi que pongo mi script de bash.<\/p>\n<p>[code=&#8217;Bash&#8217;]<br \/>\n#!\/bin\/sh<br \/>\n# start mongrel if dies<br \/>\n#TEST=`ps xaf | grep mogrel_rails | grep -v grep | wc -l`<br \/>\nTEST=`ps xaf | grep \u00ab\/usr\/bin\/ruby1.8\u00bb | grep -v grep | wc -l`<br \/>\n#echo $TEST<br \/>\nif [ $TEST == 0 ] ; then<br \/>\n# Hard coded<br \/>\nrm \/home\/webapps\/railapp\/log\/mongrel.pid<br \/>\necho \u00abMongrel ha muerto, borrando su pid\u00bb<br \/>\n\/etc\/init.d\/mongrels start<br \/>\necho \u00ablevantando\u00bb<br \/>\nfi<\/p>\n<p>exit 0<br \/>\n[\/code]<\/p>\n<p>Como nota interesante si mongrel se muere con segfault no borra su pid, por lo tanto no es posible iniciarlo sin borrar el pid primero, claro que mi script seria m\u00e1s eficiente si mejor leyera el pid, lo buscara contra los procesos y solo si no lo encuentra entonces si levantara a mongrel, pero como necesitabamos un quick hack ese d\u00eda, asi se quedo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tenemos por ahi una aplicaci\u00f3n corriendo en Ruby on Rails (ROR). En Debian Etch (stable), sin embargo para utilizarla de manera nativa nos encontramos con que usarla como fast cgi en Apache 1.3.x es por decirlo de una manera bonita, &hellip; <a href=\"https:\/\/blografia.net\/vicm3\/2008\/06\/cuando-estable-es-demasiado-estable\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-554","post","type-post","status-publish","format-standard","hentry","category-sin-categoria"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":633,"url":"https:\/\/blografia.net\/vicm3\/2009\/03\/debian-moodle-suhosin\/","url_meta":{"origin":554,"position":0},"title":"Debian + Moodle + Suhosin","author":"vicm3","date":"13 marzo, 2009","format":false,"excerpt":"Resulta que viendo los headers de un sitio que frecuento (curl -i) me di cuenta que corren php-suhosin, el cual es una aproximaci\u00f3n similar a mod_security, pero sin los problemas de licenciamiento del mismo, de hecho ya alguien en otro momento me lo hab\u00eda sugerido cuando tuve que dejar atr\u00e1s\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":161,"url":"https:\/\/blografia.net\/vicm3\/2005\/11\/mod_security\/","url_meta":{"origin":554,"position":1},"title":"mod_security","author":"vicm3","date":"3 noviembre, 2005","format":false,"excerpt":"Tenia rato que quer\u00eda implementar mod_security en apache, la pregunta directa seria \u00bfpara que? Bueno en varias de mis maquinas tengo que correr aplicaciones php y\/o html que est\u00e1n expuestas a ataques de inyecci\u00f3n de SQL, variables, etc., y pues creo que es mas sencillo el usar el modulo para\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":378,"url":"https:\/\/blografia.net\/vicm3\/2007\/01\/la_ociocidad_es_la_madre_de_todos_los_vicios\/","url_meta":{"origin":554,"position":2},"title":"La ociocidad es la madre de todos los vicios&#8230;","author":"vicm3","date":"13 enero, 2007","format":false,"excerpt":"O al menos eso dicen, bueno pues nomas por que estaba viendo que por ahi hay vps realmente baratos, que ofrecen muy pocos recursos 64MB de RAM, 2GB de disco, y 100GB de transferencia mensual. Como tener el juguete 3 meses me cuesta lo mismo que comprar un baileys... (que\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":477,"url":"https:\/\/blografia.net\/vicm3\/2007\/09\/en_mudanza_de_nuevo\/","url_meta":{"origin":554,"position":3},"title":"En mudanza de nuevo","author":"vicm3","date":"22 septiembre, 2007","format":false,"excerpt":"Para quien lleve la cuenta (yo ya la perdi), blografia se nueve de nuevo a un host diferente esta vez en Xen y en Debian (Yay!) ademas pasamos de Apache a Lighttpd + fcgi con lo cual aun cuando Ion pronostique que la siguiente version de Jaws no tendra soporte\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":417,"url":"https:\/\/blografia.net\/vicm3\/2007\/05\/lighttpd\/","url_meta":{"origin":554,"position":4},"title":"lighttpd","author":"vicm3","date":"1 mayo, 2007","format":false,"excerpt":"En algun momento estuve jugando con un vps con tan solo 64MB de memoria (58 usables) por lo que tuve que hacer varias cosas para poder hacer algo con el. Por ejemplo para usarlo como webserver remplace apache por lighttpd, intente con cherokee pero resulto que usa demasiada memoria (tendra\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":658,"url":"https:\/\/blografia.net\/vicm3\/2009\/06\/el-otro-da\/","url_meta":{"origin":554,"position":5},"title":"El otro d\u00eda","author":"vicm3","date":"27 junio, 2009","format":false,"excerpt":"Que escrib\u00eda de mi hom\u00f3nimo que solicito quien sabe cuantos cr\u00e9ditos... me acorde que el buro de credito ofrece el servicio de un reporte especial, gratis al a\u00f1o... solo un problema.... no lo puedo abrir con Firefox (por cierto la p\u00e1gina del buro de credito es esta, ya que mas\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/posts\/554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/comments?post=554"}],"version-history":[{"count":0,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/posts\/554\/revisions"}],"wp:attachment":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/media?parent=554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/categories?post=554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/tags?post=554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}