fcntl spinlock in Linux?

Alex Korobkin korobkin+smb at gmail.com
Thu Aug 22 09:44:02 MDT 2013


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