Launchpad has imported 2 comments from the remote bug at https://sourceware.org/bugzilla/show_bug.cgi?id=33558.
If you reply to an imported comment from within Launchpad, your comment will be sent to the remote bug automatically. Read more about Launchpad's inter-bugtracker facilities at https://help.launchpad.net/InterBugTracking. ------------------------------------------------------------------------ On 2025-10-21T05:41:25+00:00 Ponnuvel Palaniyappan wrote: libdnss-db opens and closes the DB file each time. This is normally not an issue as the DB files are small. This results in considerably poor performance when the DB files large (e.g. in an environment with 20k lines of DB file, the performance was 40times compared to keeping it open for processing all lines). Rather than re-opening for scanning each line, the file can be kept open for each call into libnss as proposed in [1]. Reported elsewhere: [0] https://bugs.launchpad.net/ubuntu/+source/libnss-db/+bug/2121543 [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1101371 Reply at: https://bugs.launchpad.net/ubuntu/+source/libnss- db/+bug/2121543/comments/6 ------------------------------------------------------------------------ On 2025-10-21T06:40:17+00:00 Ponnuvel Palaniyappan wrote: Created attachment 16429 Proposed patch Attaching the proposed patch here. Also sent to glibc-alpha. Reply at: https://bugs.launchpad.net/ubuntu/+source/libnss- db/+bug/2121543/comments/7 ** Changed in: libnss-db Status: Unknown => New ** Changed in: libnss-db Importance: Unknown => Medium -- You received this bug notification because you are a member of Debcrafters packages, which is subscribed to libnss-db in Ubuntu. https://bugs.launchpad.net/bugs/2121543 Title: [SRU] Poor performance of libnss-db on large db files Status in Libnss Db: New Status in libnss-db package in Ubuntu: Incomplete Status in libnss-db source package in Noble: New Status in libnss-db source package in Plucky: New Status in libnss-db source package in Questing: Incomplete Bug description: libdnss-db opens and closes the DB file each time. This is normally not an issue as the DB files are small. However, in a user environment, this takes considerably longer because the DB files have entries to the tune of 20k which severely impacts the performance of lookups. ---- [ Impact ] The libnss-db library, which processes Berkeley DB files, closes and re-opens the DB file for each entry in the file that it currently scans. This results in very poor performance and noticiable botteneck on the application side. In a user environment that has 20k entries in the DB, this results in about 40 times worse performance (compared to keeping the file open). [ Test Plan ] The test plan sets up some DB files and queries them to see if the open(2) and close(2) calls are repeatedly called. 1. update /etc/default/libnss-db DBS = passwd group shadow VAR_DB = /var/lib/misc ETC = ${VAR_DB}/etc AWK = awk MAKEDB = makedb --quiet 2. update /etc/nsswitch.conf passwd: files systemd db group: files systemd db shadow: files systemd db 3. create required files mkdir -p /var/lib/misc/etc touch /var/lib/misc/etc/{passwd,group,shadow} cp /etc/login.defs /var/lib/misc/etc 4. update /var/lib/misc/etc/login.defs so that UIDs are less likely to conflict UID_MIN 5000 5. create test users in berkelydb file cd /var/lib/misc for i in $(seq 0001 1000); do useradd -P /var/lib/misc test$i; done make 6. verify users in berkeleydb is recognized id test1000 7. verify that 'getent passwd' and 'getenv group' calls correctly retrieve the entr fom verify that there's not as many open/close calls as there are entries in the DB files [ Where problems could occur ] To my understanding the historical reason for doing close-open for each line is to minimise possible resource usage and reduce the possibility of DB files getting stale if DB files get updated externally. Potential risks revolve around those two. In the former case, this could result in higher load on the system (modern hardware should be capable of handling that). In the latter case, lookups could fail and likely result in re-scans from the application. [ Other Info ] Debian bug and patch(not merged): https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=1101371 To manage notifications about this bug go to: https://bugs.launchpad.net/libnss-db/+bug/2121543/+subscriptions -- Mailing list: https://launchpad.net/~debcrafters-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~debcrafters-packages More help : https://help.launchpad.net/ListHelp

