intel / ozone-wayland

Wayland implementation for Chromium Ozone classes
BSD 3-Clause "New" or "Revised" License
219 stars 82 forks source link

Crash with M37 (37.0.2062.20) #248

Closed rakuco closed 10 years ago

rakuco commented 10 years ago

Testing Crosswalk with 37.0.2062.20 on my desktop with Wayland 1.5.0, I get crashes at startup most (but not all) of the time. They all look like this:

#0  0x00007ffff30536f1 in views::DesktopFactoryWayland::CreateDesktopScreen (this=0x143897b85808) at ../../ozone/ui/desktop_aura/desktop_factory_wayland.cc:34
#1  0x00007ffff302372e in views::CreateDesktopScreen () at ../../ui/views/widget/desktop_aura/desktop_screen_ozone.cc:12
#2  0x000000000049b9a6 in xwalk::NativeAppWindow::Initialize () at ../../xwalk/runtime/browser/ui/native_app_window_views.cc:311
#3  0x0000000000490ccc in xwalk::XWalkBrowserMainParts::PreMainMessageLoopRun (this=0x1438979b4910) at ../../xwalk/runtime/browser/xwalk_browser_main_parts.cc:215
#4  0x00007fffea6bea70 in content::BrowserMainLoop::PreMainMessageLoopRun (this=0x143897abd660) at ../../content/browser/browser_main_loop.cc:691
#5  0x00007fffea6c6b15 in base::internal::RunnableAdapter<int (content::BrowserMainLoop::*)()>::Run (this=0x7fffffffd8f0, object=0x143897abd660) at ../../base/bind_internal.h:134
#6  0x00007fffea6c66b5 in base::internal::InvokeHelper<false, int, base::internal::RunnableAdapter<int (content::BrowserMainLoop::*)()>, void (content::BrowserMainLoop*)>::MakeItSo(base::internal::RunnableAdapter<int (content::BrowserMainLoop::*)()>, content::BrowserMainLoop*) (runnable=..., a1=0x143897abd660) at ../../base/bind_internal.h:863
#7  0x00007fffea6c5f22 in base::internal::Invoker<1, base::internal::BindState<base::internal::RunnableAdapter<int (content::BrowserMainLoop::*)()>, int (content::BrowserMainLoop*), void (base::internal::UnretainedWrapper<content::BrowserMainLoop>)>, int (content::BrowserMainLoop*)>::Run(base::internal::BindStateBase*) (base=0x143897aa8320) at ../../base/bind_internal.h:1169
#8  0x00007fffeaaee776 in base::Callback<int ()>::Run() const (this=0x143897aa8390) at ../../base/callback.h:401
#9  0x00007fffeadacbd0 in content::StartupTaskRunner::RunAllTasksNow (this=0x143897b78d20) at ../../content/browser/startup_task_runner.cc:45
#10 0x00007fffea6be07b in content::BrowserMainLoop::CreateStartupTasks (this=0x143897abd660) at ../../content/browser/browser_main_loop.cc:594
#11 0x00007fffea6c75f4 in content::BrowserMainRunnerImpl::Initialize (this=0x143897ac7800, parameters=...) at ../../content/browser/browser_main_runner.cc:106
#12 0x00007fffea6bae4f in content::BrowserMain (parameters=...) at ../../content/browser/browser_main.cc:22
#13 0x00007fffea650101 in content::RunNamedProcessTypeMain (process_type="", main_function_params=..., delegate=0x7fffffffe180) at ../../content/app/content_main_runner.cc:416
#14 0x00007fffea65176d in content::ContentMainRunnerImpl::Run (this=0x143897adbe30) at ../../content/app/content_main_runner.cc:771
#15 0x00007fffea64f50f in content::ContentMain (params=...) at ../../content/app/content_main.cc:19
#16 0x00000000004546bf in main (argc=3, argv=0x7fffffffe2b8) at ../../xwalk/runtime/app/xwalk_main.cc:40

ui/desktop_aura/desktop_factory_wayland.cc:34 is ui::OzoneDisplay::GetInstance()->LookAheadOutputGeometry();.

It turns out the instance via to ui::OzoneDisplay::SetInstance() ends up being destructed before this point of the code is reached:

#0  ozonewayland::WaylandProxyDisplay::~WaylandProxyDisplay (this=0x11265d4ab890, __in_chrg=<optimized out>) at ../../ozone/wayland/proxy_display.cc:18
#1  0x00007fffe23e8d4c in ui::(anonymous namespace)::OzonePlatformWayland::InitializeGPU (this=0x11265d4ac800) at ../../ozone/platform/ozone_platform_wayland.cc:73
#2  0x00007fffe5449396 in ui::OzonePlatform::InitializeForGPU () at ../../ui/ozone/ozone_platform.cc:49
#3  0x00007ffff31d3e1a in gfx::InitializeStaticGLBindings (implementation=gfx::kGLImplementationEGLGLES2) at ../../ui/gl/gl_implementation_ozone.cc:46
#4  0x00007ffff31d844c in gfx::GLSurface::InitializeOneOffImplementation (impl=gfx::kGLImplementationEGLGLES2, fallback_to_osmesa=false, gpu_service_logging=false, disable_gl_drawing=false)
    at ../../ui/gl/gl_surface.cc:78
#5  0x00007ffff31d83d2 in gfx::GLSurface::InitializeOneOff () at ../../ui/gl/gl_surface.cc:69
#6  0x00007fffeb1da57e in content::GpuChildThread::GpuChildThread (this=0x11265d481820, channel_id="19402.0.1723209317") at ../../content/gpu/gpu_child_thread.cc:78
#7  0x00007fffeb1ddd8a in content::InProcessGpuThread::Init (this=0x11265d58db60) at ../../content/gpu/in_process_gpu_thread.cc:26
#8  0x00007ffff5717f5d in base::Thread::ThreadMain (this=0x11265d58db60) at ../../base/threading/thread.cc:218
#9  0x00007ffff570548b in base::(anonymous namespace)::ThreadFunc (params=0x7fffd4554cf0) at ../../base/threading/platform_thread_posix.cc:80
#10 0x00007fffe82740a4 in start_thread (arg=0x7fffd2d54700) at pthread_create.c:309
#11 0x00007fffe7fa804d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

