Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shutter SEGFAULTs on Ubuntu Touch on the Pine Phone Pro #17

Open
SumwunDucainest opened this issue Apr 2, 2024 · 1 comment
Open

Shutter SEGFAULTs on Ubuntu Touch on the Pine Phone Pro #17

SumwunDucainest opened this issue Apr 2, 2024 · 1 comment

Comments

@SumwunDucainest
Copy link
Contributor

When starting shutter on Ubuntu Touch on the Pine Phone Pro, the app immediately shuts down.

Upon further inspection, that is because of a SEGFAULT.

We should investigate and fix.

@SumwunDucainest
Copy link
Contributor Author

Using Clickable debugging, I was able to find the root cause:

Thread 1 received signal SIGSEGV, Segmentation fault.
std::__uniq_ptr_impl<libcamera::Extensible::Private, std::default_delete<libcamera::Extensible::Private> >::_M_ptr (this=0x60) at /usr/aarch64-linux-gnu/include/c++/9/bits/unique_ptr.h:154
warning: 154    /usr/aarch64-linux-gnu/include/c++/9/bits/unique_ptr.h: No such file or directory
(gdb)

(gdb) bt
#0  std::__uniq_ptr_impl<libcamera::Extensible::Private, std::default_delete<libcamera::Extensible::Private> >::_M_ptr (this=0x60) at /usr/aarch64-linux-gnu/include/c++/9/bits/unique_ptr.h:154
#1  0x0000fffff7c79b3c in std::unique_ptr<libcamera::Extensible::Private, std::default_delete<libcamera::Extensible::Private> >::get (this=0x60) at /usr/aarch64-linux-gnu/include/c++/9/bits/unique_ptr.h:361
#2  0x0000fffff7c775c0 in libcamera::Extensible::_d<libcamera::Camera::Private> (this=0x60) at ../include/libcamera/base/class.h:102
#3  0x0000fffff7c754a0 in libcamera::Camera::_d<true> (this=0x0) at ../include/libcamera/camera.h:116
#4  0x0000fffff7c72190 in libcamera::Camera::generateConfiguration (this=0x0, roles=...) at ../src/libcamera/camera.cpp:1092
#5  0x0000aaaaaaabd624 in CameraProxy::buildConfiguration(std::initializer_list<libcamera::StreamRole>) ()
#6  0x0000aaaaaaac1590 in CameraProxy::startViewFinder() ()
#7  0x0000aaaaaaaf76c0 in CameraProxy::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
#8  0x0000aaaaaaaf7a44 in CameraProxy::qt_metacall(QMetaObject::Call, int, void**) ()
#9  0x0000fffff5ed0ba0 in ?? () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#10 0x0000fffff5dbe784 in ?? () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#11 0x0000fffff5dc03d8 in ?? () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#12 0x0000fffff5dc1028 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#13 0x0000fffff5ddd5b8 in ?? () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#14 0x0000fffff5ddf3c0 in ?? () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#15 0x0000fffff5d7257c in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#16 0x0000fffff5ef81e0 in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#17 0x0000fffff5e97398 in QQmlBoundSignalExpression::evaluate(void**) () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#18 0x0000fffff5e98568 in ?? () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#19 0x0000fffff5edc42c in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#20 0x0000fffff5e77284 in QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#21 0x0000fffff589a2f4 in QMetaObject::activate(QObject*, int, int, void**) () from target:/lib/aarch64-linux-gnu/libQt5Core.so.5
#22 0x0000fffff5f88fe0 in QQmlTimer::event(QEvent*) () from target:/lib/aarch64-linux-gnu/libQt5Qml.so.5
#23 0x0000fffff586c98c in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from target:/lib/aarch64-linux-gnu/libQt5Core.so.5
#24 0x0000fffff586f8a0 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from target:/lib/aarch64-linux-gnu/libQt5Core.so.5
#25 0x0000fffff58c9990 in ?? () from target:/lib/aarch64-linux-gnu/libQt5Core.so.5
#26 0x0000fffff3ea594c in g_main_context_dispatch () from target:/lib/aarch64-linux-gnu/libglib-2.0.so.0
#27 0x0000fffff3ea5bbc in ?? () from target:/lib/aarch64-linux-gnu/libglib-2.0.so.0
#28 0x0000fffff3ea5c5c in g_main_context_iteration () from target:/lib/aarch64-linux-gnu/libglib-2.0.so.0
#29 0x0000fffff58c8e3c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from target:/lib/aarch64-linux-gnu/libQt5Core.so.5
#30 0x0000fffff586b138 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from target:/lib/aarch64-linux-gnu/libQt5Core.so.5
#31 0x0000fffff587373c in QCoreApplication::exec() () from target:/lib/aarch64-linux-gnu/libQt5Core.so.5

What is happening, is that the m_currentCamera shared_ptr here is a nullptr, which leads to the SEGFAULT.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant