Package: samba
Version: 2:4.13.13+dfsg-1~deb11u2
Severity: critical
Tags: newcomer
Justification: breaks the whole system
X-Debbugs-Cc: p...@jbechtel.de


Dear Maintainers,

recently I updated something of my system (not pure debian, using sysvinit) and 
it wouldn't start up. It turned out to be a "Heisenbug": when I looked for the 
reason, the system did boot properly.

I then found out that pressing a key (left ctrl, hold down for > 0.5 s or press 
in combination with other keys) made the boot successful and that the nmbd 
startup hangs at getrandom() syscall before daemonizing. (first call: 
getrandom(*, 1, GRAND_NONBLICK), second call: getrandom(*, 64, 0))

After short research I found that enabling haveged could help - see 
https://bbs.archlinux.org/viewtopic.php?id=249430 , last post. It actually did, 
but I needed to make sure that update-rc.d tool sorted nmbd /after/ haveged. 
This could be achieved by adding "haveged" (no $dollar sign) to the list of 
"Required-Start:"


So I don't need anything from you, just wanted to give you a hint what could be 
improved: one of these possibilities would help:

* add haveged to the requirements of init.d script (and to the package 
requirements if systemd is not active.)
* removing need for getrandom syscall /before/ daemonizing (affecting samba 
codebase)


Best Regards
 Jonas (Bechtel)

P.S.: I did not check out the testing version as this requires another libc. I 
don't want to touch my libc because in the past I have burnt lots of time 
resolving dependencies then. Updating libc requires another gcc and via some 
relation perl and python want to be updated. Via pythonqt this affects qt and 
kde, so somehow I would end up reinstalling/updating most packages of the 
system. (Which is ironic because libc takes measures to be actually fully 
backward compatible)



-- Package-specific info:
* /etc/samba/smb.conf present, and attached
* /var/lib/samba/dhcp.conf present, and attached

-- System Information:
Debian Release: 10.7
  APT prefers oldstable-updates
  APT policy: (500, 'oldstable-updates'), (500, 'stable'), (500, 'oldstable'), 
(200, 'testing')
Architecture: i386 (x86_64)
Foreign Architectures: amd64

Kernel: Linux 4.19.0-6-amd64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_FORCED_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)
LSM: AppArmor: enabled

Versions of packages samba depends on:
ii  adduser              3.118
ii  dpkg                 1.20.9
ii  init-system-helpers  1.56+nmu1
ii  libbsd0              0.9.1-2
ii  libc6                2.31-13+deb11u2
ii  libgnutls30          3.7.1-5
ii  libldb2              2:2.2.3-2~deb11u1
ii  libpam-modules       1.3.1-5
ii  libpam-runtime       1.3.1-5
ii  libpopt0             1.16-12
ii  libpython3.9         3.9.2-1
ii  libtalloc2           2.3.1-2+b1
ii  libtasn1-6           4.16.0-2
ii  libtdb1              1.4.3-1+b1
ii  libtevent0           0.10.2-1
ii  libwbclient0         2:4.13.13+dfsg-1~deb11u2
ii  lsb-base             11.1.0
ii  procps               2:3.3.15-2
ii  python3              3.9.2-3
ii  python3-dnspython    2.0.0-1
ii  python3-samba        2:4.13.13+dfsg-1~deb11u2
ii  samba-common         2:4.13.13+dfsg-1~deb11u2
ii  samba-common-bin     2:4.13.13+dfsg-1~deb11u2
ii  samba-libs           2:4.13.13+dfsg-1~deb11u2
ii  tdb-tools            1.3.16-2+b1

Versions of packages samba recommends:
pn  attr                <none>
ii  logrotate           3.14.0-4
pn  python3-markdown    <none>
pn  samba-dsdb-modules  <none>
pn  samba-vfs-modules   <none>

Versions of packages samba suggests:
pn  bind9          <none>
pn  bind9utils     <none>
pn  ctdb           <none>
pn  ldb-tools      <none>
ii  ntp            1:4.2.8p12+dfsg-4
pn  smbldap-tools  <none>
ii  ufw            0.36-1
pn  winbind        <none>

-- Configuration Files:
/etc/init.d/nmbd changed:
PIDDIR=/run/samba
NMBDPID=$PIDDIR/nmbd.pid
unset TMPDIR
test -x /usr/sbin/nmbd || exit 0
. /lib/lsb/init-functions
exec  9>/home/myaccount/BOOT.nmbd
(echo -n A; date; echo) >&9
case $1 in
        start)
(echo -n B; date; echo) >&9
                SERVER_ROLE=`samba-tool testparm --parameter-name="server role" 
 2>/dev/null | tail -1`
(echo -n C; date; echo) >&9
                if [ "$SERVER_ROLE" = "active directory domain controller" ]; 
then
                    exit 0
                fi
(echo -n D; date; echo) >&9
                if [ -n `which testparm` ]
                then
(echo -n E; date; echo) >&9
                        NMBD_DISABLED=`testparm -s --parameter-name='disable 
netbios' 2>/dev/null`
                fi
(echo -n F; date; echo) >&9
                if [ "$NMBD_DISABLED" != Yes ]; then
                        log_daemon_msg "Starting NetBIOS name server" nmbd
                        # Make sure we have our PIDDIR, even if it's on a tmpfs
(echo -n G; date; echo) >&9
                        install -o root -g root -m 755 -d $PIDDIR
file=/sys/devices/virtual/misc/hw_random/rng_current
echo -n "$file: "; cat $file
(echo -n H; date; echo) >&9
                        if ! start-stop-daemon.wrapper --start --quiet --oknodo 
--exec /usr/sbin/nmbd --pidfile $NMBDPID -- -D
                        then
(echo -n I; date; echo) >&9
                                log_end_msg 1
                                exit 1
                        fi
(echo -n J; date; echo) >&9
                        log_end_msg 0
                fi
(echo -n K; date; echo) >&9
                ;;
        stop)
                log_daemon_msg "Stopping NetBIOS name server" nmbd
                start-stop-daemon --stop --quiet --pidfile $NMBDPID
                # Wait a little and remove stale PID file
                sleep 1
                if [ -f $NMBDPID ] && ! ps h `cat $NMBDPID` > /dev/null
                then
                        # Stale PID file (nmbd was succesfully stopped),
                        # remove it (should be removed by nmbd itself IMHO.)
                        rm -f $NMBDPID
                fi
                log_end_msg 0
                ;;
        restart|force-reload)
                $0 stop
                sleep 1
                $0 start
                ;;
        status)
                status_of_proc -p $NMBDPID /usr/sbin/nmbd nmbd
                exit $?
                ;;
        *)
                echo "Usage: /etc/init.d/nmbd 
{start|stop|restart|force-reload|status}"
                exit 1
                ;;
esac
exit 0


-- no debconf information
# This file [smb.conf] is empty but it must exist to trigger the bug

Attachment: dhcp.conf
Description: inode/empty

Reply via email to