Core dump (Oracle or DU or Wind/U ?)

From: Guy Dallaire <gdallaire_at_gustave.revenu.gouv.qc.ca>
Date: Mon, 06 Oct 1997 13:50:14 -0400 (EDT)

Hello,

The question will look a bit like a development question, but I assume that
some of you gurus can point me in the right direction.

We are having a problem here and we cannot determine the cause. We have
been working on it for a week now, trying to isolate the problem and we
cannot find anything. That program is from a third party (their programmer
spend the last week here) and they are using Oracle OCI and Wind/U from
bristol technology to port the source from win 32 to Digital Unix.It is
meant to be used in an oracle environment.

Running dbx on the core dump tells us that the program dumped core at the
_exit() function. The problem is that we need to control that particular
program with CA-Unicenter scheduler and when it dumps core (always) we
cannot determine the proper exit code of the program ! (It's 192 or
something like that)

We finally found a way to reproduce the problem:

First, some knowledge:

- Wind/U emulates windows DLL files with shared libraries (.so files). The
crash occurs when the program exits AFTER calling the FreeLibrary API
(emulated). It does not crash on the actual call.
- The program works just fine in an environment where only the client
portion of oracle is used on the server, of if both client and server
oracle products are installed but the program points to the client
software.
- If the program runs in an environment where only the server software is
installed, it crashes on exit.

The minimal program is constructed of two parts: a main module, and an .so
library (test.so) that is used as a DLL. This test.so library uses
libclntsh.so (an oracle OCI library).

Please note: test.so is loaded with the LoadLibray API, and release with
the FreeLibrary API. If FreeLibrary is NOT called, the program exits
normally, otherwise it crashes. We cannot directly link the test.so library
because depending against which database engine the application is running,
a different test.so is used.

What we found out is that if the program uses it's own libclntsh.so (or the
one that comes with oracle clients software, by seting ORACLE_HOME to the
home of orcle client software), there is no problem. If it uses oracle
servers's libclntsh.so (When ORACLE_HOME points to the oracle server
software), it crashes on exit. This happens even if BOTH libclntsh.so are
IDENTICAL !

Is there a bug in Digital Unix with shared libraries ? We tried using
ldopen and ldclose to open and close the library instead of the
LoadLibrary/CloseLibrary furnished by wind/u but it crashes anyway.

Any help would be greatly appreciated on that subject.

TIA!
Received on Mon Oct 06 1997 - 21:43:50 NZDT

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:36 NZDT