[Samba] samba-tool domain backup offline stalls

James B. Byrne byrnejb at harte-lyne.ca
Thu Jul 23 15:27:06 UTC 2020

On Wed, July 22, 2020 21:47, Andrew Bartlett wrote:

> Are you using DLZ_BIND9?  There is a bug where it doesn't know the locking
rules for those files.

No.  I am using the internal dns service.

> Otherwise, work out which commend it is waiting on (the child) and
> what lock that is waiting on (lslocks on linux is what I used to
> debug this stuff).

There does not appear to be any child process:

[root at smb4-2 private]# ps -auwx | grep python
root 16001  0.0  0.0  11448  2812  1  R+J  11:01   0:00.00 grep --color=auto
root 14795  0.0  0.6 143248 94216  2  I+J  10:05   0:05.59
/usr/local/bin/python3.7 -m trace --trace /usr/local/bin/samba-tool doma

The code immediately before the point the offline script stalls is:

 --- modulename: os, funcname: fsencode
os.py(812):         filename = fspath(filename)  # Does type-checking of
os.py(813):         if isinstance(filename, str):
os.py(814):             return filename.encode(encoding, errors)
subprocess.py(1466):                     if os.path.dirname(executable):
 --- modulename: posixpath, funcname: dirname
posixpath.py(156):     p = os.fspath(p)
posixpath.py(157):     sep = _get_sep(p)
 --- modulename: posixpath, funcname: _get_sep

. . .

 --- modulename: subprocess, funcname: __enter__
subprocess.py(845):         return self
subprocess.py(340):         try:
subprocess.py(341):             return p.wait(timeout=timeout)
 --- modulename: subprocess, funcname: wait
subprocess.py(1016):         if timeout is not None:
subprocess.py(1018):         try:
subprocess.py(1019):             return self._wait(timeout=timeout)
 --- modulename: subprocess, funcname: _wait
subprocess.py(1623):             if self.returncode is not None:
subprocess.py(1626):             if timeout is not None:
subprocess.py(1649):                 while self.returncode is None:
subprocess.py(1650):                     with self._waitpid_lock:
subprocess.py(1651):                         if self.returncode is not None:
subprocess.py(1653):                         (pid, sts) = self._try_wait(0)
 --- modulename: subprocess, funcname: _try_wait
subprocess.py(1610):             try:
subprocess.py(1611):                 (pid, sts) = os.waitpid(self.pid, wait_flags)

This is FreeBSD so lslock is only available in Linux compatibility mode, which
is not the case in this instance.

***          e-Mail is NOT a SECURE channel          ***
        Do NOT transmit sensitive data via e-Mail
   Unencrypted messages have no legal claim to privacy
 Do NOT open attachments nor follow links sent by e-Mail

James B. Byrne                mailto:ByrneJB at Harte-Lyne.ca
Harte & Lyne Limited          http://www.harte-lyne.ca
9 Brockley Drive              vox: +1 905 561 1241
Hamilton, Ontario             fax: +1 905 561 0757
Canada  L8E 3C3

More information about the samba mailing list