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