[Samba] Printers not shown after upgrade to 4.16.8-2 on IBM AIX 7.2 and subsequent reboot
Wilhelm.Seyerl at cargonet.software
Mon Jul 17 11:33:01 UTC 2023
We have upgraded to Samba 4.16.8-2 from AIX-Toolbox (latest available) with yum on 75 AIX-machines. OS-Level there IBM AIX 7.2 ML 5.
All was running fine until one of the machines got halted due to power outage. After the boot, the printers did not show up again. We tried several things like restarting Samba daemons, changes in configuration (e.g. explicitly setting "printcap name = /etc/qconfig") and so on. What finally brought the printers back was the command
# rpcclient localhost -c enumprinters
We found the command in this Samba-bug-report https://bugzilla.samba.org/show_bug.cgi?id=15121 and the circumstances described there are very similar to our situation. Although "printing = aix" instead of "printing = cups" and we do not use Windows Print Management Console. In the Samba-bug-report, there is a thread in the Samba-mailing-list referenced https://lists.samba.org/archive/samba/2022-August/241571.html which suggests that Samba 4.16.2 still worked (but 4.16.4 did not). As this version is not available in the AIX-Toolbox, I could not verify this. Furthermore we checked Samba-release-notes for 4.17.* and 4.18.* but did not find any bugfix which could address/fix our issue.
Therefore we have set up a test machine and we could reproduce the situation there. But on the test machine we also found out that the "enumprinters" rpc-sub-command from above does not always bring back the printers. We could not figure out why. For this reason we do not want to rely on running the rpcclient command from above after each boot. Even more as it demands a password for each call.
stop smbd - downgrade to Samba 4.14.14-1 - start smbd - stop smbd - upgrade to Samba 4.16.8-2 - start smbd
will ultimately list the printers again. Until next reboot.
Explicitly defining printers works. But each of these 75 Machines has a bunch of printers defined (10 to 47, the test machine has only 7 printers connected) so explicit printer configuration should be avoided.
After all, we will downgrade to Samba 4.14.14-1 on productive machines (because it's the last available working samba version on AIX-Toolbox) until we find a solution with Samba 4.16 and future versions.
The Samba-configuration is pretty straight forward:
# Global parameters
log file = /opt/freeware/log/log.%m
map to guest = Bad User
security = USER
server role = standalone server
usershare allow guests = Yes
workgroup = TSTWRKGRP
full_audit:priority = notice
full_audit:facility = local7
full_audit:prefix = IP=%I|USER=%u|MACHINE=%m|VOLUME=%S
full_audit:success = renameat unlinkat mkdirat
full_audit:failure = none
idmap config * : backend = tdb
guest ok = Yes
level2 oplocks = No
nt acl support = No
oplocks = No
print command = lpr -h -r -P%p %s
vfs objects = full_audit
### Shares ... ###
browseable = No
comment = All printers
create mask = 0700
path = /tmp
printable = Yes
>From the AIX-toolbox mailing list we were advised to check https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Print_Server but we have already found their suggested link and checked if it could help us. But there is no (direct) information addressing our environment. It only deals with CUPS, IPRINT and LPRng.
Nevertheless and although it addresses CUPS we tried to add
as somehow suggested in https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Print_Server#Tuning_rpcd-spoolss and waited 10 minutes but with no success.
On the other hand, even the current (Samba 4.18) documentation states that "printing = aix" should be still supported https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html#PRINTING
"Currently nine printing styles are supported. They are BSD, AIX, ..."
And - as said - we already tried additionally setting "printcap name = /etc/qconfig" as suggested for AIX in https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html#PRINTCAPNAME but still no printers listed.
I would like to add, that testparm (without -v flag) does not return any "printing = <value>" string. As Samba determines default printing method based on OS and "testparm" (without -v flag) only lists parameters different to default values, this is no surprise. However, "testparm -v" returns "printing = aix" as expected.
Mit freundlichen Grüßen / Best regards
cargoNET Application Services
Axians ICT Austria GmbH
Hafenstraße 2a | 4020 Linz | Austria
Mobil: +43 664 8511823 - Tel: +43 5 1715 1823
Wilhelm.seyerl at cargonet.software<mailto:Wilhelm.seyerl at cargonet.software>
More information about the samba