We had to pull this, unfortunately there's a seldom, but still, deadlock
when using this approach:


Thread 9 (Thread 0xaebff450 (LWP 15260)):
#0  0xb603f554 in __libc_do_syscall () from 
/lib/arm-linux-gnueabihf/libpthread.so.0
#1  0xb603b192 in pthread_cond_wait@@GLIBC_2.4 () from 
/lib/arm-linux-gnueabihf/libpthread.so.0
#2  0xb63b3794 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5
#3  0xb63aed2e in QSemaphore::acquire(int) () from 
/usr/lib/arm-linux-gnueabihf/libQt5Core.so.5
#4  0xb6525436 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5
#5  0xb4001384 in 
MirPlacementStrategy::sessionAboutToCreateSurface(mir::scene::Session const&, 
QSize&) ()
   from /usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqpa-mirserver.so
#6  0xb3ff239e in MirPlacementStrategy::place(mir::scene::Session const&, 
mir::scene::SurfaceCreationParameters const&) () from 
/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqpa-mirserver.so
#7  0xb3e96f3e in 
mir::scene::SurfaceController::add_surface(mir::scene::SurfaceCreationParameters
 const&, mir::scene::Session*) () from 
/usr/lib/arm-linux-gnueabihf/libmirserver.so.24
#8  0xb3e81646 in 
mir::scene::ApplicationSession::create_surface(mir::scene::SurfaceCreationParameters
 const&)
    () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.24
#9  0xb3eb2a5c in 
mir::frontend::SessionMediator::create_surface(google::protobuf::RpcController*,
 mir::protobuf::SurfaceParameters const*, mir::protobuf::Surface*, 
google::protobuf::Closure*) ()
   from /usr/lib/arm-linux-gnueabihf/libmirserver.so.24
#10 0xb3eb6228 in void 
mir::frontend::detail::invoke<mir::frontend::detail::ProtobufMessageProcessor, 
mir::frontend::detail::DisplayServer, mir::protobuf::DisplayServer, 
mir::protobuf::SurfaceParameters, 
mir::protobuf::Surface>(mir::frontend::detail::ProtobufMessageProcessor*, 
mir::frontend::detail::DisplayServer*, void 
(mir::protobuf::DisplayServer::*)(google::protobuf::RpcController*, 
mir::protobuf::SurfaceParameters const*, mir::protobuf::Surface*, 
google::protobuf::Closure*), mir::frontend::detail::Invocation const&) ()
   from /usr/lib/arm-linux-gnueabihf/libmirserver.so.24
#11 0xb3eb4f6a in 
mir::frontend::detail::ProtobufMessageProcessor::dispatch(mir::frontend::detail::Invocation
 const&) () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.24
#12 0xb3ebb44c in 
mir::frontend::detail::SocketConnection::on_new_message(boost::system::error_code
 const&) ()
   from /usr/lib/arm-linux-gnueabihf/libmirserver.so.24
#13 0xb3ebb732 in 
mir::frontend::detail::SocketConnection::on_read_size(boost::system::error_code 
const&) ()
   from /usr/lib/arm-linux-gnueabihf/libmirserver.so.24
#14 0xb3ebd75a in 
boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, 
boost::asio::detail::read_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol,
 boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, 
boost::asio::mutable_buffers_1, boost::asio::detail::transfer_exactly_t, 
std::function<void (boost::system::error_code const&, unsigned int)> > 
>::do_complete(boost::asio::detail::task_io_service*, 
boost::asio::detail::task_io_service_operation*, boost::system::error_code 
const&, unsigned int)
    () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.24
#15 0xb3e697c6 in 
boost::asio::detail::task_io_service::run(boost::system::error_code&) ()
   from /usr/lib/arm-linux-gnueabihf/libmirserver.so.24
#16 0xb3eb861c in ?? () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.24
#17 0xb630c360 in ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#18 0xb6037f98 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#19 0xb61fe7cc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to unity8 in Ubuntu.
https://bugs.launchpad.net/bugs/1352845

Title:
  Initial surface size not decided by shell, but guessed by qtmir

Status in Qt integration with the Mir display server:
  In Progress
Status in “qtmir” package in Ubuntu:
  New
Status in “unity-api” package in Ubuntu:
  New
Status in “unity8” package in Ubuntu:
  New

Bug description:
  When a client connects to Mir and requests a surface with particular
  geometry, qtmir overrides the requested initial geometry with the
  width/height of the display. Once the surface has been drawn to, shell
  finally is notified of the surface and resizes it again.

  These multiple resizes are bad. Shell should decide the initial
  geometry, instead of qtmir guessing it.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qtmir/+bug/1352845/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to