[Samba] Slow and Incomplete printing from DOS Client 3.0

Adan Calderon adancalderon at gmail.com
Sat Jun 20 13:48:59 UTC 2020


I was going to try and boost the debug level on /etc/samba/smb.conf

But if I change the parameters
log level
log file
max log size

they get ignored.  Testparm shows the defaults.

Other parameters such as
server string
work just fine.

What could cause this?

Regards,
Adan

On Wed, Jun 17, 2020 at 12:01 PM Adan Calderon <adancalderon at gmail.com> wrote:
>
> Hi All,
>
> I am seeing issues printing to a text file.  I am using Samba Version
> 4.12.3 and CUPS 2.3.3.  I have written a simple BASH backend for CUPS
> to simply copy the  RAW contents and save it as a file.  I do not
> believe this is an issue with CUPS simply because I can print from a
> Windows 7 Terminal doing something such as:
>
> NET USE LPT1:  \\10.111.11.130\RAWCAPTURE
> DIR C:\ > LPT1
>
> The directory list gets printed out to a text file.
>
>
> On  a DOS PC with the Microsoft Network Client 3.0 I get a file with a
> blank line followed by five  lines of text:
>
> Volume in drive C is MEMDISK_C
> Volume Serial Number is 4D25-900E
> Directory of C:\
>
> DOS            <DIR>        06
>
> The information written is stopped and incomplete.  It also takes a
> much longer time to complete the command.
>
> I also noticed in the log file that the DOS client had
>
> print_cache_expired: cache expired for queue rawcapture
> (last_qscan_time = 1592403175, time now = 1592403557, qcachetime = 30)
>
> and I could only make this disappear if I changed the global option to
>
> lpq cache time = 500
>
> However, this change does not fix the issue.  I am including the
> smb.conf as generated by testparm and also the simple backend for the
> raw print capture to a file.
>
> Does anyone have any suggestions on what to look for or try next.
>
> Kind Regards,
>
> Adan
>
>
>
>
> Output of testparm –v:
> # Global parameters
> [global]
> abort shutdown script =
> add group script =
> additional dns hostnames =
> add machine script =
> addport command =
> addprinter command =
> add share command =
> add user script =
> add user to group script =
> afs token lifetime = 604800
> afs username map =
> aio max threads = 100
> algorithmic rid base = 1000
> allow dcerpc auth level connect = No
> allow dns updates = secure only
> allow insecure wide links = No
> allow nt4 crypto = No
> allow trusted domains = Yes
> allow unsafe cluster upgrade = No
> apply group policies = No
> async smb echo handler = No
> auth event notification = No
> auto services =
> binddns dir = /var/lib/samba/bind-dns
> bind interfaces only = No
> browse list = Yes
> cache directory = /var/cache/samba
> change notify = Yes
> change share command =
> check password script =
> cldap port = 389
> client ipc max protocol = default
> client ipc min protocol = default
> client ipc signing = if_required
> client lanman auth = Yes
> client ldap sasl wrapping = sign
> client max protocol = default
> client min protocol = LANMAN1
> client NTLMv2 auth = No
> client plaintext auth = Yes
> client schannel = Yes
> client signing = default
> client use spnego principal = No
> client use spnego = Yes
> cluster addresses =
> clustering = No
> config backend = file
> config file =
> create krb5 conf = Yes
> ctdbd socket =
> ctdb locktime warn threshold = 0
> ctdb timeout = 0
> cups connection timeout = 30
> cups encrypt = No
> cups server =
> dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon,
> lsarpc, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey,
> dnsserver
> deadtime = 0
> debug class = No
> debug encryption = No
> debug hires timestamp = Yes
> debug pid = No
> debug prefix timestamp = No
> debug uid = No
> dedicated keytab file =
> default service =
> defer sharing violations = Yes
> delete group script =
> deleteprinter command =
> delete share command =
> delete user from group script =
> delete user script =
> dgram port = 138
> disable netbios = No
> disable spoolss = No
> dns forwarder =
> dns proxy = No
> dns update command = /usr/sbin/samba_dnsupdate
> dns zone scavenging = No
> domain logons = No
> domain master = Auto
> dos charset = CP850
> dsdb event notification = No
> dsdb group change notification = No
> dsdb password event notification = No
> enable asu support = No
> enable core files = Yes
> enable privileges = Yes
> encrypt passwords = Yes
> enhanced browsing = Yes
> enumports command =
> eventlog list =
> get quota command =
> getwd cache = Yes
> gpo update command = /usr/sbin/samba-gpupdate
> guest account = nobody
> homedir map = auto.home
> host msdfs = Yes
> hostname lookups = No
> idmap backend = tdb
> idmap cache time = 604800
> idmap gid =
> idmap negative cache time = 120
> idmap uid =
> include system krb5 conf = Yes
> init logon delay = 100
> init logon delayed hosts =
> interfaces =
> iprint server =
> keepalive = 300
> kerberos encryption types = all
> kerberos method = default
> kernel change notify = Yes
> kpasswd port = 464
> krb5 port = 88
> lanman auth = Yes
> large readwrite = Yes
> ldap admin dn =
> ldap connection timeout = 2
> ldap debug level = 0
> ldap debug threshold = 10
> ldap delete dn = No
> ldap deref = auto
> ldap follow referral = Auto
> ldap group suffix =
> ldap idmap suffix =
> ldap machine suffix =
> ldap max anonymous request size = 256000
> ldap max authenticated request size = 16777216
> ldap max search request size = 256000
> ldap page size = 1000
> ldap passwd sync = no
> ldap replication sleep = 1000
> ldap server require strong auth = Yes
> ldap ssl = start tls
> ldap ssl ads = No
> ldap suffix =
> ldap timeout = 15
> ldap user suffix =
> lm announce = Yes
> lm interval = 60
> load printers = Yes
> local master = Yes
> lock directory = /var/cache/samba
> lock spin time = 200
> log file = /var/log/samba/samba.%m
> logging =
> log level = 1
> log nt token command =
> logon drive =
> logon home = \\%N\%U
> logon path = \\%N\%U\profile
> logon script =
> log writeable files on exit = No
> lpq cache time = 30
> lsa over netlogon = No
> machine password timeout = 604800
> mangle prefix = 1
> mangling method = hash2
> map to guest = Bad User
> max disk size = 0
> max log size = 50
> max mux = 50
> max open files = 16384
> max smbd processes = 0
> max stat cache size = 512
> max ttl = 259200
> max wins ttl = 518400
> max xmit = 65535
> mdns name = netbios
> message command =
> min receivefile size = 0
> min wins ttl = 21600
> mit kdc command = /usr/sbin/krb5kdc
> multicast dns register = Yes
> name cache timeout = 660
> name resolve order = lmhosts wins host bcast
> nbt client socket address = 0.0.0.0
> nbt port = 137
> ncalrpc dir = /var/run/samba/ncalrpc
> netbios aliases =
> netbios name = LBUFSERVER
> netbios scope =
> neutralize nt4 emulation = No
> NIS homedir = No
> nmbd bind explicit broadcast = Yes
> nsupdate command = /usr/bin/nsupdate -g
> ntlm auth = ntlmv1-permitted
> nt pipe support = Yes
> ntp signd socket directory = /var/lib/samba/ntp_signd
> nt status support = Yes
> null passwords = No
> obey pam restrictions = No
> old password allowed period = 60
> oplock break wait time = 0
> os2 driver map =
> os level = 20
> pam password change = No
> panic action =
> passdb backend = tdbsam
> passdb expand explicit = No
> passwd chat = *new*password* %n\n *new*password* %n\n *changed*
> passwd chat debug = No
> passwd chat timeout = 2
> passwd program =
> password hash gpg key ids =
> password hash userPassword schemes =
> password server = *
> perfcount module =
> pid directory = /var/run
> preferred master = Yes
> prefork backoff increment = 10
> prefork children = 4
> prefork maximum backoff = 120
> preload modules =
> printcap cache time = 750
> printcap name = cups
> private dir = /var/lib/samba/private
> raw NTLMv2 auth = No
> read raw = Yes
> realm =
> registry shares = No
> reject md5 clients = No
> reject md5 servers = No
> remote announce =
> remote browse sync =
> rename user script =
> require strong key = Yes
> reset on zero vc = No
> restrict anonymous = 0
> root directory =
> rpc big endian = No
> rpc server dynamic port range = 49152-65535
> rpc server port = 0
> samba kcc command = /usr/sbin/samba_kcc
> security = AUTO
> server max protocol = SMB3
> server min protocol = LANMAN1
> server multi channel support = No
> server role = standalone server
> server schannel = Yes
> server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl,
> winbindd, ntp_signd, kcc, dnsupdate, dns
> server signing = default
> server string = L BUF Data Server
> set primary group script =
> set quota command =
> share backend = classic
> show add printer wizard = Yes
> shutdown script =
> smb2 leases = Yes
> smb2 max credits = 8192
> smb2 max read = 8388608
> smb2 max trans = 8388608
> smb2 max write = 8388608
> smbd profiling level = off
> smb passwd file = /var/lib/samba/private/smbpasswd
> smb ports = 445 139
> socket options = TCP_NODELAY
> spn update command = /usr/sbin/samba_spnupdate
> stat cache = Yes
> state directory = /var/lib/samba
> svcctl list =
> syslog = 1
> syslog only = No
> template homedir = /home/%D/%U
> template shell = /bin/false
> time server = No
> timestamp logs = Yes
> tls cafile = tls/ca.pem
> tls certfile = tls/cert.pem
> tls crlfile =
> tls dh params file =
> tls enabled = Yes
> tls keyfile = tls/key.pem
> tls priority = NORMAL:-VERS-SSL3.0
> tls verify peer = as_strict_as_possible
> unicode = Yes
> unix charset = UTF-8
> unix extensions = Yes
> unix password sync = No
> use mmap = Yes
> username level = 0
> username map =
> username map cache time = 0
> username map script =
> usershare allow guests = Yes
> usershare max shares = 0
> usershare owner only = Yes
> usershare path = /var/lib/samba/usershares
> usershare prefix allow list =
> usershare prefix deny list =
> usershare template share =
> utmp = No
> utmp directory =
> winbind cache time = 300
> winbindd socket directory = /var/run/samba/winbindd
> winbind enum groups = No
> winbind enum users = No
> winbind expand groups = 0
> winbind max clients = 200
> winbind max domain connections = 1
> winbind nested groups = Yes
> winbind normalize names = No
> winbind nss info = template
> winbind offline logon = No
> winbind reconnect delay = 30
> winbind refresh tickets = No
> winbind request timeout = 60
> winbind rpc only = No
> winbind scan trusted domains = Yes
> winbind sealed pipes = Yes
> winbind separator = \
> winbind use default domain = No
> winbind use krb5 enterprise principals = No
> wins hook =
> wins proxy = No
> wins server =
> wins support = No
> workgroup = WORKGROUP
> write raw = Yes
> wtmp directory =
> idmap config * : backend = tdb
> access based share enum = No
> acl allow execute always = No
> acl check permissions = Yes
> acl group control = No
> acl map full control = Yes
> administrative share = No
> admin users =
> afs share = No
> aio read size = 1
> aio write behind =
> aio write size = 1
> allocation roundup size = 0
> available = Yes
> blocking locks = Yes
> block size = 1024
> browseable = Yes
> case sensitive = Auto
> check parent directory delete on close = No
> comment =
> copy =
> create mask = 0744
> csc policy = manual
> cups options =
> default case = lower
> default devmode = Yes
> delete readonly = No
> delete veto files = No
> dfree cache time = 0
> dfree command =
> directory mask = 0755
> directory name cache size = 100
> dmapi support = No
> dont descend =
> dos filemode = No
> dos filetime resolution = No
> dos filetimes = Yes
> durable handles = Yes
> ea support = Yes
> fake directory create times = No
> fake oplocks = No
> follow symlinks = Yes
> force create mode = 0000
> force directory mode = 0000
> force group =
> force printername = No
> force unknown acl user = No
> force user =
> fstype = NTFS
> guest ok = Yes
> guest only = No
> hide dot files = Yes
> hide files =
> hide new files timeout = 0
> hide special files = No
> hide unreadable = No
> hide unwriteable files = No
> hosts allow =
> hosts deny =
> include =
> inherit acls = No
> inherit owner = no
> inherit permissions = No
> invalid users =
> kernel oplocks = No
> kernel share modes = Yes
> level2 oplocks = Yes
> locking = Yes
> lppause command =
> lpq command = %p
> lpresume command =
> lprm command =
> magic output =
> magic script =
> mangled names = illegal
> mangling char = ~
> map acl inherit = No
> map archive = Yes
> map hidden = No
> map readonly = no
> map system = No
> max connections = 0
> max print jobs = 1000
> max reported print jobs = 0
> min print space = 0
> msdfs proxy =
> msdfs root = No
> msdfs shuffle referrals = No
> nt acl support = Yes
> ntvfs handler = unixuid, default
> oplocks = Yes
> path =
> posix locking = Yes
> postexec =
> preexec =
> preexec close = No
> preserve case = Yes
> printable = No
> print command =
> printer name =
> printing = cups
> printjob username = %U
> print notify backchannel = No
> queuepause command =
> queueresume command =
> read list =
> read only = Yes
> root postexec =
> root preexec =
> root preexec close = No
> short preserve case = Yes
> smbd async dosmode = No
> smbd getinfo ask sharemode = Yes
> smbd max async dosmode = 0
> smbd search ask sharemode = Yes
> smb encrypt = default
> spotlight = No
> spotlight backend = noindex
> store dos attributes = Yes
> strict allocate = No
> strict locking = Auto
> strict rename = No
> strict sync = Yes
> sync always = No
> use client driver = No
> use sendfile = No
> valid users =
> veto files =
> veto oplock files =
> vfs objects =
> volume =
> wide links = No
> write list =
>
>
> [homes]
> browseable = No
> comment = Home Directories
> read only = No
>
>
> [printers]
> browseable = No
> comment = All Printers
> path = /var/spool/samba
> printable = Yes
>
>
> [DRIVE_G]
> comment = Drive G
> level2 oplocks = No
> map hidden = Yes
> map readonly = yes
> map system = Yes
> oplocks = No
> path = /DRIVE_G
> read only = No
>
>
> [tftpboot]
> comment = tftpboot
> path = /tftpboot
> read only = No
>
>
> [PRINTED_PDFs]
> comment = Printed PDFs
> path = /PDFs
> read only = No
>
>
> [RAW_Captures]
> comment = RAW Captured Printouts
> path = /RAWcaps
> read only = No
>
> root at LBUFSERVER:/var/log/samba# cat /usr/lib64/cups/backend/rawcapture
> #!/bin/sh
> # -------------------------------------------------------------------
> # "/usr/lib64/cups/backend/rawcapture":
> # -------------------------------------------------------------------
> #
> FILENAME=
> PRINTTIME=`date +%Y-%m-%d_%H.%M.%S`
> # no argument, prints available URIs
> if [ $# -eq 0 ]; then
> echo "No Arguments"
> exit 0
> fi
> # case of wrong number of arguments
> if [ $# -ne 5 -a $# -ne 6 ]; then
> echo "Usage: rawcapture job-id user title copies options [file]"
> exit 1
> fi
> # get output directory from device URI, and check write status
> SAVEDIR=${DEVICE_URI#rawcapture:}
> if [ ! -d "$SAVEDIR" -o ! -w "$SAVEDIR" ]; then
> echo "ERROR: directory $SAVEDIR not writable"
> exit 1
> fi
> # generate output filename
> OUTPUTFILENAME=
> if [ "$3" = "" ]; then
> OUTPUTFILENAME="$SAVEDIR/unknown.cap"
> else
> if [ "$2" != "" ]; then
> OUTPUTFILENAME="$SAVEDIR/$2-$PRINTTIME.cap"
> else
> OUTPUTFILENAME="$SAVEDIR/$PRINTTIME.cap"
> fi
> fi
>
> # Copy File
> cp $6 $OUTPUTFILENAME
>
> # Make the file visible and writable by everyone.
> chmod 777 $OUTPUTFILENAME
> exit 0
>
> # EOF
> # -------------------------------------------------------------------



-- 
http://www.adancalderon.net



More information about the samba mailing list