fcntl spinlock in Linux?

Alex Korobkin korobkin+smb at gmail.com
Thu Aug 22 12:38:32 MDT 2013


I've just had another crash, and that's what I see in the logs:

[2013/08/20 05:31:47.982903,  0] smbd/oplock.c:330(oplock_timeout_handler)
  Oplock break failed for file x64/3/pscript.hlp -- replying anyway
[2013/08/20 05:31:47.983500,  0] smbd/oplock.c:330(oplock_timeout_handler)
  Oplock break failed for file x64/3/scorpio-color.ppd -- replying anyway
[2013/08/20 05:32:18.451297,  0]
rpc_server/spoolss/srv_spoolss_nt.c:1748(_spoolss_OpenPrinterEx)
  _spoolss_OpenPrinterEx: Cannot open a printer handle for printer
\\PRINTSRV-118
[2013/08/20 05:32:20.493051,  0]
rpc_server/spoolss/srv_spoolss_nt.c:1748(_spoolss_OpenPrinterEx)
  _spoolss_OpenPrinterEx: Cannot open a printer handle for printer
\\PRINTSRV-118
[2013/08/20 05:32:44.455442,  0] smbd/oplock.c:330(oplock_timeout_handler)
  Oplock break failed for file x64/3/pscript5.dll -- replying anyway

[2013/08/20 05:33:13,  0] smbd/server.c:1072(main)
  smbd version 3.6.18 started.

Does it give any clue on what exactly it is trying to lock?

Btw, PRINTSRV-118 is a host name, not a printer name. I wonder why would
samba try to treat it as a printer.


2013/8/22 Alex Korobkin <korobkin+smb at gmail.com>

> Volker,
>
> Would it be possible that two smbd processes on a busy server are trying
> to read the list of printers and get locked?
>
>
> 2013/8/20 Alex Korobkin <korobkin+smb at gmail.com>
>
>> Found it, seems to work for Ubuntu server as well.
>>
>> So, idle processes are doing this:
>> #0  0x00007ffd3141e2d8 in poll () from /lib/x86_64-linux-gnu/libc.so.6
>> #1  0x00007ffd347abed0 in sys_poll ()
>> #2  0x00007ffd3452cba1 in smbd_process ()
>> #3  0x00007ffd34a3841f in ?? ()
>> #4  0x00007ffd347dcb0e in run_events_poll ()
>> #5  0x00007ffd347dccaa in ?? ()
>> #6  0x00007ffd34a396c0 in _tevent_loop_once ()
>> #7  0x00007ffd344aa456 in main ()
>>
>> Non-idle ones are doing this:
>> #0  0x00007f97eb732e05 in fcntl () from /lib/x86_64-linux-gnu/libc.so.6
>> #1  0x00007f97ebe35032 in ?? () from /usr/lib/x86_64-linux-gnu/libtdb.so.1
>> #2  0x00007f97ebe354fa in ?? () from /usr/lib/x86_64-linux-gnu/libtdb.so.1
>> #3  0x00007f97ebe349ed in tdb_traverse () from
>> /usr/lib/x86_64-linux-gnu/libtdb.so.1
>> #4  0x00007f97eeacddf6 in ?? ()
>> #5  0x00007f97eeab73ba in ?? ()
>> #6  0x00007f97eeab7f84 in printer_list_run_fn ()
>> #7  0x00007f97eeaaeac9 in pcap_printer_fn ()
>> #8  0x00007f97eeab4a56 in load_printers ()
>> #9  0x00007f97ee7cedfb in reload_printers ()
>> #10 0x00007f97eeac5be9 in messaging_dispatch_rec ()
>> #11 0x00007f97eeac74d1 in ?? ()
>> #12 0x00007f97eed50f1a in tevent_common_check_signal ()
>> #13 0x00007f97eeaf27e5 in run_events_poll ()
>> #14 0x00007f97ee842b8c in smbd_process ()
>> #15 0x00007f97eed4e41f in ?? ()
>> #16 0x00007f97eeaf2b0e in run_events_poll ()
>> #17 0x00007f97eeaf2caa in ?? ()
>> #18 0x00007f97eed4f6c0 in _tevent_loop_once ()
>> #19 0x00007f97ee7c0456 in main ()
>>
>> I'm attaching gstack output for the reference.
>> Is it getting stuck when reloading list of printers?
>>
>>
>>
>>
>> 2013/8/17 Volker Lendecke <Volker.Lendecke at sernet.de>
>>
>>> On Fri, Aug 16, 2013 at 05:46:38PM -0400, Alex Korobkin wrote:
>>> > Here is a similar dump from a printserver running with ~50 smbd
>>> processes.
>>> > Samba 3.6.18, libtdb 1.2.12, Ubuntu 12.04 x64. Is this what you wanted
>>> to
>>> > have a look at?
>>>
>>> No, that's not what I had in mind. Fedora/RHEL have a
>>> utility called gstack that prints a user-space stack using
>>> the gdb "bt" subcommand. That is what I need. Maybe Fedora
>>> people can point you at the source for that utility, it's
>>> essentially a shell script wrapper around gdb. Very handy :-)
>>>
>>> Volker
>>>
>>> --
>>> SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
>>> phone: +49-551-370000-0, fax: +49-551-370000-9
>>> AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
>>> http://www.sernet.de, mailto:kontakt at sernet.de
>>>
>>
>>
>


More information about the samba-technical mailing list