Issue metadata
Sign in to add a comment
|
TCMalloc hung on chromium initialization intermittently (in a docker container)
Reported by
ashwin.c...@gmail.com,
Feb 14 2017
|
||||||||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 Steps to reproduce the problem: 1. Launch chromium with the following flags.--enable-logging --v=1 --site-per-process --kiosk --user-data-dir=/tmp --window-position=0,0 --no-first-run --window-size=1920,1080 http://<url> in a docker container. 2. On some runs, the initialization gets stuck (two threads are deadlocked). The renderer process never starts. What is the expected behavior? Chromium Init should go through fine but does not always. What went wrong? tcmalloc is hung in a spinlock while trying to allocate memory for opendir(). Switching use_allocator to 'none' (aka glibc) fixes the problem. Here are the two thread (and process) stacks in contention: Process 1 stack trace: #0 0x00007fe0918f53ad in read () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007fe08dccb6a7 in read (__nbytes=1024, __buf=0x2821239fa480, __fd=56) at /usr/include/x86_64-linux-gnu/bits/unistd.h:44 #2 _dbus_read (fd=56, buffer=buffer@entry=0x7fff84f1e820, count=count@entry=1024) at ../../dbus/dbus-sysdeps-unix.c:642 #3 0x00007fe08dcce661 in _read_subprocess_line_argv (result=result@entry=0x7fff84f1e820, error=error@entry=0x7fff84f1e890, argv=0x7fe08dee6620 <argv>, path_fallback=1, progpath=0x7fe08dcd7437 "//bin/dbus-launch") at ../../dbus/dbus-sysdeps-unix.c:3412 #4 0x00007fe08dcce9a9 in _dbus_get_autolaunch_address (scope=scope@entry=0x0, address=address@entry=0x7fff84f1e820, error=error@entry=0x7fff84f1e890) at ../../dbus/dbus-sysdeps-unix.c:3552 #5 0x00007fe08dcc3d1d in _dbus_transport_new_for_autolaunch (error=0x7fff84f1e890, scope=0x0) at ../../dbus/dbus-transport.c:292 #6 _dbus_transport_open_autolaunch (entry=<optimized out>, transport_p=0x7fff84f1e888, error=0x7fff84f1e890) at ../../dbus/dbus-transport.c:323 #7 0x00007fe08dcc3bff in _dbus_transport_open (entry=0x2821239e2120, error=error@entry=0x7fff84f1e920) at ../../dbus/dbus-transport.c:391 #8 0x00007fe08dcb005b in connection_try_from_address_entry (error=0x7fff84f1e920, entry=<optimized out>) at ../../dbus/dbus-connection.c:1801 #9 _dbus_connection_open_internal (address=<optimized out>, shared=shared@entry=0, error=error@entry=0x7fff84f1ea40) at ../../dbus/dbus-connection.c:1870 #10 0x00007fe08dcb04b5 in dbus_connection_open_private (address=<optimized out>, error=error@entry=0x7fff84f1ea40) at ../../dbus/dbus-connection.c:2650 #11 0x00007fe08dcabd58 in internal_bus_get (type=DBUS_BUS_SESSION, private=1, error=0x7fff84f1ea40) at ../../dbus/dbus-bus.c:478 #12 0x00007fe08da8eac5 in ?? () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #13 0x00007fe08da8ecc9 in ?? () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #14 0x00007fe08da8ed82 in ?? () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #15 0x00007fe08da901a8 in gconf_engine_get_fuller () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #16 0x00007fe08da9058d in gconf_engine_get_entry () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #17 0x00007fe08da8ad2e in ?? () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #18 0x00007fe08da8d13d in ?? () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #19 0x00007fe08da8d7fb in gconf_client_get_bool () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #20 0x00007fe094f6db2b in ui::AtkUtilAuraLinux::Initialize(scoped_refptr<base::TaskRunner>) () #21 0x00007fe094f6cb80 in ui::AXPlatformNodeAuraLinux::StaticInitialize(scoped_refptr<base::TaskRunner>) () #22 0x00007fe094be66ad in views::(anonymous namespace)::AuraLinuxApplication::GetInstance() () #23 0x00007fe094be643c in views::NativeViewAccessibility::Create(views::View*) () #24 0x00007fe094bd2381 in views::View::NotifyAccessibilityEvent(ui::AXEvent, bool) () #25 0x00007fe095a561c4 in OmniboxViewViews::SetWindowTextAndCaretPos(std::basic_string<unsigned short, base::string16_char_traits, std::allocator<unsigned short> > const&, unsigned long, bool, bool) () #26 0x00007fe0978144e8 in OmniboxEditModel::Revert() () #27 0x00007fe097818d79 in OmniboxView::RevertAll() () #28 0x00007fe095a55aa3 in OmniboxViewViews::Update() () #29 0x00007fe095a4debb in LocationBarView::Update(content::WebContents const*) () #30 0x00007fe095a4db62 in LocationBarView::Init() () #31 0x00007fe095a83560 in ToolbarView::Init() () #32 0x00007fe095a415a2 in BrowserView::InitViews() () #33 0x00007fe095a4179b in non-virtual thunk to BrowserView::ViewHierarchyChanged(views::View::ViewHierarchyChangedDetails const&) () #34 0x00007fe094bd10b5 in views::View::ViewHierarchyChangedImpl(bool, views::View::ViewHierarchyChangedDetails const&) () #35 0x00007fe094bd09a6 in views::View::AddChildViewAt(views::View*, int) () #36 0x00007fe094be0880 in views::NonClientView::ViewHierarchyChanged(views::View::ViewHierarchyChangedDetails const&) () #37 0x00007fe094bd10b5 in views::View::ViewHierarchyChangedImpl(bool, views::View::ViewHierarchyChangedDetails const&) () #38 0x00007fe094bd09a6 in views::View::AddChildViewAt(views::View*, int) () #39 0x00007fe094c05613 in views::internal::RootView::SetContentsView(views::View*) () #40 0x00007fe094bd8c67 in views::Widget::Init(views::Widget::InitParams const&) () #41 0x00007fe095b94764 in BrowserFrame::InitBrowserFrame() () #42 0x00007fe095a4401c in BrowserWindow::CreateBrowserWindow(Browser*) () #43 0x00007fe0959ab196 in Browser::Browser(Browser::CreateParams const&) () #44 0x00007fe0959cf0b5 in StartupBrowserCreatorImpl::OpenTabsInBrowser(Browser*, bool, std::vector<StartupTab, std::allocator<StartupTab> > const&) () #45 0x00007fe0959ce581 in StartupBrowserCreatorImpl::ProcessSpecifiedURLs(std::vector<GURL, std::allocator<GURL> > const&) () Process 2 stack trace: #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007fe0928653be in base::internal::SpinLockDelay(int volatile*, int, int) () #2 0x00007fe09286526f in SpinLock::SlowLock() () #3 0x00007fe09286d7bb in (anonymous namespace)::do_malloc(unsigned long) () #4 0x00007fe097b7aa22 in tc_malloc () #5 0x00007fe092864d2a in malloc () #6 0x00007fe08b809cf1 in __alloc_dir (fd=56, close_fd=<optimized out>, flags=<optimized out>, statp=<optimized out>) at ../sysdeps/posix/opendir.c:207 #7 0x00007fe08dcce130 in _dbus_close_all () at ../../dbus/dbus-sysdeps-unix.c:4125 #8 0x00007fe08dcce54a in _read_subprocess_line_argv (result=result@entry=0x7fff84f1e820, error=error@entry=0x7fff84f1e890, argv=0x7fe08dee6620 <argv>, path_fallback=1, progpath=0x7fe08dcd7437 "//bin/dbus-launch") at ../../dbus/dbus-sysdeps-unix.c:3378 #9 0x00007fe08dcce9a9 in _dbus_get_autolaunch_address (scope=scope@entry=0x0, address=address@entry=0x7fff84f1e820, error=error@entry=0x7fff84f1e890) at ../../dbus/dbus-sysdeps-unix.c:3552 #10 0x00007fe08dcc3d1d in _dbus_transport_new_for_autolaunch (error=0x7fff84f1e890, scope=0x0) at ../../dbus/dbus-transport.c:292 #11 _dbus_transport_open_autolaunch (entry=<optimized out>, transport_p=0x7fff84f1e888, error=0x7fff84f1e890) at ../../dbus/dbus-transport.c:323 #12 0x00007fe08dcc3bff in _dbus_transport_open (entry=0x2821239e2120, error=error@entry=0x7fff84f1e920) at ../../dbus/dbus-transport.c:391 #13 0x00007fe08dcb005b in connection_try_from_address_entry (error=0x7fff84f1e920, entry=<optimized out>) at ../../dbus/dbus-connection.c:1801 #14 _dbus_connection_open_internal (address=<optimized out>, shared=shared@entry=0, error=error@entry=0x7fff84f1ea40) at ../../dbus/dbus-connection.c:1870 #15 0x00007fe08dcb04b5 in dbus_connection_open_private (address=<optimized out>, error=error@entry=0x7fff84f1ea40) at ../../dbus/dbus-connection.c:2650 #16 0x00007fe08dcabd58 in internal_bus_get (type=DBUS_BUS_SESSION, private=1, error=0x7fff84f1ea40) at ../../dbus/dbus-bus.c:478 #17 0x00007fe08da8eac5 in ?? () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #18 0x00007fe08da8ecc9 in ?? () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #19 0x00007fe08da8ed82 in ?? () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #20 0x00007fe08da901a8 in gconf_engine_get_fuller () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #21 0x00007fe08da9058d in gconf_engine_get_entry () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #22 0x00007fe08da8ad2e in ?? () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #23 0x00007fe08da8d13d in ?? () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #24 0x00007fe08da8d7fb in gconf_client_get_bool () from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 #25 0x00007fe094f6db2b in ui::AtkUtilAuraLinux::Initialize(scoped_refptr<base::TaskRunner>) () #26 0x00007fe094f6cb80 in ui::AXPlatformNodeAuraLinux::StaticInitialize(scoped_refptr<base::TaskRunner>) () #27 0x00007fe094be66ad in views::(anonymous namespace)::AuraLinuxApplication::GetInstance() () #28 0x00007fe094be643c in views::NativeViewAccessibility::Create(views::View*) () #29 0x00007fe094bd2381 in views::View::NotifyAccessibilityEvent(ui::AXEvent, bool) () #30 0x00007fe095a561c4 in OmniboxViewViews::SetWindowTextAndCaretPos(std::basic_string<unsigned short, base::string16_char_traits, std::allocator<unsigned short> > const&, unsigned long, bool, bool) () #31 0x00007fe0978144e8 in OmniboxEditModel::Revert() () #32 0x00007fe097818d79 in OmniboxView::RevertAll() () #33 0x00007fe095a55aa3 in OmniboxViewViews::Update() () #34 0x00007fe095a4debb in LocationBarView::Update(content::WebContents const*) () #35 0x00007fe095a4db62 in LocationBarView::Init() () #36 0x00007fe095a83560 in ToolbarView::Init() () #37 0x00007fe095a415a2 in BrowserView::InitViews() () #38 0x00007fe095a4179b in non-virtual thunk to BrowserView::ViewHierarchyChanged(views::View::ViewHierarchyChangedDetails const&) () #39 0x00007fe094bd10b5 in views::View::ViewHierarchyChangedImpl(bool, views::View::ViewHierarchyChangedDetails const&) () #40 0x00007fe094bd09a6 in views::View::AddChildViewAt(views::View*, int) () #41 0x00007fe094be0880 in views::NonClientView::ViewHierarchyChanged(views::View::ViewHierarchyChangedDetails const&) () #42 0x00007fe094bd10b5 in views::View::ViewHierarchyChangedImpl(bool, views::View::ViewHierarchyChangedDetails const&) () #43 0x00007fe094bd09a6 in views::View::AddChildViewAt(views::View*, int) () #44 0x00007fe094c05613 in views::internal::RootView::SetContentsView(views::View*) () #45 0x00007fe094bd8c67 in views::Widget::Init(views::Widget::InitParams const&) () Did this work before? N/A Chrome version: 54.0.2840.71 Channel: stable OS Version: Ubuntu 14.04.5 Flash Version:
,
Feb 14 2017
Unfortunately I am stuck on 54, as getting the test case to work on 56 will take a long time. No one will look at this bug on 54 though?
,
Feb 17 2017
,
Feb 17 2017
Is there anyone to at least confirm a bug like this existed in chromium 54 with tcmalloc?
,
Feb 23 2017
It looks like this is being triggered by some accessiblity code. If the desktop environment has an accessibilit setting, maybe turning that off can alleviate the problem. Bug 695643 also got filed just now and may be related.
,
Feb 23 2017
Sounds like exactly what primiano@ described
,
Feb 23 2017
|
|||||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||||
Comment 1 by ligim...@chromium.org
, Feb 14 2017