Hi, I have an application that uses the UnixODBC library (http://www.unixodbc.org) and MPI. When trying to run a program linked with UnixODBC, I immediately get an error, regardless of the calls in the program, i.e. OpenMPI fails during MPI_Init, which is the first call in the program.
I tried a simple experiment using the following program (trivial to demonstrate the bug) : #include <mpi.h> #include <iostream> int main(int argc, char* argv[]) { std::cerr << "Initializing MPI" << std::endl; MPI_Init(&argc, &argv); std::cerr << "MPI Initialized" << std::endl; int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); std::cerr << "My rank is : " << rank << std::endl; std::cerr << "Shutting down MPI" << std::endl; MPI_Finalize(); } If I compile this normally without UnixODBC, everything is fine: [wsinno@cluster openmpi_bug]$ mpic++ main.cpp [wsinno@cluster openmpi_bug]$ mpiexec -n 2 ./a.out Initializing MPI Initializing MPI MPI Initialized My rank is : 0 Shutting down MPI MPI Initialized My rank is : 1 Shutting down MPI If I compile and link in UnixODBC, I get the following problem: [wsinno@cluster openmpi_bug]$ mpic++ main.cpp -L UnixODBC/lib -lodbc [wsinno@cluster openmpi_bug]$ mpiexec -n 2 ./a.out Initializing MPI [cluster.logicblox.local:02272] [NO-NAME] ORTE_ERROR_LOG: Not found in file runtime/orte_init_stage1.c at line 214 -------------------------------------------------------------------------- It looks like orte_init failed for some reason; your parallel process is likely to abort. There are many reasons that a parallel process can fail during orte_init; some of which are due to configuration or environment problems. This failure appears to be an internal failure; here's some additional information (which may only be relevant to an Open MPI developer): orte_sds_base_select failed --> Returned value -13 instead of ORTE_SUCCESS -------------------------------------------------------------------------- -------------------------------------------------------------------------- It looks like MPI_INIT failed for some reason; your parallel process is likely to abort. There are many reasons that a parallel process can fail during MPI_INIT; some of which are due to configuration or environment problems. This failure appears to be an internal failure; here's some additional information (which may only be relevant to an Open MPI developer): ompi_mpi_init: orte_init_stage1 failed --> Returned "Not found" (-13) instead of "Success" (0) -------------------------------------------------------------------------- *** An error occurred in MPI_Init *** before MPI was initialized *** MPI_ERRORS_ARE_FATAL (goodbye) I have tried using iodbc (http://www.iodbc.org) instead, and that seems to work fine. Attached are the config.log and ompi_info output. Wael.
Open MPI: 1.1.1 Open MPI SVN revision: r11473 Open RTE: 1.1.1 Open RTE SVN revision: r11473 OPAL: 1.1.1 OPAL SVN revision: r11473 Prefix: /opt/openmpi Configured architecture: i686-pc-linux-gnu Configured by: root Configured on: Fri Sep 1 17:21:07 EDT 2006 Configure host: cluster.logicblox.local Built by: root Built on: Fri Sep 1 17:34:48 EDT 2006 Built host: cluster.logicblox.local C bindings: yes C++ bindings: yes Fortran77 bindings: yes (all) Fortran90 bindings: yes Fortran90 bindings size: small C compiler: gcc C compiler absolute: /usr/bin/gcc C++ compiler: g++ C++ compiler absolute: /usr/bin/g++ Fortran77 compiler: gfortran Fortran77 compiler abs: /usr/bin/gfortran Fortran90 compiler: gfortran Fortran90 compiler abs: /usr/bin/gfortran C profiling: yes C++ profiling: yes Fortran77 profiling: yes Fortran90 profiling: yes C++ exceptions: no Thread support: posix (mpi: no, progress: no) Internal debug support: no MPI parameter check: runtime Memory profiling support: no Memory debugging support: no libltdl support: yes MCA memory: ptmalloc2 (MCA v1.0, API v1.0, Component v1.1.1) MCA paffinity: linux (MCA v1.0, API v1.0, Component v1.1.1) MCA maffinity: first_use (MCA v1.0, API v1.0, Component v1.1.1) MCA timer: linux (MCA v1.0, API v1.0, Component v1.1.1) MCA allocator: basic (MCA v1.0, API v1.0, Component v1.0) MCA allocator: bucket (MCA v1.0, API v1.0, Component v1.0) MCA coll: basic (MCA v1.0, API v1.0, Component v1.1.1) MCA coll: hierarch (MCA v1.0, API v1.0, Component v1.1.1) MCA coll: self (MCA v1.0, API v1.0, Component v1.1.1) MCA coll: sm (MCA v1.0, API v1.0, Component v1.1.1) MCA coll: tuned (MCA v1.0, API v1.0, Component v1.1.1) MCA io: romio (MCA v1.0, API v1.0, Component v1.1.1) MCA mpool: sm (MCA v1.0, API v1.0, Component v1.1.1) MCA pml: ob1 (MCA v1.0, API v1.0, Component v1.1.1) MCA bml: r2 (MCA v1.0, API v1.0, Component v1.1.1) MCA rcache: rb (MCA v1.0, API v1.0, Component v1.1.1) MCA btl: self (MCA v1.0, API v1.0, Component v1.1.1) MCA btl: sm (MCA v1.0, API v1.0, Component v1.1.1) MCA btl: tcp (MCA v1.0, API v1.0, Component v1.0) MCA topo: unity (MCA v1.0, API v1.0, Component v1.1.1) MCA osc: pt2pt (MCA v1.0, API v1.0, Component v1.0) MCA gpr: null (MCA v1.0, API v1.0, Component v1.1.1) MCA gpr: proxy (MCA v1.0, API v1.0, Component v1.1.1) MCA gpr: replica (MCA v1.0, API v1.0, Component v1.1.1) MCA iof: proxy (MCA v1.0, API v1.0, Component v1.1.1) MCA iof: svc (MCA v1.0, API v1.0, Component v1.1.1) MCA ns: proxy (MCA v1.0, API v1.0, Component v1.1.1) MCA ns: replica (MCA v1.0, API v1.0, Component v1.1.1) MCA oob: tcp (MCA v1.0, API v1.0, Component v1.0) MCA ras: dash_host (MCA v1.0, API v1.0, Component v1.1.1) MCA ras: hostfile (MCA v1.0, API v1.0, Component v1.1.1) MCA ras: localhost (MCA v1.0, API v1.0, Component v1.1.1) MCA ras: slurm (MCA v1.0, API v1.0, Component v1.1.1) MCA rds: hostfile (MCA v1.0, API v1.0, Component v1.1.1) MCA rds: resfile (MCA v1.0, API v1.0, Component v1.1.1) MCA rmaps: round_robin (MCA v1.0, API v1.0, Component v1.1.1) MCA rmgr: proxy (MCA v1.0, API v1.0, Component v1.1.1) MCA rmgr: urm (MCA v1.0, API v1.0, Component v1.1.1) MCA rml: oob (MCA v1.0, API v1.0, Component v1.1.1) MCA pls: fork (MCA v1.0, API v1.0, Component v1.1.1) MCA pls: rsh (MCA v1.0, API v1.0, Component v1.1.1) MCA pls: slurm (MCA v1.0, API v1.0, Component v1.1.1) MCA sds: env (MCA v1.0, API v1.0, Component v1.1.1) MCA sds: pipe (MCA v1.0, API v1.0, Component v1.1.1) MCA sds: seed (MCA v1.0, API v1.0, Component v1.1.1) MCA sds: singleton (MCA v1.0, API v1.0, Component v1.1.1) MCA sds: slurm (MCA v1.0, API v1.0, Component v1.1.1)
config.log.gz
Description: Binary data