Since I upgraded from 2.2.3a to CVS SAMBA_3_0 i can't print to my LPRng printer anymore. The relevant log file entries are:
[2002/04/14 14:44:49, 3] rpc_server/srv_pipe.c:api_rpcTNP(1165) api_rpcTNP: rpc command: SPOOLSS_GETPRINTER [2002/04/14 14:44:49, 3] printing/printing.c:print_cache_expired(861) print cache expired for queue epson (last_qscan_time = -1, time now = 1018788289, qcachetime = 10) [2002/04/14 14:44:49, 0] lib/messages.c:message_send_pid(182) PANIC: assert failed at lib/messages.c(182) [2002/04/14 14:44:49, 0] lib/util.c:smb_panic(1138) PANIC: assert failed [2002/04/14 14:44:49, 3] smbd/process.c:process_smb(861) Transaction 1 of length 137 [2002/04/14 14:44:49, 3] smbd/process.c:switch_message(668) switch message SMBnegprot (pid 15245) ... [2002/04/14 14:44:49, 3] rpc_server/srv_pipe.c:api_rpcTNP(1165) api_rpcTNP: rpc command: SPOOLSS_FCPN [2002/04/14 14:44:49, 2] rpc_server/srv_spoolss_nt.c:find_printer_index_by_hnd(252) find_printer_index_by_hnd: Printer handle not found: _spoolss_fcpn: Invalid handle (OTHER:15243:15245) [2002/04/14 14:44:49, 3] rpc_server/srv_pipe_hnd.c:free_pipe_context(516) free_pipe_context: destroying talloc pool of size 0 What happens is this: The printer is successfully opened (SPOOLSS_OPENPRINTER) On SPOOLSS_GETPRINTER, samba notices that the lpq cache is outdated (print_cache_expired). It then calls print_queue_update(), which does a message_send_pid() to background_lpq_updater_pid. However, the background lpq updater is never started because it's commented out in smbd/server.c. So message_send_pid panics because background_lpq_updater_pid is 0, and the connection is dropped. The client then reconnects and tries again to connect to the printer, but the printer handle from the previous connection is not valid anymore... The comment in smbd/server.c states: DO NOT ENABLE THIS TILL YOU COPE WITH KILLING THESE TASKS AND INETD THIS *killed* LOTS OF BUILD FARM MACHINES. IT CREATED HUNDREDS OF smbd PROCESSES THAT NEVER DIE Any solutions yet? Cheers, Robert
