{"id":552,"date":"2010-02-23T22:26:00","date_gmt":"2010-02-23T22:26:00","guid":{"rendered":"http:\/\/karstieltopia.com\/2010\/02\/23\/hp-ux-11-31b-apesta\/"},"modified":"2010-02-23T22:26:00","modified_gmt":"2010-02-23T22:26:00","slug":"hp-ux-11-31b-apesta","status":"publish","type":"post","link":"http:\/\/karstieltopia.com\/programacion\/hp-ux-11-31b-apesta\/","title":{"rendered":"HP-UX 11.31B apesta"},"content":{"rendered":"

Y es que este sistema operativo se ha ganado mis m\u00e1s sentidos odios desde que recuerdo el CP\/M del Amstrand…<\/p>\n

Llevo unos cuantos meses en el que estamos portando un par de entornos de una tru64 (m\u00e1quina de Compact) a una HPUX (recordar que HP compr\u00f3 Compact). Bien, como ya no hay soporte para las tru64, antes o despu\u00e9s todo el mundo se acaba pasando hacia el lado HP y claro, al hacerlo hay que intentar llevar los productos de un entorno para otro.<\/p>\n

As\u00ed que, despu\u00e9s de unos cuantos meses trabajando en este entorno a un nivel de porting, puedo decir sin despeinarme que esta m\u00e1quina \/ sistema operativo es una bazofia de mucho cuidado.<\/p>\n

Y para ello, solo voy a poner dos ejemplos simples y sencillos:<\/p>\n

    \n
  1. Situaci\u00f3n:<\/b> te encuentras con un core bonito de un c\u00f3digo que miras y remiras y parece que deber\u00eda funcionar (partiendo de la base que en una tru64 funcionaba). Simplemente ves que una funci\u00f3n devuelve un char* que ha reservado memoria con un strdup y que esta cadena ser\u00e1 utilizada y liberada por la funci\u00f3n que lo llama (por cierto, el tratamiento de cadenas con C es hartante como \u00e9l solo). En fin, tenemos un core y nos ponemos a pasarle el gdb para ver que pasa (por supuesto el core solo se produce en producci\u00f3n, nada de producirse en el entorno de testing). Vemos que la cadena tiene un out of bounds; leches, \u00a1estamos apuntado a d\u00f3nde no debemos! Miramos una y otra vez y nada, todo bien y, como tonter\u00eda, pruebo a ponerlo directamente en un sprintf el retorno de la funci\u00f3n sin pasar por variable (y creando de paso una laguna de memoria porque no libero la memoria, pero bueno, que para probar sirve) y leches… \u00a1funciona! Pero si lo asignas a una triste variable char* falla al acceder a ello… \u00bfQu\u00e9 puede ser? \u00bfQu\u00e9 puede ser?
    Soluci\u00f3n:<\/b> Mira los includes porque falta el del fichero d\u00f3nde est\u00e1 esa funci\u00f3n.
    Resultado post-laboratorio:<\/b> Sentimiento de odio brutal porque algo que es un simple warning de compilaci\u00f3n o que leches, que no compile (como la librer\u00eda linkaba con el sistema resolv\u00eda correctamente la funci\u00f3n)… pero que funcione todo y se le de por hacer un maldito core dump… Por favor, \u00a1a qui\u00e9n se le ocurre! \u00ac_\u00ac<\/li>\n
  2. Situaci\u00f3n:<\/b> te encuentras con que una librer\u00eda de lo m\u00e1s normal que simplemente abre un socket con un servidor… no funciona o.O? Te pegas y te pegas y no conecta; \u00bfPor qu\u00e9 puede ser?
    Soluci\u00f3n:<\/b> HPUX 11.31B descontin\u00faa una serie de opciones del protocolo est\u00e1ndar de comunicaciones que estaba instaurado desde la HPUX 11.23 hacia atr\u00e1s (y en todos los libros \/ documentos \/ etc que hablan de las comunicaciones en cualquier entorno) y se carga directamente las opciones de timeout via setsockopt… Y claro, \u00bfqu\u00e9 hace al cargarse eso? Pues producir un error, qu\u00e9 otra cosa va a hacer…
    Resultado post-laboratorio:<\/b> Odio destil\u00e1ndose por todas partes por doquier \u00ac_\u00ac<\/li>\n<\/ol>\n

    Y c\u00f3mo estos dos ejemplos muchos m\u00e1s. As\u00ed que si pod\u00e9is escapar de estas m\u00e1quinas\/sistemas operativos, escapar como alma que lleva el diablo, que desde luego no os traer\u00e1 nada bueno es vuestra vida.<\/p>\n

    En fin, qu\u00e9 toda alma de developer debe de ser cuidada y animada con esta canci\u00f3n xD<\/p>\n

    <\/div>\n","protected":false},"excerpt":{"rendered":"

    Y es que este sistema operativo se ha ganado mis m\u00e1s sentidos odios desde que recuerdo el CP\/M del Amstrand… Llevo unos cuantos meses en el que estamos portando un par de entornos de una tru64 (m\u00e1quina de Compact) a una HPUX (recordar que HP compr\u00f3 Compact). Bien, como ya no hay soporte para las […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[21],"tags":[231,232],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"yoast_head":"\nHP-UX 11.31B apesta - Karstieltopia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/karstieltopia.com\/programacion\/hp-ux-11-31b-apesta\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HP-UX 11.31B apesta - Karstieltopia\" \/>\n<meta property=\"og:description\" content=\"Y es que este sistema operativo se ha ganado mis m\u00e1s sentidos odios desde que recuerdo el CP\/M del Amstrand… Llevo unos cuantos meses en el que estamos portando un par de entornos de una tru64 (m\u00e1quina de Compact) a una HPUX (recordar que HP compr\u00f3 Compact). Bien, como ya no hay soporte para las […]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/karstieltopia.com\/programacion\/hp-ux-11-31b-apesta\/\" \/>\n<meta property=\"og:site_name\" content=\"Karstieltopia\" \/>\n<meta property=\"article:published_time\" content=\"2010-02-23T22:26:00+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@karstiel\" \/>\n<meta name=\"twitter:site\" content=\"@karstiel\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/karstieltopia.com\/#website\",\"url\":\"http:\/\/karstieltopia.com\/\",\"name\":\"Karstieltopia\",\"description\":\"Programaci\\u00f3n, tecnolog\\u00eda y a\\u00f1adidos\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"http:\/\/karstieltopia.com\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/karstieltopia.com\/programacion\/hp-ux-11-31b-apesta\/#webpage\",\"url\":\"http:\/\/karstieltopia.com\/programacion\/hp-ux-11-31b-apesta\/\",\"name\":\"HP-UX 11.31B apesta - Karstieltopia\",\"isPartOf\":{\"@id\":\"http:\/\/karstieltopia.com\/#website\"},\"datePublished\":\"2010-02-23T22:26:00+00:00\",\"dateModified\":\"2010-02-23T22:26:00+00:00\",\"author\":{\"@id\":\"http:\/\/karstieltopia.com\/#\/schema\/person\/3d09a55c38c7c00e78c41fa3f71a6e75\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/karstieltopia.com\/programacion\/hp-ux-11-31b-apesta\/\"]}]},{\"@type\":\"Person\",\"@id\":\"http:\/\/karstieltopia.com\/#\/schema\/person\/3d09a55c38c7c00e78c41fa3f71a6e75\",\"name\":\"karstiel\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6AuIG-8U","_links":{"self":[{"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/posts\/552"}],"collection":[{"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/comments?post=552"}],"version-history":[{"count":0,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/posts\/552\/revisions"}],"wp:attachment":[{"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/media?parent=552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/categories?post=552"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/tags?post=552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}