dptr_create: returned 9: Error - all new dirptrs in use ?

Franz Sirl Franz.Sirl-kernel at lauterbach.com
Thu Aug 26 14:50:31 GMT 1999


Uhm, this seems to be a dptr leak in combination with Win98/Win98SE. In a 
Win98  command window try "dir L:\support\mga*." (note the trailing dot) 
with "L:" being a samba-2.0.5 share and "support" a directory with 8.3 
files like "mga?????.bak", but no files like "mga?????". You'll get 
something similar to this end of the output with debuglevel=3:

[1999/08/26 16:15:06, 3] smbd/trans2.c:call_trans2findnext(882)
   call_trans2findnext: dirhandle = 267, max_data_bytes = 2432, maxentries 
= 6, close_after_request=0, close_if_end = 0 requires_resume_key = 0
resume_key = 0 resume name = mga18566.bak continue=0 level = 260
[1999/08/26 16:15:06, 3] smbd/dir.c:dptr_fetch_lanman2(545)
   fetching dirptr 267 for path support
[1999/08/26 16:15:06, 3] smbd/trans2.c:call_trans2findnext(929)
   dptr_num is 267, mask = MGA*, attr = 16, dirptr=(0x81344A0,1033)
[1999/08/26 16:15:06, 3] smbd/trans2.c:call_trans2findnext(1065)
   SMBtrans2 mask=MGA* directory=support dirtype=22 numentries=1
[1999/08/26 16:15:06, 3] smbd/process.c:process_smb(615)
   Transaction 159 of length 95
[1999/08/26 16:15:06, 3] smbd/process.c:switch_message(448)
   switch message SMBtrans2 (pid 14500)
[1999/08/26 16:15:06, 3] smbd/trans2.c:call_trans2findnext(882)
   call_trans2findnext: dirhandle = 267, max_data_bytes = 2432, maxentries 
= 6, close_after_request=0, close_if_end = 0 requires_resume_key = 0
resume_key = 0 resume name = mga18272.bak continue=0 level = 260
[1999/08/26 16:15:06, 3] smbd/dir.c:dptr_fetch_lanman2(545)
   fetching dirptr 267 for path support
[1999/08/26 16:15:06, 3] smbd/trans2.c:call_trans2findnext(929)
   dptr_num is 267, mask = MGA*, attr = 16, dirptr=(0x81344A0,1251)
[1999/08/26 16:15:06, 3] smbd/trans2.c:call_trans2findnext(1065)
   SMBtrans2 mask=MGA* directory=support dirtype=22 numentries=0
[1999/08/26 16:15:06, 3] smbd/process.c:process_smb(615)
   Transaction 160 of length 39
[1999/08/26 16:15:06, 3] smbd/process.c:switch_message(448)
   switch message SMBdskattr (pid 14500)
[1999/08/26 16:15:06, 3] smbd/reply.c:reply_dskattr(1125)
   dskattr dfree=22296
[1999/08/26 16:16:06, 3] lib/doscalls.c:dos_ChDir(336)
   dos_ChDir to /var/log/samba

And whoops, one dptr got lost here, as you can see if you issue another 
"dir L:\support\mga*.". Win95 doesn't show this behaviour, I haven't tested NT.

I'm not sure if this is a bug in Win98 or Samba. As our application is 
scanning the directory every few seconds, this dptr leak locks up the smbd 
a few times a day. I'm currently testing a workaround using "mga?????" as a 
mask which doesn't seem to leak dptrs.

On a side note, during debugging I got a 500MB (!) logfile, even though the 
maximum size is set to 1 MB. It seems the rotating doesn't work well at 
higher load.

Franz.



More information about the samba mailing list