Bug ID 1094754
Summary Apache 2.4 and mod_authn_dbd
Classification openSUSE
Product openSUSE Distribution
Version Leap 15.0
Hardware x86-64
OS SUSE Other
Status NEW
Severity Normal
Priority P5 - None
Component Apache
Assignee bnc-team-apache@forge.provo.novell.com
Reporter woe.2018@wizonet.ch
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

While using mod_authn_dbd, apache 2.4 can't load driver file apr_dbd_mysql.so.

Somethin I've done:

Install apache2 (prefork)
Adding mod_dbd and mod_authn_dbd to apache modules in /etc/sysconfig/apache2

Install dbd-mysql:
zypper in libapr-util1-dbd-mysql

Adding these lines to my configuration file:
-------
DBDriver     mysql
DBDParams    "host=localhost sock=/var/run/mysql/mysql.sock dbname=webaccess
user=apache pass=XXXXXXX"
DBDMin       4
DBDKeep      8
DBDMax       20
DBDExptime   300
<Directory /srv/www/htdocs/member>
    AuthName                  "Secure access"
    AuthType                  Basic
    AuthBasicProvider         socache dbd
    AuthnCacheProvideFor      dbd
    AuthnCacheContext         my-server
    AuthDBDUserPWQuery        "SELECT password FROM table WHERE user=%s"
    <Limit GET POST>
        require               valid-user
    </Limit>
</Directory>
------

when I check the configuration, apachectl says:
# apachectl -t
AH00526: Syntax error on line 34 of /etc/apache2/vhosts.d/myconfig.conf:
Can't load driver file apr_dbd_mysql.so

Line 34 is:
DBDriver     mysql

The driver is available at:
ll /usr/lib64/apr-util-1/
total 80
-rwxr-xr-x 1 root root 14896 May 15 18:14 apr_crypto_openssl-1.so
lrwxrwxrwx 1 root root    23 May 15 18:14 apr_crypto_openssl.so ->
apr_crypto_openssl-1.so
-rwxr-xr-x 1 root root 23096 May 15 18:14 apr_dbd_mysql-1.so
lrwxrwxrwx 1 root root    18 May 15 18:14 apr_dbd_mysql.so ->
apr_dbd_mysql-1.so
-rwxr-xr-x 1 root root 10368 May 15 18:14 apr_dbm_db-1.so
lrwxrwxrwx 1 root root    15 May 15 18:14 apr_dbm_db.so -> apr_dbm_db-1.so
-rwxr-xr-x 1 root root 10464 May 15 18:14 apr_ldap-1.so
lrwxrwxrwx 1 root root    13 May 15 18:14 apr_ldap.so -> apr_ldap-1.so

ldd says:
# ldd /usr/lib64/apr-util-1/apr_dbd_mysql-1.so
    linux-vdso.so.1 (0x00007ffe3bf68000)
    libmariadb.so.3 => /usr/lib64/libmariadb.so.3 (0x00007f6362cb1000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6362a93000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f63626d9000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f63624c2000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f63622be000)
    libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x00007f6362052000)
    libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007f6361bc7000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f6363108000)

An strace to httpd says at the end:
openat(AT_FDCWD, "/usr/lib64/apr-util-1/apr_dbd_mysql-1.so",
O_RDONLY|O_CLOEXEC) = 5
read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p \0\0\0\0\0\0"..., 832)
= 832
fstat(5, {st_mode=S_IFREG|0755, st_size=23096, ...}) = 0
mmap(NULL, 2118168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) =
0x7fe783b72000
mprotect(0x7fe783b77000, 2093056, PROT_NONE) = 0
mmap(0x7fe783d76000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x4000) = 0x7fe783d76000
close(5)                                = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=38721, ...}) = 0
mmap(NULL, 38721, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7fe78bcef000
close(5)                                = 0
openat(AT_FDCWD, "/usr/lib64/libmariadb.so.3", O_RDONLY|O_CLOEXEC) = 5
read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360s\1\0\0\0\0\0"...,
832) = 832
fstat(5, {st_mode=S_IFREG|0755, st_size=323904, ...}) = 0
mmap(NULL, 2426112, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) =
0x7fe783921000
mprotect(0x7fe783966000, 2097152, PROT_NONE) = 0
mmap(0x7fe783b66000, 40960, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x45000) = 0x7fe783b66000
mmap(0x7fe783b70000, 5376, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe783b70000
close(5)                                = 0
mprotect(0x7fe783b66000, 32768, PROT_READ) = 0
munmap(0x7fe78bcef000, 38721)           = 0
munmap(0x7fe783b72000, 2118168)         = 0
munmap(0x7fe783921000, 2426112)         = 0
write(2, "AH00526: Syntax error on line 34"..., 81AH00526: Syntax error on line
34 of /etc/apache2/vhosts.d/myconfig.conf:
) = 81
write(2, "Can't load driver file apr_dbd_m"..., 40Can't load driver file
apr_dbd_mysql.so
) = 40
select(0, NULL, NULL, NULL, {tv_sec=0, tv_usec=10000}) = 0 (Timeout)

Therefore it seams, that apache find the apr_dbd_mysql-1.so but cant' use it.

libmariadb shows also ok:
# ldd /usr/lib64/libmariadb.so.3
    linux-vdso.so.1 (0x00007ffebacfa000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f7a0f9b7000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f7a0f7b3000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7a0f595000)
    libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x00007f7a0f329000)
    libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007f7a0ee9e000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f7a0eae4000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f7a0fe1f000)

Is there a bug in one of these files?


You are receiving this mail because: