Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VFS errors #312

Closed
Astaoth opened this issue Jun 29, 2023 · 9 comments
Closed

VFS errors #312

Astaoth opened this issue Jun 29, 2023 · 9 comments
Assignees

Comments

@Astaoth
Copy link

Astaoth commented Jun 29, 2023

Hi,

Following my issue yesterday, I've updated Greyhole with the latest version. Now when I try to use my shares, they won't open and I have this samba error :

[2023/06/28 10:13:48.413620,  0] ../../lib/util/modules.c:49(load_module)
  Error loading module '/usr/lib/x86_64-linux-gnu/samba/vfs/greyhole.so': libtalloc-samba4.so: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type
[2023/06/28 10:13:48.413705,  0] ../../source3/smbd/vfs.c:185(vfs_init_custom)
  error probing vfs module 'greyhole': NT_STATUS_UNSUCCESSFUL
[2023/06/28 10:13:48.414696,  0] ../../source3/smbd/vfs.c:399(smbd_vfs_init)

Any idea of how to fix this ? I'm on Debian 12.

@gboudreau
Copy link
Owner

Indeed, it looks like libtalloc-samba4.so and libtevent-samba4.so (and maybe other libs) get built, when compiling Samba from source, but those are NOT part of the samba-libs (neither on Ubuntu nor Debian). Not sure why...

The safest way to resolve this is to compile the VFS on your server, to ensure it will have all the necessary libraries available.
Use the /usr/share/greyhole/build_vfs.sh current command do to so.

@gboudreau
Copy link
Owner

gboudreau commented Jun 29, 2023

Samba 4.17+ can either bundle, or not, ldb, tdb, tevent & talloc. When NOT bundling them (eg. on Debian and Ubuntu), Samba will use the system-provided libraries, and thus will depend on those packages.
On RPM-based systems, those will be bundled, and thus the -samba4 versions of those libraries will be included in the samba-libs package, and Samba will use those, instead of the (maybe available) system libraries.
And thus, I can't compile a single Greyhole VFS that would work on both...
The .so I compile & distribute will work with bundled libraries (CentOS etc.), but won't work on Debian & Ubuntu.
I'd have to create a second version of the .so, with bundling disabled, and then make the Greyhole package depend on specific versions of those libraries, but only when used with Samba 4.17... Not an easy thing to do.

I'll leave this open for now.
I think compiling the VFS manually is an OK workaround, vs the work required to properly fix this.

@gboudreau
Copy link
Owner

Note to future-self: to disable bundling, add this in build_vfs.sh:

    if [[ ${m} -ge 17 ]]; then
      CONF_OPTIONS="${CONF_OPTIONS} --bundled-libraries=!ldb,!pyldb-util,!talloc,!pytalloc-util,!tevent,!tdb,!pytdb"
    fi

@Astaoth
Copy link
Author

Astaoth commented Jun 29, 2023

Yesterday with the previous Greyhole version, I was unable to build myself VFS, as underlined in my previous issue. But it seems that with the new package version it works fine (I've sent a big batch of data in one share this afternoon for testing it).

I get the one-man-project issue, and building by hand the VFS module is fine, if there are no building errors. I think this could also be triggered by dpkg when installing the package, but I don't know how.
However, it seems that it would require to follow the Samba updates on the deb distros, because with the previous Greyhole package, the VFS building was failing. I guess that there is no easy fix and would depend of the amount of users on deb distros.

In any case, for me this issue is solved, until the next significative Samba update ;). Thank you for your help !

gboudreau added a commit that referenced this issue Jun 30, 2023
Bugfix: deb-specific modules, starting at 4.17 : using non-bundled (i.e. shared) libraries (for ldb, tdb, tevent & talloc) - Ref: #312
@gboudreau
Copy link
Owner

I think I found a proper solution.
Could you download this file on your Debian 12 server, and run ldd ./greyhole-x86_64-deb.so, and paste the result here?

@Astaoth
Copy link
Author

Astaoth commented Jun 30, 2023

Here is the requested output :