(The backtraces are from different runs so the addresses don't match)

darktears commented 10 years ago

Please note that this is blocking the rebase of crosswalk on M37 at the moment.

kalyankondapally commented 10 years ago

@rakuco Is this in single process mode ?

rakuco commented 10 years ago

I was only able to get the backtrace in single process mode, but it crashes if I don't pass --single-process too.

kalyankondapally commented 10 years ago

@rakuco Single process case is more of a thread race issue. I discussed this with Joone and he is going to investigate the crash in multi process case. Assigning it to @joone

rakuco commented 10 years ago

Running in multi-process mode, I get two core dumps:

#0  0x00007f296de2c407 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007f296de2d7e8 in __GI_abort () at abort.c:89
#2  0x00007f297b4f541d in base::debug::(anonymous namespace)::DebugBreak () at ../../base/debug/debugger_posix.cc:217
#3  0x00007f297b4f5429 in base::debug::BreakDebugger () at ../../base/debug/debugger_posix.cc:241
#4  0x00007f297b574dae in logging::LogMessage::~LogMessage (this=0x7fff896f7cb0, __in_chrg=<optimized out>) at ../../base/logging.cc:644
#5  0x00007f29713abc25 in content::SoftwareOutputDeviceOzone::SoftwareOutputDeviceOzone (this=0x35c139d5ea20, compositor=0x35c139e18860)
    at ../../content/browser/compositor/software_output_device_ozone.cc:20
#6  0x00007f29713971b1 in content::CreateSoftwareOutputDevice (compositor=0x35c139e18860) at ../../content/browser/compositor/gpu_process_transport_factory.cc:108
#7  0x00007f2971397c8b in content::GpuProcessTransportFactory::CreateOutputSurface (this=0x35c139d15820, compositor=0x35c139e18860, software_fallback=false)
    at ../../content/browser/compositor/gpu_process_transport_factory.cc:209
#8  0x00007f2979e93d31 in ui::Compositor::CreateOutputSurface (this=0x35c139e18860, fallback=false) at ../../ui/compositor/compositor.cc:302
#9  0x00007f297d16c0c0 in cc::LayerTreeHost::CreateOutputSurface (this=0x35c139de8da0) at ../../cc/trees/layer_tree_host.cc:387
#10 0x00007f297d1d2d98 in cc::SingleThreadProxy::CreateAndInitializeOutputSurface (this=0x35c139d3a140) at ../../cc/trees/single_thread_proxy.cc:94
#11 0x00007f297d16da86 in cc::LayerTreeHost::Composite (this=0x35c139de8da0, frame_begin_time=...) at ../../cc/trees/layer_tree_host.cc:681
#12 0x00007f2979e9382f in ui::Compositor::Draw (this=0x35c139e18860) at ../../ui/compositor/compositor.cc:226
#13 0x00007f2979e9a8f5 in base::internal::RunnableAdapter<void (ui::Compositor::*)()>::Run (this=0x7fff896f8c20, object=0x35c139e18860) at ../../base/bind_internal.h:134
#14 0x00007f2979e99697 in base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (ui::Compositor::*)()>, void (base::WeakPtr<ui::Compositor> const&)>::MakeItSo(base::internal::RunnableAdapter<void (ui::Compositor::*)()>, base::WeakPtr<ui::Compositor> const&) (runnable=..., weak_ptr=...) at ../../base/bind_internal.h:882
#15 0x00007f2979e9891e in base::internal::Invoker<1, base::internal::BindState<base::internal::RunnableAdapter<void (ui::Compositor::*)()>, void (ui::Compositor*), void (base::WeakPtr<ui::Compositor>)>, void (ui::Compositor*)>::Run(base::internal::BindStateBase*) (base=0x35c13a561720) at ../../base/bind_internal.h:1169
#16 0x00007f297b4e3754 in base::Callback<void ()>::Run() const (this=0x7fff896f8f48) at ../../base/callback.h:401
#17 0x00007f297b596177 in base::MessageLoop::RunTask (this=0x35c139a84fe0, pending_task=...) at ../../base/message_loop/message_loop.cc:450
#18 0x00007f297b5962b2 in base::MessageLoop::DeferOrRunPendingTask (this=0x35c139a84fe0, pending_task=...) at ../../base/message_loop/message_loop.cc:462
#19 0x00007f297b596802 in base::MessageLoop::DoWork (this=0x35c139a84fe0) at ../../base/message_loop/message_loop.cc:576
#20 0x00007f297b4c0b62 in base::MessagePumpLibevent::Run (this=0x35c139c60a40, delegate=0x35c139a84fe0) at ../../base/message_loop/message_pump_libevent.cc:232
#21 0x00007f297b595c4a in base::MessageLoop::RunHandler (this=0x35c139a84fe0) at ../../base/message_loop/message_loop.cc:400
#22 0x00007f297b5ee92c in base::RunLoop::Run (this=0x7fff896f9220) at ../../base/run_loop.cc:49
#23 0x00007f29705f6493 in content::BrowserMainLoop::MainMessageLoopRun (this=0x35c139bc1660) at ../../content/browser/browser_main_loop.cc:1103
#24 0x00007f29705f3b30 in content::BrowserMainLoop::RunMainMessageLoopParts (this=0x35c139bc1660) at ../../content/browser/browser_main_loop.cc:709
#25 0x00007f29705fc7b4 in content::BrowserMainRunnerImpl::Run (this=0x35c139bc81a0) at ../../content/browser/browser_main_runner.cc:118
#26 0x00007f29705efe78 in content::BrowserMain (parameters=...) at ../../content/browser/browser_main.cc:26
#27 0x00007f2970585101 in content::RunNamedProcessTypeMain (process_type="", main_function_params=..., delegate=0x7fff896f9d70) at ../../content/app/content_main_runner.cc:416
#28 0x00007f297058676d in content::ContentMainRunnerImpl::Run (this=0x35c139bdfe30) at ../../content/app/content_main_runner.cc:771
#29 0x00007f297058450f in content::ContentMain (params=...) at ../../content/app/content_main.cc:19
#30 0x00000000004546bf in main (argc=2, argv=0x7fff896f9ea8) at ../../xwalk/runtime/app/xwalk_main.cc:40

and

#0  0x00007f18e727c407 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007f18e727d7e8 in __GI_abort () at abort.c:89
#2  0x00007f18f4acc089 in google::AssertFail () at ../../base/third_party/symbolize/symbolize.cc:72
#3  0x00007f18f4acc812 in google::FindSymbol (pc=139745159317700, fd=208, out=0x7fff64b501d0 "(/data/src/crosswalk/crosswalk/src/out/Debug/lib/libbase.so", out_size=1024, symbol_offset=139745157562368, strtab=0x7fff64b50060, symtab=0x7fff64b50020) at ../../base/third_party/symbolize/symbolize.cc:300
#4  0x00007f18f4accb0c in google::GetSymbolFromObjectFile (fd=208, pc=139745159317700, out=0x7fff64b501d0 "(/data/src/crosswalk/crosswalk/src/out/Debug/lib/libbase.so", out_size=1024, map_start_address=139745157562368) at ../../base/third_party/symbolize/symbolize.cc:351
#5  0x00007f18f4acd8f6 in google::SymbolizeAndDemangle (pc=0x7f18f49488c4 <base::debug::StackTrace::OutputToStream(std::ostream*) const+64>, out=0x7fff64b501d0 "(/data/src/crosswalk/crosswalk/src/out/Debug/lib/libbase.so", out_size=1024) at ../../base/third_party/symbolize/symbolize.cc:785
#6  0x00007f18f4acd965 in google::Symbolize (pc=0x7f18f49488c4 <base::debug::StackTrace::OutputToStream(std::ostream*) const+64>, out=0x7fff64b501d0 "(/data/src/crosswalk/crosswalk/src/out/Debug/lib/libbase.so", out_size=1024) at ../../base/third_party/symbolize/symbolize.cc:827
#7  0x00007f18f4947c14 in base::debug::(anonymous namespace)::ProcessBacktrace (trace=0x7fff64b50660, size=44, handler=0x7fff64b50600) at ../../base/debug/stack_trace_posix.cc:165
#8  0x00007f18f4948876 in base::debug::StackTrace::Print (this=0x7fff64b50660) at ../../base/debug/stack_trace_posix.cc:760
#9  0x00007f18f4948132 in base::debug::(anonymous namespace)::StackDumpSignalHandler (signal=6, info=0x7fff64b50db0, void_context=0x7fff64b50c80) at ../../base/debug/stack_trace_posix.cc:285
#10 <signal handler called>
#11 0x00007f18e727c407 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#12 0x00007f18e727d7e8 in __GI_abort () at abort.c:89
#13 0x00007f18f4acc089 in google::AssertFail () at ../../base/third_party/symbolize/symbolize.cc:72
#14 0x00007f18f4acc812 in google::FindSymbol (pc=139745159317544, fd=207, out=0x7fff64b518d0 "(/data/src/crosswalk/crosswalk/src/out/Debug/lib/libbase.so", out_size=1024, symbol_offset=139745157562368, strtab=0x7fff64b51760, symtab=0x7fff64b51720) at ../../base/third_party/symbolize/symbolize.cc:300
#15 0x00007f18f4accb0c in google::GetSymbolFromObjectFile (fd=207, pc=139745159317544, out=0x7fff64b518d0 "(/data/src/crosswalk/crosswalk/src/out/Debug/lib/libbase.so", out_size=1024, map_start_address=139745157562368) at ../../base/third_party/symbolize/symbolize.cc:351
#16 0x00007f18f4acd8f6 in google::SymbolizeAndDemangle (pc=0x7f18f4948828 <base::debug::StackTrace::StackTrace()+30>, out=0x7fff64b518d0 "(/data/src/crosswalk/crosswalk/src/out/Debug/lib/libbase.so", out_size=1024) at ../../base/third_party/symbolize/symbolize.cc:785
#17 0x00007f18f4acd965 in google::Symbolize (pc=0x7f18f4948828 <base::debug::StackTrace::StackTrace()+30>, out=0x7fff64b518d0 "(/data/src/crosswalk/crosswalk/src/out/Debug/lib/libbase.so", out_size=1024) at ../../base/third_party/symbolize/symbolize.cc:827
#18 0x00007f18f4947c14 in base::debug::(anonymous namespace)::ProcessBacktrace (trace=0x7fff64b51d50, size=33, handler=0x7fff64b51d00) at ../../base/debug/stack_trace_posix.cc:165
#19 0x00007f18f49488c5 in base::debug::StackTrace::OutputToStream (this=0x7fff64b51d50, os=0x7fff64b523a8) at ../../base/debug/stack_trace_posix.cc:765
#20 0x00007f18f49c4a9b in logging::LogMessage::~LogMessage (this=0x7fff64b523a0, __in_chrg=<optimized out>) at ../../base/logging.cc:550
#21 0x00007f18e1782feb in ozonewayland::WaylandDisplay::GetNativeWindow (this=0x2e849da4c660, window_handle=1) at ../../ozone/wayland/display.cc:81
#22 0x00007f18e178cebd in ozonewayland::SurfaceOzoneWayland::GetNativeWindow (this=0x2e849df9c980) at ../../ozone/wayland/egl/surface_ozone_wayland.cc:23
#23 0x00007f18f2561095 in gfx::(anonymous namespace)::GLSurfaceOzoneEGL::GLSurfaceOzoneEGL (this=0x2e849deb7c80, ozone_surface=...) at ../../ui/gl/gl_surface_ozone.cc:26
#24 0x00007f18f256168d in gfx::GLSurface::CreateViewGLSurface (window=1) at ../../ui/gl/gl_surface_ozone.cc:98
#25 0x00007f18ea50c512 in content::ImageTransportSurface::CreateNativeSurface (manager=0x2e849de00520, stub=0x2e849dec2ba0, handle=...) at ../../content/common/gpu/image_transport_surface_linux.cc:17
#26 0x00007f18ea5096fa in content::ImageTransportSurface::CreateSurface (manager=0x2e849de00520, stub=0x2e849dec2ba0, handle=...) at ../../content/common/gpu/image_transport_surface.cc:40
#27 0x00007f18ea4f0a73 in content::GpuCommandBufferStub::OnInitialize (this=0x2e849dec2ba0, shared_state_handle=..., reply_message=0x2e849deb7b60) at ../../content/common/gpu/gpu_command_buffer_stub.cc:456
#28 0x00007f18ea4fb619 in DispatchToMethod<content::GpuCommandBufferStub, void (content::GpuCommandBufferStub::*)(base::FileDescriptor, IPC::Message*), base::FileDescriptor, IPC::Message&> (obj=0x2e849dec2ba0, method=(void (content::GpuCommandBufferStub::*)(content::GpuCommandBufferStub * const, base::FileDescriptor, IPC::Message *)) 0x7f18ea4f04d2 <content::GpuCommandBufferStub::OnInitialize(base::FileDescriptor, IPC::Message*)>, in=..., out=0x7fff64b53e10) at ../../base/tuple.h:803
#29 0x00007f18ea4f85d5 in IPC::SyncMessageSchema<Tuple1<base::FileDescriptor>, Tuple2<bool&, gpu::Capabilities&> >::DispatchDelayReplyWithSendParams<content::GpuCommandBufferStub, void (content::GpuCommandBufferStub::*)(base::FileDescriptor, IPC::Message*)> (ok=true, send_params=..., msg=0x2e849deb7a40, obj=0x2e849dec2ba0, func=(void (content::GpuCommandBufferStub::*)(content::GpuCommandBufferStub * const, base::FileDescriptor, IPC::Message *)) 0x7f18ea4f04d2 <content::GpuCommandBufferStub::OnInitialize(base::FileDescriptor, IPC::Message*)>) at ../../ipc/ipc_message_utils.h:916
#30 0x00007f18ea4f6239 in GpuCommandBufferMsg_Initialize::DispatchDelayReply<content::GpuCommandBufferStub, void, void (content::GpuCommandBufferStub::*)(base::FileDescriptor, IPC::Message*)> (msg=0x2e849deb7a40, obj=0x2e849dec2ba0, parameter=0x0, func=(void (content::GpuCommandBufferStub::*)(content::GpuCommandBufferStub * const, base::FileDescriptor, IPC::Message *)) 0x7f18ea4f04d2 <content::GpuCommandBufferStub::OnInitialize(base::FileDescriptor, IPC::Message*)>) at ../../content/common/gpu/gpu_messages.h:506
#31 0x00007f18ea4ee7e4 in content::GpuCommandBufferStub::OnMessageReceived (this=0x2e849dec2ba0, message=...) at ../../content/common/gpu/gpu_command_buffer_stub.cc:208
#32 0x00007f18ea53b714 in content::MessageRouter::RouteMessage (this=0x2e849d9570d0, msg=...) at ../../content/common/message_router.cc:54
#33 0x00007f18ea4d6ad1 in content::GpuChannel::HandleMessage (this=0x2e849d957020) at ../../content/common/gpu/gpu_channel.cc:704
#34 0x00007f18ea4e0d3d in base::internal::RunnableAdapter<void (content::GpuChannel::*)()>::Run (this=0x7fff64b54420, object=0x2e849d957020) at ../../base/bind_internal.h:134
#35 0x00007f18ea4dfd02 in base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (content::GpuChannel::*)()>, void (base::WeakPtr<content::GpuChannel> const&)>::MakeItSo(base::internal::RunnableAdapter<void (content::GpuChannel::*)()>, base::WeakPtr<content::GpuChannel> const&) (runnable=..., weak_ptr=...) at ../../base/bind_internal.h:882
#36 0x00007f18ea4de4da in base::internal::Invoker<1, base::internal::BindState<base::internal::RunnableAdapter<void (content::GpuChannel::*)()>, void (content::GpuChannel*), void (base::WeakPtr<content::GpuChannel>)>, void (content::GpuChannel*)>::Run(base::internal::BindStateBase*) (base=0x2e849dbcef00) at ../../base/bind_internal.h:1169
#37 0x00007f18f4933754 in base::Callback<void ()>::Run() const (this=0x7fff64b54748) at ../../base/callback.h:401
#38 0x00007f18f49e6177 in base::MessageLoop::RunTask (this=0x7fff64b54fc0, pending_task=...) at ../../base/message_loop/message_loop.cc:450
#39 0x00007f18f49e62b2 in base::MessageLoop::DeferOrRunPendingTask (this=0x7fff64b54fc0, pending_task=...) at ../../base/message_loop/message_loop.cc:462
#40 0x00007f18f49e6802 in base::MessageLoop::DoWork (this=0x7fff64b54fc0) at ../../base/message_loop/message_loop.cc:576
#41 0x00007f18f49f5a2f in base::MessagePumpDefault::Run (this=0x2e849da6a140, delegate=0x7fff64b54fc0) at ../../base/message_loop/message_pump_default.cc:32
#42 0x00007f18f49e5c4a in base::MessageLoop::RunHandler (this=0x7fff64b54fc0) at ../../base/message_loop/message_loop.cc:400
#43 0x00007f18f4a3e92c in base::RunLoop::Run (this=0x7fff64b54b70) at ../../base/run_loop.cc:49
#44 0x00007f18f49e52f8 in base::MessageLoop::Run (this=0x7fff64b54fc0) at ../../base/message_loop/message_loop.cc:293
#45 0x00007f18ea55da21 in content::GpuMain (parameters=...) at ../../content/gpu/gpu_main.cc:356
#46 0x00007f18e99d5101 in content::RunNamedProcessTypeMain (process_type="gpu-process", main_function_params=..., delegate=0x7fff64b55790) at ../../content/app/content_main_runner.cc:416
#47 0x00007f18e99d676d in content::ContentMainRunnerImpl::Run (this=0x2e849da6ae30) at ../../content/app/content_main_runner.cc:771
#48 0x00007f18e99d450f in content::ContentMain (params=...) at ../../content/app/content_main.cc:19
#49 0x00000000004546bf in main (argc=9, argv=0x7fff64b558c8) at ../../xwalk/runtime/app/xwalk_main.cc:40
kalyankondapally commented 10 years ago

@rakuco out of curiosity is this with xdg_shell support enabled ? I tried content_shell and chrome (wayland 1.5, with xdg_shell disabled in oz-wl), both work fine.

kalyankondapally commented 10 years ago

K, I can replicate this crash with xdg_shell support enabled.

kalyankondapally commented 10 years ago

The issue is we are using xdg_protocol version 1.4 when using wayland 1.5 too. This commit updates the xdg_protocol in Ozone Wayland to 1.5 https://github.com/01org/ozone-wayland/commit/beb4f7f5dc693d509ac815185db54a48bbf4b3d4. Still, their are rendering issues, I think it's best if @Tarnyko can have a look here

rakuco commented 10 years ago

I'm not building with XDG Shell support enabled here.

rakuco commented 10 years ago

After updating Milestone-Summer to a68f96a I still get crashes:

#0  0x00007f0188d8f407 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007f0188d907e8 in __GI_abort () at abort.c:89
#2  0x00007f019645841d in base::debug::(anonymous namespace)::DebugBreak () at ../../base/debug/debugger_posix.cc:217
#3  0x00007f0196458429 in base::debug::BreakDebugger () at ../../base/debug/debugger_posix.cc:241
#4  0x00007f01964d7dae in logging::LogMessage::~LogMessage (this=0x7fff308d3750, __in_chrg=<optimized out>) at ../../base/logging.cc:644
#5  0x00007f018c30ec25 in content::SoftwareOutputDeviceOzone::SoftwareOutputDeviceOzone (this=0x2a97b8b8020, compositor=0x2a97b6279c0) at ../../content/browser/compositor/software_output_device_ozone.cc:20
#6  0x00007f018c2fa1b1 in content::CreateSoftwareOutputDevice (compositor=0x2a97b6279c0) at ../../content/browser/compositor/gpu_process_transport_factory.cc:108
#7  0x00007f018c2fac8b in content::GpuProcessTransportFactory::CreateOutputSurface (this=0x2a97b574820, compositor=0x2a97b6279c0, software_fallback=false) at ../../content/browser/compositor/gpu_process_transport_factory.cc:209
#8  0x00007f0194df6d31 in ui::Compositor::CreateOutputSurface (this=0x2a97b6279c0, fallback=false) at ../../ui/compositor/compositor.cc:302
#9  0x00007f01980cf0c0 in cc::LayerTreeHost::CreateOutputSurface (this=0x2a97b62f420) at ../../cc/trees/layer_tree_host.cc:387
#10 0x00007f0198135d98 in cc::SingleThreadProxy::CreateAndInitializeOutputSurface (this=0x2a97b589a40) at ../../cc/trees/single_thread_proxy.cc:94
#11 0x00007f01980d0a86 in cc::LayerTreeHost::Composite (this=0x2a97b62f420, frame_begin_time=...) at ../../cc/trees/layer_tree_host.cc:681
#12 0x00007f0194df682f in ui::Compositor::Draw (this=0x2a97b6279c0) at ../../ui/compositor/compositor.cc:226
#13 0x00007f0194dfd8f5 in base::internal::RunnableAdapter<void (ui::Compositor::*)()>::Run (this=0x7fff308d46c0, object=0x2a97b6279c0) at ../../base/bind_internal.h:134
#14 0x00007f0194dfc697 in base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (ui::Compositor::*)()>, void (base::WeakPtr<ui::Compositor> const&)>::MakeItSo(base::internal::RunnableAdapter<void (ui::Compositor::*)()>, base::WeakPtr<ui::Compositor> const&) (runnable=..., weak_ptr=...) at ../../base/bind_internal.h:882
#15 0x00007f0194dfb91e in base::internal::Invoker<1, base::internal::BindState<base::internal::RunnableAdapter<void (ui::Compositor::*)()>, void (ui::Compositor*), void (base::WeakPtr<ui::Compositor>)>, void (ui::Compositor*)>::Run(base::internal::BindStateBase*) (base=0x2a97be35100) at ../../base/bind_internal.h:1169
#16 0x00007f0196446754 in base::Callback<void ()>::Run() const (this=0x7fff308d49e8) at ../../base/callback.h:401
#17 0x00007f01964f9177 in base::MessageLoop::RunTask (this=0x2a97b2e3fe0, pending_task=...) at ../../base/message_loop/message_loop.cc:450
#18 0x00007f01964f92b2 in base::MessageLoop::DeferOrRunPendingTask (this=0x2a97b2e3fe0, pending_task=...) at ../../base/message_loop/message_loop.cc:462
#19 0x00007f01964f9802 in base::MessageLoop::DoWork (this=0x2a97b2e3fe0) at ../../base/message_loop/message_loop.cc:576
#20 0x00007f0196423b62 in base::MessagePumpLibevent::Run (this=0x2a97b4bfa40, delegate=0x2a97b2e3fe0) at ../../base/message_loop/message_pump_libevent.cc:232
#21 0x00007f01964f8c4a in base::MessageLoop::RunHandler (this=0x2a97b2e3fe0) at ../../base/message_loop/message_loop.cc:400
#22 0x00007f019655192c in base::RunLoop::Run (this=0x7fff308d4cc0) at ../../base/run_loop.cc:49
#23 0x00007f018b559493 in content::BrowserMainLoop::MainMessageLoopRun (this=0x2a97b431660) at ../../content/browser/browser_main_loop.cc:1103
#24 0x00007f018b556b30 in content::BrowserMainLoop::RunMainMessageLoopParts (this=0x2a97b431660) at ../../content/browser/browser_main_loop.cc:709
#25 0x00007f018b55f7b4 in content::BrowserMainRunnerImpl::Run (this=0x2a97b4381a0) at ../../content/browser/browser_main_runner.cc:118
#26 0x00007f018b552e78 in content::BrowserMain (parameters=...) at ../../content/browser/browser_main.cc:26
#27 0x00007f018b4e8101 in content::RunNamedProcessTypeMain (process_type="", main_function_params=..., delegate=0x7fff308d5810) at ../../content/app/content_main_runner.cc:416
#28 0x00007f018b4e976d in content::ContentMainRunnerImpl::Run (this=0x2a97b44fe30) at ../../content/app/content_main_runner.cc:771
#29 0x00007f018b4e750f in content::ContentMain (params=...) at ../../content/app/content_main.cc:19
#30 0x00000000004546bf in main (argc=2, argv=0x7fff308d5948) at ../../xwalk/runtime/app/xwalk_main.cc:40
tiagovignatti commented 10 years ago

@rakuco this error is due GPU process not being able to start correctly and the renderer then crashes non-gracefully on the Software Output fallback (which Ozone-Wayland doesn't support).

Can you attach gdb in the GPU process to track what's the root problem please? Use the following for that: https://lists.crosswalk-project.org/pipermail/crosswalk-dev/2014-July/001738.html

kalyankondapally commented 10 years ago

@rakuco Can you also check if you are able to run wayland egl demos on your system.

rakuco commented 10 years ago

@rakuco Can you also check if you are able to run wayland egl demos on your system.

wayland-simple-egl works fine with the following output:

libEGL warning: failed to create a pipe screen for i965
libEGL warning: failed to create DRM screen
has EGL_EXT_buffer_age and EGL_EXT_swap_buffers_with_damage
rakuco commented 10 years ago

@rakuco this error is due GPU process not being able to start correctly and the renderer then crashes non-gracefully on the Software Output fallback (which Ozone-Wayland doesn't support).

Right, it looks like it's crashing in WaylandCursorData::WaylandCursorData()'s DCHECK(cursor_theme_). And wl_cursor_theme_load() fails because its call to shm_pool_create() does not work due to the seccomp BPF sandbox. Everything seems to work fine if I either disable sandbox completely or pass --disable-seccomp-filter-sandbox.

kalyankondapally commented 10 years ago

hmm k, that explains. Sorry, I should have asked you the launch command. we have this issue open for sandbox support https://github.com/01org/ozone-wayland/issues/117 We need to disable sandbox for now and see what needs to be done to fix #117. Eventhough we mention the launch command in README, I think we should also add a small note about this. I am closing this now