[Pdns-dev] oracle backend

a b tripivceta at hotmail.com
Mon Apr 30 15:55:04 CEST 2012


Hello list

For the past few weeks we have been working on getting pdns 3.0.1 to work on SunOS with the oracle backend. Having created the database and the schema, we have started inserting records into the tables. However, we ran into a wall when actually trying to get any data out of pdns_server:

Apr 29 17:13:29 Reading random entropy from '/dev/urandom'
Apr 29 17:13:29 This is a standalone pdns
Apr 29 17:13:29 Listening on controlsocket in '/var/run/pdns.controlsocket'
Apr 29 17:13:29 It is advised to bind to explicit addresses with the --local-address option
Apr 29 17:13:29 UDP server bound to 0.0.0.0:53
Apr 29 17:13:29 TCP server bound to 0.0.0.0:53
Apr 29 17:13:29 PowerDNS 3.0.1 (C) 2001-2011 PowerDNS.COM BV (Apr 17 2012, 15:18:33, gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath)) starting up
Apr 29 17:13:29 PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.
Apr 29 17:13:29 DNS Proxy launched, local port 26838, remote 127.0.0.1:5300
Apr 29 17:13:29 Creating backend connection for TCP
Apr 29 17:13:29 OracleFactory: OCIEnvCreate
Apr 29 17:13:29 Caught an exception instantiating a backend, cleaning up
Apr 29 17:13:29 TCP server is unable to launch backends - will try again when questions come in: OCIEnvCreate
Apr 29 17:13:29 About to create 3 backend threads for UDP
Apr 29 17:13:29 OracleFactory: OCIEnvCreate
Apr 29 17:13:29 Caught an exception instantiating a backend, cleaning up
Apr 29 17:13:29 OracleFactory: OCIEnvCreate
Apr 29 17:13:29 Caught an exception instantiating a backend, cleaning up
Apr 29 17:13:29 OracleFactory: OCIEnvCreate
Apr 29 17:13:29 Caught an exception instantiating a backend, cleaning up
Apr 29 17:13:29 Done launching threads, ready to distribute questions
Apr 29 17:14:53 OracleFactory: OCIEnvCreate
Apr 29 17:14:53 Caught an exception instantiating a backend, cleaning up
Apr 29 17:15:03 OracleFactory: OCIEnvCreate
Apr 29 17:15:03 Caught an exception instantiating a backend, cleaning up

On the client side (same system), nslookup reports:

> localhost
;; connection timed out; no servers could be reached
>

And the error messages

Apr 29 17:15:03 OracleFactory: OCIEnvCreate

Apr 29 17:15:03 Caught an exception instantiating a backend, cleaning up

keep repeating themselves on stdout/stderr.

Doing an ldd on liboraclebackend.so with resolution of immediate and lazy symbols returns:

        libclntsh.so.10.1 =>     /opt/oracle/product/10.2.0/db_2/lib/libclntsh.so.10.1
        librt.so.1 =>    /lib/64/librt.so.1
        libresolv.so.2 =>        /lib/64/libresolv.so.2
        libnsl.so.1 =>   /lib/64/libnsl.so.1
        libsocket.so.1 =>        /lib/64/libsocket.so.1
        libpthread.so.1 =>       /lib/64/libpthread.so.1
        libz.so.1 =>     /usr/lib/64/libz.so.1
        libstdc++.so.6 =>        /usr/sfw/lib/64/libstdc++.so.6
        libm.so.2 =>     /lib/64/libm.so.2
        libgcc_s.so.1 =>         /usr/sfw/lib/64/libgcc_s.so.1
        libnnz10.so =>   /opt/oracle/product/10.2.0/db_2/lib/libnnz10.so
        libkstat.so.1 =>         /lib/64/libkstat.so.1
        libgen.so.1 =>   /lib/64/libgen.so.1
        libdl.so.1 =>    /lib/64/libdl.so.1
        libsched.so.1 =>         /usr/lib/64/libsched.so.1
        libaio.so.1 =>   /lib/64/libaio.so.1
        libc.so.1 =>     /lib/64/libc.so.1
        libmd.so.1 =>    /lib/64/libmd.so.1
        libmp.so.2 =>    /lib/64/libmp.so.2
        libscf.so.1 =>   /lib/64/libscf.so.1
        libdoor.so.1 =>  /lib/64/libdoor.so.1
        libuutil.so.1 =>         /lib/64/libuutil.so.1
        symbol not found: _ZTV10DNSBackend              (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: g_singleThreaded              (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN10DNSBackend6getSOAERKSsR7SOADataP9DNSPacket               (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZTI10DNSBackend              (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN10DNSBackend6getArgERKSs           (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZNK5QType7getNameEv          (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZNK5QType7getCodeEv          (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN10DNSBackend12setArgPrefixERKSs            (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN5QTypeaSEPKc               (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _Z13BackendMakersv            (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN17BackendMakerClass6reportEP14BackendFactory               (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN14BackendFactory7declareERKSsS1_S1_S1_             (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _Z3argv               (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN7ArgvMapixERKSs            (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN7ArgvMap5asNumERKSs                (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _Z4theLRKSs           (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN6LoggerlsENS_7UrgencyE             (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN6LoggerlsERKSs             (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _ZN6LoggerlsERFRSoS0_E                (/opt/powerdns/lib/64/liboraclebackend.so)
        symbol not found: _Z11stringerrorv              (/opt/powerdns/lib/64/liboraclebackend.so)

What is interesting to note is that during the build of pdns_server, there were no link errors, and dump -Lv liboraclebackend.so lists both $ORIGIN and the correct LD_LIBRARY_PATH's to the Oracle client libraries in the shared object library.

Like for pdns_recursor, is there some special way that pdns_server, or Oracle backend has to be built on Solaris?

Does anybody know what the

"OracleFactory: OCIEnvCreate
Caught an exception instantiating a backend, cleaning up"


error means, and how can we troubleshoot it further?
We are completely stomped by this, and the project has hit a seemingly insurmountable wall.

 		 	   		  


More information about the Pdns-dev mailing list