Hi,
when trying to use the pcache overlay for an MDB database instance, it seems to work, at least some first test search seem to be significantly improved but then the slapd process without anything in the logs (no segfault at least). Unfortunately it is not possible to restart the slapd process either, as it also soon dies after starting.
The config used looks something like the following:
dn: olcOverlay={0}pcache,olcDatabase={1}mdb,cn=config objectClass: olcOverlayConfig objectClass: olcPcacheConfig olcOverlay: {0}pcache olcPcache: mdb 1000 1 1000 100 olcPcacheAttrset: 0 bn attribute1 attribute2 objectClass olcPcacheTemplate: "(&(|(objectClass=)(objectClass=))(bn=))" 0 120 olcPcacheTemplate: "(bn=)" 0 120
dn: olcDatabase={0}mdb,olcOverlay={0}pcache,olcDatabase={1}mdb,cn=config objectClass: olcMdbConfig objectClass: olcPcacheDatabase olcDatabase: {0}mdb olcDbDirectory: /data/pcache olcDbIndex: objectClass eq olcDbIndex: bn pres,eq,sub
Is pcache supposed to work as an overlay for mdb database? Or does it only work with an ldap backend db?
Thanks, Norbert
Norbert wrote:
Is pcache supposed to work as an overlay for mdb database? Or does it only work with an ldap backend db?
It was only designed for use with back-ldap. But if you can get a backtrace of a failure on back-mdb we might take a look.
Thanks, Norbert
Am 24.08.22 um 20:06 schrieb Howard Chu:
Norbert wrote:
Is pcache supposed to work as an overlay for mdb database? Or does it only work with an ldap backend db?
It was only designed for use with back-ldap. But if you can get a backtrace of a failure on back-mdb we might take a look.
This is what I get when trying to start openldap 2.5.13 (from repo.symas.com) on debian 10 and having the pcache configuration applied.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007ffff78bd535 in __GI_abort () at abort.c:79 #2 0x00007ffff78bd40f in __assert_fail_base (fmt=0x7ffff7a1eee0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7ffff702a08a "!rc", file=0x7ffff702a046 "id2entry.c", line=819, function=<optimized out>) at assert.c:92 #3 0x00007ffff78cb102 in __GI___assert_fail (assertion=assertion@entry=0x7ffff702a08a "!rc", file=file@entry=0x7ffff702a046 "id2entry.c", line=line@entry=819, function=function@entry=0x7ffff702a110 <__PRETTY_FUNCTION__.13589> "mdb_opinfo_get") at assert.c:101 #4 0x00007ffff7013165 in mdb_opinfo_get (op=op@entry=0x7ff86e7fa020, mdb=mdb@entry=0x7ffff6f19010, rdonly=rdonly@entry=1, moip=moip@entry=0x7ff86e7e9af8) at id2entry.c:819 #5 0x00007ffff7007ae4 in mdb_search (op=0x7ff86e7fa020, rs=0x7ff86e7f9fb0) at search.c:449 #6 0x0000555555609751 in ?? () #7 0x0000000000000028 in ?? () #8 0x00005555557ee700 in ?? () #9 0x00005555557ee700 in ?? () #10 0x00007ff86e7fa020 in ?? () #11 0x00007ff860001038 in ?? () #12 0x00005555557ef410 in ?? () #13 0x00005555557ee700 in ?? () #14 0x00007ff86e7f9fb0 in ?? () #15 0x0000000000000002 in ?? () #16 0x00005555556098c1 in ?? () #17 0x00007ff86e7f9ea0 in ?? () #18 0x000055555580d500 in ?? () #19 0x00007ffff70327e0 in ?? () from /opt/symas/lib/openldap/back_mdb-2.5.so.0 #20 0x00005555557ef410 in ?? () #21 0x0000010001010100 in ?? () #22 0x0101000101000001 in ?? () #23 0x0000000001000000 in ?? () #24 0x0000000000000000 in ?? ()
Regards, Norbert
openldap-technical@openldap.org