[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#4995) SampleLDAP.pm w/back_perl appears to be broken



Full_Name: Russ Allbery
Version: 2.3.35
OS: Debian
URL: 
Submission from: (NULL) (171.66.157.14)


While investigating another issue with back_perl, I tried to use the
SampleLDAP.pm module that comes with the OpenLDAP source.  I added the following
to my slapd.conf:

moduleload      back_perl

# ...

database        perl
suffix          "o=AnyOrg,c=US"
perlModulePath  /home/eagle/SampleLDAP.pm
perlModule      SampleLDAP

The result of slapd -d 1 is:
...
WARNING: No dynamic config support for database perl.
config_build_entry: "olcDatabase={2}perl"
backend_startup_one: starting "dc=Stanford,dc=EDU"
bdb_db_open: unclean shutdown detected; attempting recovery.
bdb_db_open: dbenv_open(/var/lib/ldap)
backend_startup_one: starting "o=AnyOrg,c=US"
Can't call method "init" on an undefined value.

I suspect the code in perl_back_db_open where it does:

                dSP; ENTER; SAVETMPS;

                PUSHMARK(sp);
                XPUSHs( perl_back->pb_obj_ref );

                PUTBACK;

#ifdef PERL_IS_5_6
                count = call_method("init", G_SCALAR);
#else
                count = perl_call_method("init", G_SCALAR);
#endif

The error message is consistent with perl_back->pb_obj_ref being an undefined
value.  Why it's undefined, though, I'm not sure.

See also http://www.openldap.org/lists/openldap-software/200705/msg00126.html