# ldd ./greyhole-x86_64-deb.so 
	linux-vdso.so.1 (0x00007ffe801dd000)
	libsamba-util.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libsamba-util.so.0 (0x00007f74658e8000)
	libsmbd-base-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsmbd-base-samba4.so (0x00007f74656b8000)
	libsamba-debug-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsamba-debug-samba4.so (0x00007f74656ab000)
	libsmbconf.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libsmbconf.so.0 (0x00007f74655ff000)
	libtevent-util.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libtevent-util.so.0 (0x00007f74655f6000)
	libtalloc.so.2 => /lib/x86_64-linux-gnu/libtalloc.so.2 (0x00007f74655de000)
	libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f74653c2000)
	libtevent.so.0 => /lib/x86_64-linux-gnu/libtevent.so.0 (0x00007f74653ab000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f74651ca000)
	libreplace-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libreplace-samba4.so (0x00007f74651c5000)
	libtevent-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libtevent-samba4.so (0x00007f74651a8000)
	libsocket-blocking-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsocket-blocking-samba4.so (0x00007f74651a3000)
	libtime-basic-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libtime-basic-samba4.so (0x00007f746519e000)
	libsys-rw-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsys-rw-samba4.so (0x00007f7465199000)
	libgenrand-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libgenrand-samba4.so (0x00007f7465194000)
	libtalloc-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libtalloc-samba4.so (0x00007f7465186000)
	libtdb-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libtdb-samba4.so (0x00007f7465168000)
	libsamba-security-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsamba-security-samba4.so (0x00007f7465140000)
	libsamba3-util-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsamba3-util-samba4.so (0x00007f7465132000)
	libndr.so.3 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libndr.so.3 (0x00007f7465110000)
	libiov-buf-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libiov-buf-samba4.so (0x00007f7465109000)
	libcli-spoolss-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libcli-spoolss-samba4.so (0x00007f7465100000)
	libsamba-cluster-support-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsamba-cluster-support-samba4.so (0x00007f74650fb000)
	libserver-id-db-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libserver-id-db-samba4.so (0x00007f74650f5000)
	libsamba-errors.so.1 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libsamba-errors.so.1 (0x00007f7464f9d000)
	libndr-samba-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libndr-samba-samba4.so (0x00007f7464d66000)
	libmsrpc3-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libmsrpc3-samba4.so (0x00007f7464d35000)
	libutil-tdb-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libutil-tdb-samba4.so (0x00007f7464d30000)
	libkrb5samba-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libkrb5samba-samba4.so (0x00007f7464d20000)
	libsamba-sockets-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsamba-sockets-samba4.so (0x00007f7464d02000)
	libCHARSET3-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libCHARSET3-samba4.so (0x00007f7464cfb000)
	libdbwrap-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libdbwrap-samba4.so (0x00007f7464cec000)
	liblibsmb-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/liblibsmb-samba4.so (0x00007f7464c66000)
	libsamba-passdb.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libsamba-passdb.so.0 (0x00007f7464c16000)
	libmessages-dgm-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libmessages-dgm-samba4.so (0x00007f7464c05000)
	libauth-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libauth-samba4.so (0x00007f7464bd5000)
	libdcerpc-samba-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libdcerpc-samba-samba4.so (0x00007f7464a24000)
	libndr-standard.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libndr-standard.so.0 (0x00007f7464478000)
	libsamba-hostconfig.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libsamba-hostconfig.so.0 (0x00007f746443e000)
	libsmbd-shim-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsmbd-shim-samba4.so (0x00007f7464439000)
	libsecrets3-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsecrets3-samba4.so (0x00007f7464418000)
	libgensec-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libgensec-samba4.so (0x00007f74643dd000)
	libtdb-wrap-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libtdb-wrap-samba4.so (0x00007f74643d8000)
	libndr-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libndr-samba4.so (0x00007f7464071000)
	libcliauth-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libcliauth-samba4.so (0x00007f7464055000)
	libgse-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libgse-samba4.so (0x00007f746401d000)
	libcli-smb-common-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libcli-smb-common-samba4.so (0x00007f7463fd6000)
	libutil-setid-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libutil-setid-samba4.so (0x00007f7463fd1000)
	libsamba-modules-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsamba-modules-samba4.so (0x00007f7463fcc000)
	liblibcli-lsa3-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/liblibcli-lsa3-samba4.so (0x00007f7463fc6000)
	libcommon-auth-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libcommon-auth-samba4.so (0x00007f7463fb9000)
	libauthkrb5-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libauthkrb5-samba4.so (0x00007f7463f9b000)
	libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f7463f95000)
	libtirpc.so.3 => /lib/x86_64-linux-gnu/libtirpc.so.3 (0x00007f7463f67000)
	libtalloc-report-printf-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libtalloc-report-printf-samba4.so (0x00007f7463f62000)
	libutil-reg-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libutil-reg-samba4.so (0x00007f7463f5b000)
	libinterfaces-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libinterfaces-samba4.so (0x00007f7463f55000)
	libmessages-util-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libmessages-util-samba4.so (0x00007f7463f50000)
	libserver-role-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libserver-role-samba4.so (0x00007f7463f4b000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7463f2c000)
	libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f7463df6000)
	libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f7463dc5000)
	libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f7463c0f000)
	libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f7463bfa000)
	libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007f7463bac000)
	libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007f7463b63000)
	libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f7463ae0000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f746596f000)
	libsamba-credentials.so.1 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libsamba-credentials.so.1 (0x00007f7463ac5000)
	libasn1util-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libasn1util-samba4.so (0x00007f7463abc000)
	libndr-nbt.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libndr-nbt.so.0 (0x00007f7463a7d000)
	libnpa-tstream-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libnpa-tstream-samba4.so (0x00007f7463a6f000)
	libdcerpc-binding.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libdcerpc-binding.so.0 (0x00007f7463a3e000)
	libasn1.so.8 => /lib/x86_64-linux-gnu/libasn1.so.8 (0x00007f7463990000)
	libkrb5.so.26 => /lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007f74638fc000)
	libgssapi.so.3 => /lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007f74638b9000)
	libsmb-transport-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsmb-transport-samba4.so (0x00007f74638ae000)
	libwbclient.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libwbclient.so.0 (0x00007f7463895000)
	libmsghdr-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libmsghdr-samba4.so (0x00007f7463890000)
	libMESSAGING-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libMESSAGING-samba4.so (0x00007f7463884000)
	liblibcli-netlogon3-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/liblibcli-netlogon3-samba4.so (0x00007f7463878000)
	libndr-krb5pac.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libndr-krb5pac.so.0 (0x00007f7463861000)
	libsamdb.so.0 => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/libsamdb.so.0 (0x00007f7463840000)
	libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f7463804000)
	libcli-cldap-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libcli-cldap-samba4.so (0x00007f74637f7000)
	libaddns-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libaddns-samba4.so (0x00007f74637e6000)
	libcli-nbt-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libcli-nbt-samba4.so (0x00007f74637d8000)
	libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f7463786000)
	libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007f7463778000)
	libldbsamba-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libldbsamba-samba4.so (0x00007f7463741000)
	libldb-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libldb-samba4.so (0x00007f74636fe000)
	libsamdb-common-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libsamdb-common-samba4.so (0x00007f74636c3000)
	libroken.so.19 => /lib/x86_64-linux-gnu/libroken.so.19 (0x00007f74636a9000)
	libwind.so.0 => /lib/x86_64-linux-gnu/libwind.so.0 (0x00007f746367f000)
	libheimbase.so.1 => /lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007f746366d000)
	libhx509.so.5 => /lib/x86_64-linux-gnu/libhx509.so.5 (0x00007f7463620000)
	libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f74634c1000)
	libhcrypto.so.5 => /lib/x86_64-linux-gnu/libhcrypto.so.5 (0x00007f7463488000)
	libheimntlm.so.0 => /lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007f746347b000)
	libMESSAGING-SEND-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libMESSAGING-SEND-samba4.so (0x00007f7463476000)
	libcli-ldap-common-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libcli-ldap-common-samba4.so (0x00007f746346a000)
	libcluster-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libcluster-samba4.so (0x00007f7463465000)
	libclidns-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libclidns-samba4.so (0x00007f746345b000)
	libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f7463381000)
	libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f7463354000)
	libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f7463346000)
	libflag-mapping-samba4.so => /usr/share/greyhole/vfs-build/samba-4.17.8/bin/shared/private/libflag-mapping-samba4.so (0x00007f7463341000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7463260000)
	libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f7463259000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f7463248000)

