RPC timeouts in SPOOLSS code.
Joe Doran
joed at interlude.eu.org
Thu May 10 20:48:08 GMT 2001
In 2.2 official release I may have stumbled on a problem.
We have many subnets which are over leased lines. At these sites there
is a samba
server running on sco openserver 5.05.
On configuring samba up all is well except printing.
On connecting print queues locally over leased lines to remote subnets,
the printer
gets setup. It first says opening printer and then initializing printer.
At the initialization
it hangs. On checking logs it appears to be centred around ipc.c line
(292) which
calls get_rpc_pipe().
Logs look like:-
[2001/05/10 18:37:42, 3] smbd/ipc.c:reply_trans(482)
trans <\PIPE\> data=100 params=0 setup=2
[2001/05/10 18:37:42, 5] smbd/ipc.c:reply_trans(493)
calling named_pipe
[2001/05/10 18:37:42, 3] smbd/ipc.c:named_pipe(334)
named pipe command on <> name
[2001/05/10 18:37:42, 5] smbd/ipc.c:api_fd_reply(275)
api_fd_reply
[2001/05/10 18:37:42, 4]
rpc_server/srv_pipe_hnd.c:get_rpc_pipe(952)
search for pipe pnum=7024
[2001/05/10 18:37:42, 1] smbd/ipc.c:api_fd_reply(292)
api_fd_reply: INVALID PIPE HANDLE: 7024
[2001/05/10 18:37:42, 3] smbd/ipc.c:api_no_reply(254)
Unsupported API fd command.
Strange thing is, this works on a local area network between two
subnets, albeit
slightly slower than NT to NT communications.
Smb.conf is :-
# Samba config file created using SWAT
# from 10.74.211.227 (10.74.211.227)
# Date: 2001/05/10 18:48:18
# Global parameters
[global]
workgroup = DLLTEST
encrypt passwords = Yes
update encrypted = Yes
map to guest = Bad User
username map = /usr/local/samba/lib/users.map
log level = 5
domain admin users = dorajoe
domain logons = Yes
os level = 30
domain master = True
wins server = 10.74.208.22
remote announce = 10.74.208.255/DLL 10.74.211.255/DLL
printer admin = dorajoe
[pc01a]
path = /usr/spool/samba
printable = Yes
printer name = laser01a
printer driver = HP LaserJet 4
[pc01p]
path = /usr/spool/samba
printable = Yes
printer name = laser01p
printer driver = HP LaserJet 4
[print$]
path = /usr/local/samba/printers
read only = No
create mask = 0777
force create mode = 0777
force directory mode = 0777
guest ok = Yes
Function that is not returning the pipe handle.
/****************************************************************************
Find an rpc pipe given a pipe handle in a buffer and an offset.
****************************************************************************/
pipes_struct *get_rpc_pipe_p(char *buf, int where)
{
int pnum = SVAL(buf,where);
if (chain_p)
return chain_p;
return get_rpc_pipe(pnum);
}
/****************************************************************************
Find an rpc pipe given a pipe handle.
****************************************************************************/
pipes_struct *get_rpc_pipe(int pnum)
{
pipes_struct *p;
DEBUG(4,("search for pipe pnum=%x\n", pnum));
Before I delve in further can anyone verify that this indeed a problem
that is
reproducable elsewhere.
Joe.
More information about the samba-technical
mailing list