Commit 996560191ac6bd603901dcd6c0de5d239e019ef4 causes strange regression

Martin Schwenke martin at meltin.net
Mon Mar 8 01:39:39 UTC 2021


I want to flag this regression as soon as possible (before I really
understand it) because 4.12.12 is due for release on Thursday and this
may be the last 4.12.x release, due to the imminent release of 4.14.0.

This is the commit in question:

commit 996560191ac6bd603901dcd6c0de5d239e019ef4
Author: Björn Jacke <bj at sernet.de>
Date:   Tue Mar 2 22:47:35 2021 +0100

    wscript: use --as-needed only if tested successfully
    
    Some OSes like Solaris based OmiOS don't support this.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14288
    
    Signed-off-by: Bjoern Jacke <bjacke at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

* This currently affecting a CTDB test binary but might also be silently
  affecting other binaries that aren't tested after  install.

* It may also be a bug in ctdb/wscript that has been activated by this
  change but I haven't been able to find it.

* So far I only see it on a CentOS 7 test node but it happens in all
  branches where it has been applied.

  I assumed it was a generic installation/linking problem but I can't
  recreate it on Debian testing.

* Reverting the above commit fixes the problem.

It causes a very strange test failure:

--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--
Running test /usr/local/samba/share/ctdb/tests/UNIT/cunit/reqid_test_001.sh (05:37:56)
--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--
==================================================
Running "reqid_test"
--------------------------------------------------
Output (Exit status: 127):
--------------------------------------------------
reqid_test: error while loading shared libraries: libgenrand-samba4.so: cannot open shared object file: No such file or directory
--------------------------------------------------
Required output (Exit status: 0):
--------------------------------------------------
WARNING: attempt to remove unset id 0 in idtree
WARNING: attempt to remove unset id 1 in idtree
WARNING: attempt to remove unset id 2 in idtree
...
WARNING: attempt to remove unset id 1023 in idtree

FAILED
==========================================================================
TEST FAILED: /usr/local/samba/share/ctdb/tests/UNIT/cunit/reqid_test_001.sh (status 1) (duration: 1s)
==========================================================================

This is really an installation failure:

[root at testtest1 ~]# ldd /usr/local/samba/libexec/ctdb/tests/reqid_test
        linux-vdso.so.1 (0x00007fff261f6000)
        libsamba-util.so.0 => /usr/local/samba/lib/libsamba-util.so.0 (0x00007fc9d9970000)
        libgenrand-samba4.so => not found
        libsocket-blocking-samba4.so => not found
        libutil-setid-samba4.so => not found
        libtevent.so.0 => /lib64/libtevent.so.0 (0x00007fc9d975c000)
        libsamba-debug-samba4.so => not found
        libtime-basic-samba4.so => not found
        libsys-rw-samba4.so => not found
        libtalloc.so.2 => /lib64/libtalloc.so.2 (0x00007fc9d9547000)
        libreplace-samba4.so => not found
        libiov-buf-samba4.so => not found
        libicui18n.so.60 => /lib64/libicui18n.so.60 (0x00007fc9d9086000)
        libgnutls.so.30 => /lib64/libgnutls.so.30 (0x00007fc9d8c95000)
        ...

Other test binaries that also depend on some of the above "not found"
things have no problem:

[root at testtest1 ~]# ldd /usr/local/samba/libexec/ctdb/tests/sock_daemon_test
        linux-vdso.so.1 (0x00007ffe1c6b8000)
        libsocket-blocking-samba4.so => /usr/local/samba/lib/private/libsocket-blocking-samba4.so (0x00007fa8c1f3c000)
        libtevent.so.0 => /usr/local/samba/lib/private/libtevent.so.0 (0x00007fa8c1d24000)
        libtevent-util.so.0 => /usr/local/samba/lib/libtevent-util.so.0 (0x00007fa8c1b1f000)
        libsys-rw-samba4.so => /usr/local/samba/lib/private/libsys-rw-samba4.so (0x00007fa8c191c000)
        libtdb.so.1 => /usr/local/samba/lib/private/libtdb.so.1 (0x00007fa8c1701000)
        libreplace-samba4.so => /usr/local/samba/lib/private/libreplace-samba4.so (0x00007fa8c14ff000)
        libtalloc.so.2 => /usr/local/samba/lib/private/libtalloc.so.2 (0x00007fa8c12f5000)
        libsamba-util.so.0 => /usr/local/samba/lib/libsamba-util.so.0 (0x00007fa8c107b000)
        libiov-buf-samba4.so => /usr/local/samba/lib/private/libiov-buf-samba4.so (0x00007fa8c0e79000)
        libsamba-errors.so.1 => /usr/local/samba/lib/libsamba-errors.so.1 (0x00007fa8c0b23000)
        libgenrand-samba4.so => /usr/local/samba/lib/private/libgenrand-samba4.so (0x00007fa8c0921000)
        libutil-setid-samba4.so => /usr/local/samba/lib/private/libutil-setid-samba4.so (0x00007fa8c071f000)
        libsamba-debug-samba4.so => /usr/local/samba/lib/private/libsamba-debug-samba4.so (0x00007fa8c0515000)
        libtime-basic-samba4.so => /usr/local/samba/lib/private/libtime-basic-samba4.so (0x00007fa8c0313000)
        libicui18n.so.60 => /lib64/libicui18n.so.60 (0x00007fa8bfe52000)
        libicudata.so.60 => /lib64/libicudata.so.60 (0x00007fa8be2a8000)
        ...

For the affected binary, it appears to be unable to find anything
/usr/local/samba/lib/private/.

I'll spend more time on this later... but I'm hoping that someone else
has a clue and is able to understand what is happening.

Thanks...

peace & happiness,
martin



More information about the samba-technical mailing list