@gboudreau
Copy link
Owner

OK, thanks.
I also tried on Debian 12 and Ubuntu mantic using empty Docker containers, and ldd doesn't report any Not found libraries.
I'll try to publish a new version on APT that includes those new -deb versions of the VFS modules, instead of the ones that require libtalloc-samba4.so and libtevent-samba4.so.

gboudreau added a commit that referenced this issue Jun 30, 2023
@gboudreau
Copy link
Owner

OK, seems fixed.

root@a26656867dcf:/# greyhole --version
greyhole, version 0.15.20, for linux-gnu (noarch)

root@a26656867dcf:/# ldd /usr/lib/aarch64-linux-gnu/samba/vfs/greyhole.so
...
	libldbsamba-samba4.so.0 => /usr/lib/aarch64-linux-gnu/samba/libldbsamba-samba4.so.0 (0x0000ffffa2540000)
	libldb.so.2 => /lib/aarch64-linux-gnu/libldb.so.2 (0x0000ffffa23f0000)
...
	libtdb-wrap-samba4.so.0 => /usr/lib/aarch64-linux-gnu/samba/libtdb-wrap-samba4.so.0 (0x0000ffffb3f00000)
	libtdb.so.1 => /lib/aarch64-linux-gnu/libtdb.so.1 (0x0000ffffb3950000)
...
	libtevent-util.so.0 => /lib/aarch64-linux-gnu/libtevent-util.so.0 (0x0000ffff93c50000)
	libtevent.so.0 => /lib/aarch64-linux-gnu/libtevent.so.0 (0x0000ffff93990000)
...
	libtalloc.so.2 => /lib/aarch64-linux-gnu/libtalloc.so.2 (0x0000ffffbcbe0000)
...

@Astaoth
Copy link
Author

Astaoth commented Jun 30, 2023

Thank you, I'll test it when possible :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants