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