On a windows 98 machine everything still works as it used to under samba-2.2 but under a windows xp pro client the printer status shows the printer as offline. Even though the client can print both test pages and real documents to it. If one tries to use the "Use Printer Online" function from the printers properties, then the windows error dialog says: "Operation could not be completed. Access is denied." the smbd.log says: [2005/03/24 13:28:23, 3] smbd/process.c:process_smb(1091) Transaction 237 of length 282 [2005/03/24 13:28:23, 3] smbd/process.c:switch_message(886) switch message SMBtrans (pid 3641) conn 0x9e53480 [2005/03/24 13:28:23, 3] smbd/ipc.c:reply_trans(539) trans <\PIPE\> data=194 params=0 setup=2 [2005/03/24 13:28:23, 3] smbd/ipc.c:named_pipe(334) named pipe command on <> name [2005/03/24 13:28:23, 3] smbd/ipc.c:api_fd_reply(294) Got API command 0x26 on pipe "spoolss" (pnum 75c0) [2005/03/24 13:28:23, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/03/24 13:28:23, 3] rpc_server/srv_pipe.c:api_rpcTNP(1538) api_rpcTNP: rpc command: SPOOLSS_OPENPRINTEREX checking name: \\linux\copier_pcl [2005/03/24 13:28:23, 3] rpc_server/srv_spoolss_nt.c:set_printer_hnd_printertype(469) Setting printer type=\\linux\copier_pcl [2005/03/24 13:28:23, 3] lib/util_seaccess.c:se_access_check(251) [2005/03/24 13:28:23, 3] lib/util_seaccess.c:se_access_check(252) se_access_check: user sid is S-1-5-21-4228724095-3962383925-909725441-501 se_access_check: also S-1-5-21-4228724095-3962383925-909725441-514 se_access_check: also S-1-1-0 se_access_check: also S-1-5-2 se_access_check: also S-1-5-32-546 se_access_check: also S-1-5-21-4228724095-3962383925-909725441-1199 se_access_check: also S-1-5-21-4228724095-3962383925-909725441-1153 [2005/03/24 13:28:23, 3] rpc_server/srv_spoolss_nt.c:_spoolss_open_printer_ex(1770) access DENIED for printer open [2005/03/24 13:28:23, 3] rpc_server/srv_lsa_hnd.c:close_policy_hnd(200) Closed policy [2005/03/24 13:28:23, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 70 This happens for any network printer that has been setup as follows: the printer is defined as a "local printer" and is pointing to a "local port" named "\\sambaservername\cupsprintername" This sort of printer setup has many advantages and is officially supported by Microsoft. (see http://support.microsoft.com/kb/314073 & http://support.microsoft.com/kb/260142) Some of the advantages are: - solves problem of slow printing with MS Word, when link to network printer is slow - solves problem with Pegasus Mail with long delays of moving up and down the inbox when default printer is a slow network printer - allows admins to setup workstation printers for all users of a machine with a default config once, no need to set the per user netowrk printer for each possibly on each login. On my windows xp pro clients that are joined to the domain called "WORKGROUP" (sorry about that) and with a restricted user logged in it says printer status offline for a printer that is defined as a local printer that is printing to a local port that happens to be named (or points to) the samba/cups printershare. BUT the same samba/cups printer share will show correct status if the printer is et as a network printer pointing to the same samba/cups printershare. So in the "Printers and Faxes" I can have two different status displayed for the same queue, the only diff being that the one is defined as a network printer and the other as a "local printer". BTW, if it helps, this was working fine a week ago when I was still under 2.2.8. Please let me know if there is anything else I can do to help get to the bottom of this problem. I have tried making a level 10 log of the problem but since our samba server is never really quiet I found the resulting logfile had way too much info in it. I had a 2.4 MB log file just for a few seconds of client time where I tried to log what happens on the server when I try using "Use Printer Online" on such a "offline" queue. So, if I can help by producing a level 10 log then please point me in the right direction on how I can zero in on the specific data for one session. ( I don't mind reading up and learning in the process )
OK, I played some more and now have a more focused log file that does now say please report to samba-technical, so I guess it is a bug and hopefully this will help towards solving it. log level = 0 tdb:3 passdb:3 auth:3 vfs:0 idmap:3 acls:3 rpc_parse:3 rpc_srv:3 r pc_cli:3 printdrivers:3 this is still a log of the same action, trying to set the printer to "Use Online" from the win xp client. [2005/04/01 21:24:13, 3] rpc_server/srv_pipe.c:api_pipe_bind_req(887) api_pipe_bind_req: \PIPE\spoolss -> \PIPE\spoolss [2005/04/01 21:24:13, 3] rpc_server/srv_pipe.c:check_bind_req(762) check_bind_req for \PIPE\spoolss [2005/04/01 21:24:13, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/04/01 21:24:13, 3] rpc_server/srv_pipe.c:api_rpcTNP(1538) api_rpcTNP: rpc command: SPOOLSS_OPENPRINTEREX checking name: \\linux\copier_pcl [2005/04/01 21:24:13, 3] rpc_server/srv_spoolss_nt.c:set_printer_hnd_printertype(469) Setting printer type=\\linux\copier_pcl [2005/04/01 21:24:13, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 74 [2005/04/01 21:24:13, 3] rpc_server/srv_pipe.c:api_pipe_bind_req(887) api_pipe_bind_req: \PIPE\spoolss -> \PIPE\spoolss [2005/04/01 21:24:13, 3] rpc_server/srv_pipe.c:check_bind_req(762) check_bind_req for \PIPE\spoolss [2005/04/01 21:24:13, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/04/01 21:24:13, 3] rpc_server/srv_pipe.c:api_rpcTNP(1538) api_rpcTNP: rpc command: SPOOLSS_GETPRINTERDATA [2005/04/01 21:24:13, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 1162 [2005/04/01 21:24:13, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/04/01 21:24:13, 3] rpc_server/srv_pipe.c:api_rpcTNP(1538) api_rpcTNP: rpc command: SPOOLSS_CLOSEPRINTER [2005/04/01 21:24:13, 3] rpc_server/srv_lsa_hnd.c:close_policy_hnd(200) Closed policy [2005/04/01 21:24:13, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/04/01 21:24:13, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/04/01 21:24:13, 3] rpc_server/srv_pipe.c:api_rpcTNP(1538) api_rpcTNP: rpc command: SPOOLSS_OPENPRINTEREX checking name: \\linux\copier_pcl [2005/04/01 21:24:13, 3] rpc_server/srv_spoolss_nt.c:set_printer_hnd_printertype(469) Setting printer type=\\linux\copier_pcl [2005/04/01 21:24:13, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 74 [2005/04/01 21:24:13, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/04/01 21:24:13, 3] rpc_server/srv_pipe.c:api_rpcTNP(1538) api_rpcTNP: rpc command: SPOOLSS_CLOSEPRINTER [2005/04/01 21:24:13, 3] rpc_server/srv_lsa_hnd.c:close_policy_hnd(200) Closed policy [2005/04/01 21:24:13, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/04/01 21:24:18, 3] rpc_server/srv_pipe.c:api_pipe_bind_req(887) api_pipe_bind_req: \PIPE\spoolss -> \PIPE\spoolss [2005/04/01 21:24:18, 3] rpc_server/srv_pipe.c:check_bind_req(762) check_bind_req for \PIPE\spoolss [2005/04/01 21:24:18, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/04/01 21:24:18, 3] rpc_server/srv_pipe.c:api_rpcTNP(1538) api_rpcTNP: rpc command: SPOOLSS_OPENPRINTEREX checking name: \\linux\copier_pcl [2005/04/01 21:24:18, 3] rpc_server/srv_spoolss_nt.c:set_printer_hnd_printertype(469) Setting printer type=\\linux\copier_pcl [2005/04/01 21:24:18, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 74 [2005/04/01 21:24:18, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/04/01 21:24:18, 3] rpc_server/srv_pipe.c:api_rpcTNP(1538) api_rpcTNP: rpc command: SPOOLSS_GETPRINTERDATA [2005/04/01 21:24:18, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 1162 [2005/04/01 21:24:18, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 0 [2005/04/01 21:24:18, 3] rpc_server/srv_pipe.c:api_rpcTNP(1538) api_rpcTNP: rpc command: SPOOLSS_SETPRINTER [2005/04/01 21:24:18, 0] rpc_parse/parse_spoolss.c:spoolss_io_devmode(706) spoolss_io_devmode: Unknown specversion in devicemode [0x6c] [2005/04/01 21:24:18, 0] rpc_parse/parse_spoolss.c:spoolss_io_devmode(707) spoolss_io_devmode: please report to samba-technical@samba.org! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2005/04/01 21:24:18, 0] rpc_parse/parse_prs.c:prs_mem_get(537) prs_mem_get: reading data of size 64 would overrun buffer. [2005/04/01 21:24:18, 0] rpc_server/srv_spoolss.c:api_spoolss_setprinter(605) spoolss_io_q_setprinter: unable to unmarshall SPOOL_Q_SETPRINTER. [2005/04/01 21:24:18, 0] rpc_server/srv_pipe.c:api_rpcTNP(1560) api_rpcTNP: spoolss: SPOOLSS_SETPRINTER failed. [2005/04/01 21:24:18, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(542) free_pipe_context: destroying talloc pool of size 236 [2005/04/01 21:24:18, 3] rpc_server/srv_pipe_hnd.c:process_complete_pdu(750) process_complete_pdu: DCE/RPC fault sent on pipe spoolss [2005/04/01 21:24:18, 3] rpc_server/srv_lsa_hnd.c:close_policy_hnd(200) Closed policy
Created attachment 1131 [details] log level 5 for opening the printers folder all printers are offline.log this a log level 5 of opening the printers folder from the xp pro sp2 client
Created attachment 1132 [details] log level 10 trying to set printer copier_pcl to "Use Online" from xp pro client log level 10 trying to set printer copier_pcl to "Use Online" from xp pro client
I'm guessing its the set printer level 5 that is causing the problems. api_rpcTNP: spoolss op 0x7 - api_rpcTNP: rpc command: SPOOLSS_SETPRINTER api_rpc_cmds[16].fn == 0x427b20 000000 spoolss_io_q_setprinter 000000 smb_io_pol_hnd printer handle ...... 0014 level: 00000005 ^^^^^^^^^^^^^^^^^^^^ This is causing an RPC fault. Should just return unknown level.
Created attachment 1313 [details] prevent rpc fault on unsupported SetPrinter() levels
sorry for the delay. This patch should fix the issue with SetPrinter() causing and rpc fault.
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.