0 Replies Latest reply: Apr 8, 2013 2:04 AM by 853461 RSS

    Coredump (crash) in OCCI library

      OCCI version: 11.2
      OS: SUSE Linux Enterprise Server 11 SP2
      Oracle: 11g R2

      The application successfully connect to Oracle database via OCCi StatelessConnectionPool and works fine then the network NIC is shutdown (ifconfig eth0 down) by accident and the Oracle (both Listener and Instance) is shutdown too. The application will try to build connection to check if oracle database connection is recovered or not.
      Source code sample (all exception are caught, not show in here):

      ------------build connection pool-----------------------------
      void buildPool()
      oracle::occi::Environment* environment = oracle::occi::Environment::createEnvironment(oracle::occi::Environment::THREADED_MUTEXED);
      StatelessConnectionPool* connectionPool = environment->createStatelessConnectionPool(username, password, connectUrl, 20,5, 1, oracle::occi::StatelessConnectionPool::HOMOGENEOUS);
      connectionPool ->setStmtCacheSize(10);


      ------------check connection availability------------------------------
      //timeout every 5 seconds to check connection problem
      void timeout()
      oracle::occi::Connection *connection = environment->createConnection(username, password, _connectUrl); //core dump happened in here


      After a while network NIC is recovered (ifconfig eth0 up) but Oracle database not, the application will crash and the stack backtrack is:
      Program terminated with signal 6, Aborted.
      #0 0x00007fb9129e865b in raise () from /lib64/libpthread.so.0
      (gdb) bt
      #0 0x00007fb9129e865b in raise () from /lib64/libpthread.so.0
      #1 0x00007fb9119a942e in skgesigOSCrash () from /home/oracle/occi/lib/libclntsh.so.11.1
      #2 0x00007fb911c4bca9 in kpeDbgSignalHandler () from /home/oracle/occi/lib/libclntsh.so.11.1
      #3 0x00007fb9119a963e in skgesig_sigactionHandler () from /home/oracle/occi/lib/libclntsh.so.11.1
      #4 <signal handler called>
      #5 0x00007fb90e2c6b55 in raise () from /lib64/libc.so.6
      #6 0x00007fb90e2c8131 in abort () from /lib64/libc.so.6
      #7 0x00007fb90e303c2f in __libc_message () from /lib64/libc.so.6
      #8 0x00007fb90e309358 in malloc_printerr () from /lib64/libc.so.6
      #9 0x00007fb90e30c99d in intmalloc () from /lib64/libc.so.6
      #10 0x00007fb90e30e3e7 in malloc () from /lib64/libc.so.6
      #11 0x00007fb911f3e031 in sltstidinit () from /home/oracle/occi/lib/libclntsh.so.11.1
      #12 0x00007fb910709e51 in ltstidi () from /home/oracle/occi/lib/libclntsh.so.11.1
      #13 0x00007fb9103a619b in kpuiInitMutex () from /home/oracle/occi/lib/libclntsh.so.11.1
      #14 0x00007fb9103a53de in kpughndl0 () from /home/oracle/occi/lib/libclntsh.so.11.1
      #15 0x00007fb9103a5109 in kpughndl () from /home/oracle/occi/lib/libclntsh.so.11.1
      #16 0x00007fb9111419b4 in kpuspsessionget () from /home/oracle/occi/lib/libclntsh.so.11.1
      #17 0x00007fb910fc212f in OCISessionGet () from /home/oracle/occi/lib/libclntsh.so.11.1
      #18 0x00007fb91283bdf3 in oracle::occi::ConnectionImpl::openConnection(OCIEnv*, OCIError*, void*, unsigned int, void*, unsigned int, void*, unsigned int, void*, unsigned int, unsigned int, void*, unsigned int, oracle::occi::Connection::Purity, oracle::occi::StatelessConnectionPool::PoolType) ()
      #19 0x00007fb91283f312 in ZN6oracle4occi14ConnectionImplC9EPNS015EnvironmentImplERKSsS5_S5_ () from /home/oracle/occi/lib/libocci.so.11.1
      #20 0x00007fb91283f1d9 in oracle::occi::ConnectionImpl::ConnectionImpl(oracle::occi::EnvironmentImpl*, std::string const&, std::string const&, std::string const&)
      #21 0x00007fb912838590 in oracle::occi::EnvironmentImpl::createConnection(std::string const&, std::string const&, std::string const&) ()

      Is anybody has idea? Please help!!

      Thanks and Regards