httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <oh...@cox.net>
Subject Followup to earlier thread about "How to compiling/link/use Apache module that uses shared library?"
Date Fri, 22 Jun 2012 15:32:45 GMT
Hi,

Now that I've gotten by earlier problems with the module I'm working on (see thread "Re: UNSOLVED
was Re: SOLVED was Re: How to compiling/link/use Apache module that uses shared library?"),
I am trying to get my module to work with the stuff in that libobaccess.so.  This .so is part
of Oracle's Access Server SDK (ASDK).

The problem I'm running into now is that there's an initialization call in the library that
I need to make, ObConfig_initialize() that is suppose to initialize the SDK environment, but
when I call that (it takes either NULL or a const * char as parameter), it's blowing up (Apache
aborts).

I *think* that the problem is that the libobaccess.so is actually C++, with a bunch of wrapper-type
C functions to wrap the C++ functions, i.e., so my module (which is C) calls a function, and
inside obaccess.so the function calls a C++ function)., and it's probably blowing up because
the Oracle code doesn't know anything about Pool memory, but rather uses C++ new, etc.

Here's a gdb backtrace showing this:

In callAccessGate()...


In callAccessGate(): About to set handler...

In callAccessGate(): returned from set handler


In callAccessGate(): About to call ObConfig_initialize()...

Program received signal SIGABRT, Aborted.
[Switching to Thread 182897612000 (LWP 15573)]
0x000000351432e26d in raise () from /lib64/tls/libc.so.6
(gdb) bt full
#0 0x000000351432e26d in raise () from /lib64/tls/libc.so.6
No symbol table info available.
#1 0x000000351432fa6e in abort () from /lib64/tls/libc.so.6
No symbol table info available.
#2 0x000000351a7b1148 in __gnu_cxx::__verbose_terminate_handler () from /lib64/libstdc++.so.6
No symbol table info available.
#3 0x000000351a7af176 in __cxa_call_unexpected () from /lib64/libstdc++.so.6
No symbol table info available.
#4 0x000000351a7af1a3 in std::terminate () from /lib64/libstdc++.so.6
No symbol table info available.
#5 0x000000351a7af2a3 in __cxa_throw () from /lib64/libstdc++.so.6
No symbol table info available.
#6 0x0000002a97898a05 in ObThreadInitNLS () from /apps/netpoint/lib64/libobaccess.so
No symbol table info available.
#7 0x0000002a97898f75 in SetGlobalInTLS () from /apps/netpoint/lib64/libobaccess.so
No symbol table info available.
#8 0x0000002a9789913f in GetGlobalFromTLS () from /apps/netpoint/lib64/libobaccess.so
No symbol table info available.
#9 0x0000002a97899edc in NLS::NLS () from /apps/netpoint/lib64/libobaccess.so
No symbol table info available.
#10 0x0000002a9773f1b1 in ObConfig::initialize () from /apps/netpoint/lib64/libobaccess.so
No symbol table info available.
#11 0x0000002a976ee55d in ObConfig_initialize () from /apps/netpoint/lib64/libobaccess.so
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#12 0x0000002a97b94266 in callAccessGate (
PEM=0x706850 "MIICrTCCAhagAwIBAgICECUwDQYJKoZIhvcNAQEEBQAwgZMxCzAJBgNVBAYTAlVT\nMQswCQYDVQQIEwJWQTEPMA0GA1UEBxMGT0FLVE9OMRMwEQYDVQQKEwpKTFNpbXBs\nZUNBMRIwEAYDVQQLEwlKTERlbW8gQ0ExGzAZBgNVBAMTEkpMU2ltcGxlQ0EgRGVt\nbyBDQ"...,
url=0x2a97b956b0 "//apache1/certprotected/index.html") at mod_headers.c:847
res = Variable "res" is not available.
(gdb)

So, my code calls ObConfig_initialize() then it appears that that calls ObConfig_initialize()
which is presumably a C++ function.

In general, is there any way to handle this problem/situation if it's memory allocation (inside
libobaccess.so) related?

Thanks,
Jim

Mime
View raw message