Benedikt Hochstrasser
2016-Jun-25 11:59 UTC
[Samba] Fwd: "Make_passthrough: pid XXXX, dup2(6, 0) failed" with LPRNG 3.8.C and Samba 4.3.8 on FreeBSD
(FreeBSD 10.3-RELEASE-p4 i386, Lprng 3.8.C and Samba 4.3.8 installed via pkg()) I have set up a PDF converter queue that converts PS input to PDF and puts it on its website. Recently I had samba join the AD domain here, and ever since my pdf converter fails. Upon much trial, error and debugging I found out that when I start the Lprng service BEFORE the Samba service, everything is working. However, the default startup sequence is Samba first, then Lprng (due to dependencies). More debugging revealed that the problem is the input filter spawning fails (ie even a dummy filter that only touches "/tmp/hello" is not executed). In the Log, I get entries like 2016-06-25-12:39:16.710 wagi-util [4827] (Server) pdf: Trim_status_file: ' status.pr' max 10, min 0, size 6197 2016-06-25-12:39:16.710 wagi-util [4827] (Server) pdf: Wait_for_subserver: pid_to_wait_for -1, flags 1 *Make_passthrough: pid 4829, dup2(6,0) failed*2016-06-25-12:39:16.712 wagi-util [4828] (Worker - Print) pdf: Wait_for_pid: returning 'JFAIL', exit status 'exit status 32 (JFAIL)' 2016-06-25-12:39:16.712 wagi-util [4828] (Worker - Print) pdf: setstatus: msg 'IF filter 'pdflpd' filter exit status 'JFAIL'' 2016-06-25-12:39:16.712 wagi-util [4828] (Worker - Print) pdf: setstatus: msg 'printing finished' The spurious "Make_passthrough" statement looks as if it weren't written by the normal logging routine but rather was spit out by some other routine. I have a hunch that samba somehow sits on a file or a process that becomes unavailable for Lprng, UNLESS Lprng is started before samba. I disabled printing in samba, gave it a completely unrelated printcap file, disabled spoolss etc, all to no avail. Of course, setting up a vanilla FreeBSD in Virtualbox and just installing Lprng and Samba worked fine in either start sequence, but then I haven't joined it to a domain nor am I using a modified nsswitch.conf and other settings that are used in a domain context. I now have the workaround of stopping both services and starting them in the correct sequence, but it still bugs me. Any idea where to look next? /etc/printcap: .common: :sd=/var/spool/lpd/%P :lf=log :max_log_file_size=256 :done_status=0 :sh:mx=0:mc=0 pdf:tc=.common:lp=/dev/null:filter=/usr/local/libexec/filters/pdflpd: /usr/local/etc/smb4.conf [global] workgroup = MYDOMAIN netbios name = MYNAME security = ads realm = MYDOMAIN.MYCOMPANY.COM encrypt passwords = yes password server = 10.65.10.220 wins server = 10.65.10.220 client ldap sasl wrapping = plain idmap config * : backend = tdb idmap config * : range = 2000-9999 idmap config DPRDOM : backend = rid idmap config DORDOM : range = 10000-29999 winbind enum users = yes winbind enum groups = yes winbind nested groups = yes dos charset = CP850 unix charset = UTF8 restrict anonymous = 2 server string = "Utility Server" load printers = No printing = bsd printcap name = /usr/local/etc/samba-printcap disable spoolss = Yes local master = no smb ports = 445 map to guest = Bad User read raw = Yes write raw = Yes max xmit = 65535 socket options = TCP_NODELAY IPTOS_LOWDELAY use sendfile = true vfs objects = acl_xattr map acl inherit = Yes store dos attributes = Yes oplocks = Yes Stumped in Zurich -- Ben
Rowland penny
2016-Jun-25 13:07 UTC
[Samba] Fwd: "Make_passthrough: pid XXXX, dup2(6, 0) failed" with LPRNG 3.8.C and Samba 4.3.8 on FreeBSD
On 25/06/16 12:59, Benedikt Hochstrasser wrote:> (FreeBSD 10.3-RELEASE-p4 i386, Lprng 3.8.C and Samba 4.3.8 installed via > pkg()) > > I have set up a PDF converter queue that converts PS input to PDF and puts > it on its website. Recently I had samba join the AD domain here, and ever > since my pdf converter fails. > > Upon much trial, error and debugging I found out that when I start the > Lprng service BEFORE the Samba service, everything is working. However, the > default startup sequence is Samba first, then Lprng (due to dependencies). > > More debugging revealed that the problem is the input filter spawning fails > (ie even a dummy filter that only touches "/tmp/hello" is not executed). > > In the Log, I get entries like > > 2016-06-25-12:39:16.710 wagi-util [4827] (Server) pdf: Trim_status_file: ' > status.pr' max 10, min 0, size 6197 > 2016-06-25-12:39:16.710 wagi-util [4827] (Server) pdf: Wait_for_subserver: > pid_to_wait_for -1, flags 1 > *Make_passthrough: pid 4829, dup2(6,0) failed*2016-06-25-12:39:16.712 > wagi-util [4828] (Worker - Print) pdf: Wait_for_pid: returning 'JFAIL', > exit status 'exit status 32 (JFAIL)' > 2016-06-25-12:39:16.712 wagi-util [4828] (Worker - Print) pdf: setstatus: > msg 'IF filter 'pdflpd' filter exit status 'JFAIL'' > 2016-06-25-12:39:16.712 wagi-util [4828] (Worker - Print) pdf: setstatus: > msg 'printing finished' > > The spurious "Make_passthrough" statement looks as if it weren't written by > the normal logging routine but rather was spit out by some other routine. > > I have a hunch that samba somehow sits on a file or a process that becomes > unavailable for Lprng, UNLESS Lprng is started before samba. > > I disabled printing in samba, gave it a completely unrelated printcap file, > disabled spoolss etc, all to no avail. > > Of course, setting up a vanilla FreeBSD in Virtualbox and just installing > Lprng and Samba worked fine in either start sequence, but then I haven't > joined it to a domain nor am I using a modified nsswitch.conf and other > settings that are used in a domain context. > > I now have the workaround of stopping both services and starting them in > the correct sequence, but it still bugs me. > > Any idea where to look next? > > /etc/printcap: > .common: > :sd=/var/spool/lpd/%P > :lf=log > :max_log_file_size=256 > :done_status=0 > :sh:mx=0:mc=0 > pdf:tc=.common:lp=/dev/null:filter=/usr/local/libexec/filters/pdflpd: > > /usr/local/etc/smb4.conf > [global] > workgroup = MYDOMAIN > netbios name = MYNAME > security = ads > realm = MYDOMAIN.MYCOMPANY.COM > encrypt passwords = yes > password server = 10.65.10.220 > wins server = 10.65.10.220 > client ldap sasl wrapping = plain > idmap config * : backend = tdb > idmap config * : range = 2000-9999 > idmap config DPRDOM : backend = rid > idmap config DORDOM : range = 10000-29999 > winbind enum users = yes > winbind enum groups = yes > winbind nested groups = yes > dos charset = CP850 > unix charset = UTF8 > restrict anonymous = 2 > server string = "Utility Server" > load printers = No > printing = bsd > printcap name = /usr/local/etc/samba-printcap > disable spoolss = Yes > local master = no > smb ports = 445 > map to guest = Bad User > read raw = Yes > write raw = Yes > max xmit = 65535 > socket options = TCP_NODELAY IPTOS_LOWDELAY > use sendfile = true > vfs objects = acl_xattr > map acl inherit = Yes > store dos attributes = Yes > oplocks = Yes > > > Stumped in Zurich >No real idea, but you have this in smb.conf: workgroup = MYDOMAIN I know this is just a replacement for your real workgroup, but you also have these lines: idmap config DPRDOM : backend = rid idmap config DORDOM : range = 10000-29999 They should all be the same i.e. DPRDOM & DORDOM should be 'MYDOMAIN', is this the case ? Rowland