Your message dated Wed, 28 Aug 2013 07:34:16 +0000
with message-id <[email protected]>
and subject line Bug#720395: fixed in openmpi 1.6.5-4
has caused the Debian Bug report #720395,
regarding openmpi: FTBFS on hurd-i386: test suite failures
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
720395: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720395
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: openmpi
Version: 1.6.5-2
Severity: important
Tags: patch
User: [email protected]
Usertags: hurd

Hi,

since the enabling of the test suite (thanks!), such test suite fails
on Hurd.

The problem is mostly located in the memory:linux MCA component: it gets
enabled as it provides (via glibc) the malloc hooks it looks for, thus
installing its own hooks. Such hooks though can be called very early in
the startup, causing troubles.

Attached there is a new *update* of the build_hurd patch, which disables
the memory:linux MCA component on Hurd. This results in all the tests
passing successfully.

Thanks (and sorry for yet another Hurd update),
-- 
Pino
Description: Fix build problems on hurd-i386
 This patch allows Open MPI to build on Debian GNU/HURD.
 .
 Also, the memory:linux MCA component is disabled, since its use of POSIX API
 in malloc hooks called very early at startup causes troubles.
Author: Pino Toscano <[email protected]>
Forwarded: partially
Last-Update: 2013-08-21

--- a/ompi/runtime/ompi_mpi_abort.c
+++ b/ompi/runtime/ompi_mpi_abort.c
@@ -53,10 +53,11 @@
                bool kill_remote_of_intercomm)
 {
     int count = 0, i;
-    char *msg, *host, hostname[MAXHOSTNAMELEN];
+    char *msg, *host = NULL;
     pid_t pid = 0;
     orte_process_name_t *abort_procs;
     orte_std_cntr_t nabort_procs;
+    bool free_host = false;
 
     /* Protection for recursive invocation */
     if (have_been_invoked) {
@@ -70,8 +71,12 @@
     if (orte_initialized) {
         host = orte_process_info.nodename;
     } else {
-        gethostname(hostname, sizeof(hostname));
-        host = hostname;
+        size_t host_length = 128;
+        do {
+            host_length *= 2;
+            host = realloc(host, host_length);
+        } while ((gethostname(host, host_length) == -1) && (errno == ENAMETOOLONG));
+        free_host = true;
     }
     pid = getpid();
 
--- a/ompi/runtime/ompi_mpi_finalize.c
+++ b/ompi/runtime/ompi_mpi_finalize.c
@@ -101,13 +101,18 @@
         /* Note that if we're already finalized, we cannot raise an
            MPI exception.  The best that we can do is write something
            to stderr. */
-        char hostname[MAXHOSTNAMELEN];
+        char *hostname = NULL;
+        size_t hostname_length = 128;
         pid_t pid = getpid();
-        gethostname(hostname, sizeof(hostname));
+        do {
+            hostname_length *= 2;
+            hostname = realloc(hostname, hostname_length);
+        } while ((gethostname(hostname, hostname_length) == -1) && (errno == ENAMETOOLONG));
 
         orte_show_help("help-mpi-runtime.txt",
                        "mpi_finalize:invoked_multiple_times",
                        true, hostname, pid);
+        free(hostname);
         return MPI_ERR_OTHER;
     }
 
--- a/opal/mca/base/mca_base_component_find.c
+++ b/opal/mca/base/mca_base_component_find.c
@@ -208,11 +208,16 @@
         }
 
         if (opal_list_get_end(found_components) == item) {
-            char h[MAXHOSTNAMELEN];
-            gethostname(h, sizeof(h));
+            char *h = NULL;
+            size_t h_length = 128;
+            do {
+                h_length *= 2;
+                h = realloc(h, h_length);
+            } while ((gethostname(h, h_length) == -1) && (errno == ENAMETOOLONG));
             opal_show_help("help-mca-base.txt", 
                            "find-available:not-valid", true,
                            h, type, requested_component_names[i]);
+            free(h);
             return OPAL_ERR_NOT_FOUND;
         }
     }
