Enclosed is the ethereal trace and the drivers. The drivers with this problem
are DSC338 and P7325.
1. Create a print queue using CUPS (we're using CUPS 1.1.17)
2. From the NT client, access the samba share of the printer
3. Install the driver, Apply, OK
4. Double click to open the printer from the samba folder
5. Right-click the printer icon to get to the properties pages
6. Do some changes to the 'Change Accessories' tab, Save
7. From the window opened in #4, open the 'Printer -> Properties' screen
8. Do some changes on the printing preference and apply
After that, I can see a lot of traffic between the NT client and the print
server. Eventually, the NT client will show 'Out of Virtual Memory' and need a
reboot; the samba.log will show:
2005/08/09 12:06:58, 0] rpc_server/srv_lsa_hnd.c:create_policy_hnd(110)
create_policy_hnd: ERROR: too many handles (1025) on this pipe.
I've checked in one small fix for an invalid write in enumprinterdata().
However, I think this is just a buggy driver. I installed it on a
Win2k print server and disabled the "advanced printing features"
from the advanced tab (which effectively force RAW printing).
The NT client just continually leaks printer handles. Evenutally
the client runs out of memory.
The only difference with Samba is that we have a hard limit on the
number of open handles per pipe to prevent DoS attacks by consuming
all the server's RAM.
You should probably talk to the print driver vendor about this.
Marking as invalid since it appears to be a dirver bug, and not Samba.