Bug 250906 - net/samba412: "samba-tool domain backup offline" hangs
Summary: net/samba412: "samba-tool domain backup offline" hangs
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Timur I. Bakeyev
Depends on:
Reported: 2020-11-06 16:36 UTC by ml
Modified: 2020-11-06 16:36 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (timur)


Note You need to log in before you can comment on or make changes to this bug.
Description ml 2020-11-06 16:36:51 UTC
#samba-tool domain backup offline --targetdir .
running backup on dirs: /var/db/samba4/private /var/db/samba4 /usr/local/etc
Starting transaction on /var/db/samba4/private/secrets

What is really hanged is a subprocess that samba-tool starts:
/usr/local/bin/tdbbackup -s .copy.tdb /var/db/samba4/private/secrets.ldb 

This is a  long standing issue since Samba 4.10 (which introduced this command).
Now I tried upgrading to 4.12, but nothing changed.

A discussion on Samba's mailing list suggested this might be caused by an older version of TDB and that that library should be bundled.

Building (in Poudriere) with SAMBA4_BUNDLED_TDB=yes, however will produce the following:
# samba-tool domain backup offline --targetdir .
running backup on dirs: /var/db/samba4/private /var/db/samba4 /usr/local/etc
Starting transaction on /var/db/samba4/private/secrets
ERROR(<class 'FileNotFoundError'>): uncaught exception - [Errno 2] No such file or directory: '/root/bin/tdbbackup': '/root/bin/tdbbackup'
  File "/usr/local/lib/python3.7/site-packages/samba/netcmd/__init__.py", line 186, in _run
    return self.run(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/samba/netcmd/domain_backup.py", line 1061, in run
    self.backup_secrets(paths.private_dir, lp, logger)
  File "/usr/local/lib/python3.7/site-packages/samba/netcmd/domain_backup.py", line 954, in backup_secrets
    self.offline_tdb_copy(secrets_path + '.ldb')
  File "/usr/local/lib/python3.7/site-packages/samba/netcmd/domain_backup.py", line 928, in offline_tdb_copy
    tdb_copy(path, backup_path, readonly=True)
  File "/usr/local/lib/python3.7/site-packages/samba/tdb_util.py", line 40, in tdb_copy
    status = subprocess.check_call(tdbbackup_cmd, close_fds=True, shell=False)
  File "/usr/local/lib/python3.7/subprocess.py", line 358, in check_call
    retcode = call(*popenargs, **kwargs)
  File "/usr/local/lib/python3.7/subprocess.py", line 339, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/usr/local/lib/python3.7/subprocess.py", line 800, in __init__
    restore_signals, start_new_session)
  File "/usr/local/lib/python3.7/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
A transaction is still active in ldb context [0x800a3cae0] on /var/db/samba4/private/secrets.ldb