--- a/opal/mca/base/mca_base_param.c
+++ b/opal/mca/base/mca_base_param.c
@@ -186,8 +186,14 @@
     home = (char*)opal_home_directory();
     
     if(NULL == cwd) {
+#if !defined(MAXPATHLEN) && defined(__GLIBC__)
+        cwd = get_current_dir_name();
+        if( NULL == cwd)
+#else
         cwd = (char *) malloc(sizeof(char) * MAXPATHLEN);
-        if( NULL == (cwd = getcwd(cwd, MAXPATHLEN) )) {
+        if( NULL == (cwd = getcwd(cwd, MAXPATHLEN) ))
+#endif
+        {
             opal_output(0, "Error: Unable to get the current working directory\n");
             cwd = strdup(".");
         }
--- a/opal/util/stacktrace.c
+++ b/opal/util/stacktrace.c
@@ -437,8 +437,12 @@
     mca_base_param_lookup_string (param, &string_value);
 
     memset(&act, 0, sizeof(act));
+#ifdef SA_SIGINFO
     act.sa_sigaction = show_stackframe;
     act.sa_flags = SA_SIGINFO;
+#else
+    act.sa_handler = show_stackframe_handler;
+#endif
 #ifdef SA_ONESHOT
     act.sa_flags |= SA_ONESHOT;
 #else
--- a/orte/mca/odls/base/odls_base_default_fns.c
+++ b/orte/mca/odls/base/odls_base_default_fns.c
@@ -1370,8 +1370,13 @@
     orte_local_rank_t local_rank;
     orte_node_rank_t node_rank;
     char *pathenv = NULL, *mpiexec_pathenv = NULL;
+#if !defined(MAXPATHLEN) && defined(__GLIBC__)
+    char *basedir=NULL;
+    char *dir=NULL;
+#else
     char basedir[MAXPATHLEN];
     char dir[MAXPATHLEN];
+#endif
     char **argvptr;
     char *full_search;
     char **argvsav=NULL;
@@ -1388,7 +1393,11 @@
      * bouncing around as we execute various apps, but we will always return
      * to this place as our default directory
      */
+#if !defined(MAXPATHLEN) && defined(__GLIBC__)
+    basedir = get_current_dir_name();
+#else
     getcwd(basedir, sizeof(basedir));
+#endif
 
     /* find the jobdat for this job */
     jobdat = NULL;
@@ -1621,7 +1630,11 @@
          * again not match getcwd! This is beyond our control - we are only
          * ensuring they start out matching.
          */
+#if !defined(MAXPATHLEN) && defined(__GLIBC__)
+        dir = get_current_dir_name();
+#else
         getcwd(dir, sizeof(dir));
+#endif
         opal_setenv("PWD", dir, true, &app->env);
         
         /* Search for the OMPI_exec_path and PATH settings in the environment. */
@@ -2118,6 +2131,10 @@
  GETOUT:
     opal_condition_signal(&orte_odls_globals.cond);
     OPAL_THREAD_UNLOCK(&orte_odls_globals.mutex);
+#if !defined(MAXPATHLEN) && defined(__GLIBC__)
+    free(basedir);
+    free(dir);
+#endif
     return rc;
 }
 
--- a/orte/orted/orted_main.c
+++ b/orte/orted/orted_main.c
@@ -228,7 +228,8 @@
     int ret = 0;
     int fd;
     opal_cmd_line_t *cmd_line = NULL;
-    char log_file[PATH_MAX];
+    char *log_file = NULL;
+    size_t log_file_len;
     char *jobidstring;
     char *rml_uri;
     int i;
@@ -482,13 +483,16 @@
         }
 
         /* define a log file name in the session directory */
-        snprintf(log_file, PATH_MAX, "output-orted-%s-%s.log",
+        log_file_len = 13 + strlen(jobidstring) + 1 + strlen(orte_process_info.nodename) + 4 + 1;
+        log_file = malloc(log_file_len);
+        snprintf(log_file, log_file_len, "output-orted-%s-%s.log",
                  jobidstring, orte_process_info.nodename);
         log_path = opal_os_path(false,
                                 orte_process_info.tmpdir_base,
                                 orte_process_info.top_session_dir,
                                 log_file,
                                 NULL);
+        free(log_file);
 
         fd = open(log_path, O_RDWR|O_CREAT|O_TRUNC, 0640);
         if (fd < 0) {
--- a/orte/util/context_fns.c
+++ b/orte/util/context_fns.c
@@ -55,10 +55,12 @@
 {
     bool good = true;
     const char *tmp;
+#if 0 /* 'hostname' looks unused... */
     char hostname[MAXHOSTNAMELEN];
     
     /* Use hostname in a few messages below */
     gethostname(hostname, sizeof(hostname));
+#endif
     
     /* If we want to chdir and the chdir fails (for any reason -- such
        as if the dir doesn't exist, it isn't a dir, we don't have
--- a/opal/mca/pstat/darwin/configure.m4
+++ b/opal/mca/pstat/darwin/configure.m4
@@ -23,9 +23,9 @@
 # -----------------------------------------------------------
 AC_DEFUN([MCA_pstat_darwin_CONFIG],[
     OMPI_VAR_SCOPE_PUSH([paff_darwin_happy])
-    # check to see if we have <mach/mach_host.h>
+    # check to see if we have <mach/clock.h>
     # as this is a Darwin-specific thing
-    AC_CHECK_HEADER([mach/mach_host.h], [paff_darwin_happy=yes], [paff_darwin_happy=no])
+    AC_CHECK_HEADER([mach/clock.h], [paff_darwin_happy=yes], [paff_darwin_happy=no])
 
     AS_IF([test "$paff_darwin_happy" = "yes"], [$1], [$2])
     OMPI_VAR_SCOPE_POP
--- a/opal/mca/sysinfo/darwin/configure.m4
+++ b/opal/mca/sysinfo/darwin/configure.m4
@@ -12,9 +12,9 @@
 # -----------------------------------------------------------
 AC_DEFUN([MCA_sysinfo_darwin_CONFIG],[
     OMPI_VAR_SCOPE_PUSH([sysinfo_darwin_happy])
-    # check to see if we have <mach/mach_host.h>
+    # check to see if we have <mach/clock.h>
     # as this is a Darwin-specific thing
-    AC_CHECK_HEADER([mach/mach_host.h], [sysinfo_darwin_happy=yes], [sysinfo_darwin_happy=no])
+    AC_CHECK_HEADER([mach/clock.h], [sysinfo_darwin_happy=yes], [sysinfo_darwin_happy=no])
 
     AS_IF([test "$sysinfo_darwin_happy" = "yes"], [$1], [$2])
     OMPI_VAR_SCOPE_POP
--- a/opal/mca/shmem/mmap/shmem_mmap_module.c
+++ b/opal/mca/shmem/mmap/shmem_mmap_module.c
@@ -61,6 +61,10 @@
 
 /* for tons of debug output: -mca shmem_base_verbose 70 */
 
+#ifndef MAXHOSTNAMELEN
+# define MAXHOSTNAMELEN 256
+#endif
+
 /* ////////////////////////////////////////////////////////////////////////// */
 /*local functions */
 /* local functions */
--- a/opal/mca/shmem/posix/shmem_posix_common_utils.h
+++ b/opal/mca/shmem/posix/shmem_posix_common_utils.h
@@ -45,6 +45,10 @@
 OPAL_DECLSPEC extern int shmem_posix_shm_open(char *posix_file_name_buff,
                                               size_t size);
 
+#ifndef MAXHOSTNAMELEN
+# define MAXHOSTNAMELEN 256
+#endif
+
 END_C_DECLS
 
 #endif /* OPAL_SHMEM_POSIX_COMMON_UTILS_H */
--- a/opal/mca/shmem/sysv/shmem_sysv_module.c
+++ b/opal/mca/shmem/sysv/shmem_sysv_module.c
@@ -65,6 +65,10 @@
 
 /* for tons of debug output: -mca shmem_base_verbose 70 */
 
+#ifndef MAXHOSTNAMELEN
+# define MAXHOSTNAMELEN 256
+#endif
+
 /* ////////////////////////////////////////////////////////////////////////// */
 /* local functions */
 static int
--- a/opal/mca/memory/linux/configure.m4
+++ b/opal/mca/memory/linux/configure.m4
@@ -58,6 +58,10 @@
                  [memory_linux_ptmalloc2_happy=yes
                   memory_linux_ummu_happy=no])])
 
+    AS_IF([echo "$host_os" | grep '^gnu' >/dev/null 2>/dev/null],
+          [memory_linux_ptmalloc2_happy=no
+           memory_linux_ummu_happy=no])
+
     ######################################################################
     # ptmalloc2
     ######################################################################

--- End Message ---
--- Begin Message ---
Source: openmpi
Source-Version: 1.6.5-4

We believe that the bug you reported is fixed in the latest version of
openmpi, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Sylvestre Ledru <[email protected]> (supplier of updated openmpi package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Wed, 28 Aug 2013 08:54:09 +0200
Source: openmpi
Binary: openmpi-bin libopenmpi-dev libopenmpi1.6 openmpi-common openmpi-doc 
libopenmpi1.6-dbg openmpi-checkpoint
Architecture: source amd64 all
Version: 1.6.5-4
Distribution: unstable
Urgency: low
Maintainer: Debian Open MPI Maintainers 
<[email protected]>
Changed-By: Sylvestre Ledru <[email protected]>
Description: 
 libopenmpi-dev - high performance message passing library -- header files
 libopenmpi1.6 - high performance message passing library -- shared library
 libopenmpi1.6-dbg - high performance message passing library -- debug library
 openmpi-bin - high performance message passing library -- binaries
 openmpi-checkpoint - high performance message passing library -- checkpoint 
support
 openmpi-common - high performance message passing library -- common files
 openmpi-doc - high performance message passing library -- man pages
Closes: 717978 720395
Changes: 
 openmpi (1.6.5-4) unstable; urgency=low
 .
   * Fix again the HURD build. Thanks to Pino Toscano (Closes: #720395)
   * orte_snapc manpage has moved from openmpi-checkpoint to openmpi-doc
     (Closes: #717978)
Checksums-Sha1: 
 9f567c71d689dde58dc045d0c84ed7bce0c4fe35 2060 openmpi_1.6.5-4.dsc
 9ad5f3906c9c8b7dbbcda38b31a9adf976563fe4 29440 openmpi_1.6.5-4.debian.tar.gz
 5211a48a05ec2222e10af0b544f70cabbc6f60d2 153026 openmpi-bin_1.6.5-4_amd64.deb
 9929c41e3171a4e1e10c4f36ab8304bebbbb30d5 446158 
libopenmpi-dev_1.6.5-4_amd64.deb
 3423eee56bce021e7e9acf232ff17029e38d0f63 1415344 
libopenmpi1.6_1.6.5-4_amd64.deb
 2a445b3c5cd1a01154f6510b40fa03086de5a2e3 110002 openmpi-common_1.6.5-4_all.deb
 eb141ccab76d2e549c37e7458f4b5f610c297978 491522 openmpi-doc_1.6.5-4_all.deb
 98eae519ea46831809712b570a27392310148e88 4803462 
libopenmpi1.6-dbg_1.6.5-4_amd64.deb
 7836e458cbc5f411a426bd7773afaf6620dee02f 95498 
openmpi-checkpoint_1.6.5-4_amd64.deb
Checksums-Sha256: 
 1c8805f049364bad60c6c37e723d26d88fcc866c6d6aa319c4fdf519ac236e0e 2060 
openmpi_1.6.5-4.dsc
 cf9503afe7bc8a73f487c4d7e4b2bb11596c053d461794c7526b7eb76f9a599c 29440 
openmpi_1.6.5-4.debian.tar.gz
 07a1d423a3cbbbf1fb6f896e2ffa4d753f4373f8a2e583d94ed019e0e86b5987 153026 
openmpi-bin_1.6.5-4_amd64.deb
 6745d723ad32a06040f18db3108ad2db3035dbc365795c82c3d5238153d236de 446158 
libopenmpi-dev_1.6.5-4_amd64.deb
 1538796fe44329aff9fabf74f82ae916b9338468feee513293a72940473c11ea 1415344 
libopenmpi1.6_1.6.5-4_amd64.deb
 cda1c78debd7df3bb15a3ed4b0c5aeb6f38ca56a9bbfb09a51f5a9f000ffd59c 110002 
openmpi-common_1.6.5-4_all.deb
 a046c378fb723dac99f5e851d6194d01e6c26af918fde736eba9618bc77bf31b 491522 
openmpi-doc_1.6.5-4_all.deb
 d06ac298e5563ebeeaabb45a130469f89067e4b10c0c7e21b244b0277ceba07e 4803462 
libopenmpi1.6-dbg_1.6.5-4_amd64.deb
 2b5c294b3956a2c3b1bec1f6f47b088b409a711513a7217ccf75932d72970809 95498 
openmpi-checkpoint_1.6.5-4_amd64.deb
Files: 
 5f9b89436966c58908ee2718291791d7 2060 net extra openmpi_1.6.5-4.dsc
 cfc4c201ed581acabe5bf95146c525b6 29440 net extra openmpi_1.6.5-4.debian.tar.gz
 422ce72cec1fac9561bfeeada69c222a 153026 net extra openmpi-bin_1.6.5-4_amd64.deb
 257f5847c140c39a4ab01e047105aee7 446158 libdevel extra 
libopenmpi-dev_1.6.5-4_amd64.deb
 a7bfe80a8fa483aee8f57f14a21fcd6e 1415344 libs extra 
libopenmpi1.6_1.6.5-4_amd64.deb
 7545b370f379d0e5f27fc6c0041dc581 110002 net extra 
openmpi-common_1.6.5-4_all.deb
 87acc6e8f31ec73384dae8a43c681ec6 491522 doc extra openmpi-doc_1.6.5-4_all.deb
 7d3c7802b06e44b1dfc2c4c8e9da5502 4803462 debug extra 
libopenmpi1.6-dbg_1.6.5-4_amd64.deb
 bf178e768123f17899867f1c512c92d3 95498 net extra 
openmpi-checkpoint_1.6.5-4_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAlIdpm8ACgkQiOXXM92JlhDywQCg8N0zNimJlLopCe/oCSghdwEg
ET0AoLmRDVXeMI+SpocFbx5357JpSMXA
=vc3L
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to