Package: libgdbm6
Version: 1.19-2
Severity: important

Dear Maintainer,

I run a few DBM-intensive applications. They manipulate huge DBMs, but
they work usually like a charm:

15168 mojolic+  20   0   90.8g 156260   5460 S   0.0   3.0   0:00.30 
known_passwords
15159 mojolic+  20   0   16.6g  63260   6572 S   0.0   1.2   0:00.15 
usenet-fr.pl

(as you can see they allocate a lot of virtual memory but do not really make 
use of it)

They usually startup in a few seconds and are very fast when started. They are
written in Perl in the Mojolicious framework, I use perlbrew.

I just migrated from buster to bullseye and it no longer works at all. The
script never complete opening of the DBMs, and uses insanely huge amount of
memory (not only virtual).

This is the same with the buster-compiled perl-5.36.1-2023-05-14 or with the
bullseye just recompiled perl-5.38.0-2023-08-04.

However, there is a simple work-around:

   export LD_LIBRARY_PATH=/home/mojolicious/tmp-libs

where this directory contains:

lrwxrwxrwx  1 root        root            23 Mar 12  2019 libgdbm_compat.so -> 
libgdbm_compat.so.4.0.0
lrwxrwxrwx  1 root        root            23 Mar 12  2019 libgdbm_compat.so.4 
-> libgdbm_compat.so.4.0.0
-rw-r--r--  1 root        root         14104 Mar 12  2019 
libgdbm_compat.so.4.0.0.O1
lrwxrwxrwx  1 root        root            16 Mar 12  2019 libgdbm.so -> 
libgdbm.so.6.0.0
lrwxrwxrwx  1 root        root            16 Mar 12  2019 libgdbm.so.6 -> 
libgdbm.so.6.0.0
-rw-r--r--  1 root        root         63512 Mar 12  2019 libgdbm.so.6.0.0

As you can see, just overriding libgdbm.so.6.0.0 through LD_LIBRARY_PATH with
the buster version of the library is enough (I have tested that renaming
libgdbm_compat.so.4.0.0 to libgdbm_compat.so.4.0.0.O1 still fixes the problem,
but renaming libgdbm.so.6.0.0 to libgdbm.so.6.0.0.O1 makes the problem
reappear). The issue seems to be in the libgdbm6 package, very specifically in
libgdbm.so.6.0.0.

With the work-around, things seem then to work again like a charm.

As an additional note, there seems to have been an issue like this with Fedora:

   https://github.com/Perl/perl5/issues/18884

They seem to have a patch for GDBM as it is not linked to Perl in any way:

   https://github.com/Perl/perl5/issues/18884#issuecomment-860437280

Could you look into this?

-- System Information:
Debian Release: 11.7
  APT prefers oldstable-security
  APT policy: (500, 'oldstable-security'), (500, 'oldstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-25-amd64 (SMP w/8 CPU threads)
Locale: LANG=C, LC_CTYPE=fr_CH.ISO-8859-1 (charmap=ISO-8859-1), LANGUAGE not set
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)

Versions of packages libgdbm6:amd64 depends on:
ii  libc6  2.31-13+deb11u6

libgdbm6:amd64 recommends no packages.

Versions of packages libgdbm6:amd64 suggests:
pn  gdbm-l10n  <none>

-- no debconf information

Reply via email to