Bug 464274 - Kalendar crashes on startup
Summary: Kalendar crashes on startup
Status: RESOLVED FIXED
Alias: None
Product: Merkuro
Classification: Applications
Component: general (show other bugs)
Version: 22.12.1
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Claudio Cambra
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-01-14 13:42 UTC by Natalie Clarius
Modified: 2023-01-14 17:37 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 22.12.2


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Natalie Clarius 2023-01-14 13:42:53 UTC
Application: kalendar (22.12.1)

Qt Version: 5.15.8
Frameworks Version: 5.101.0
Operating System: Linux 6.1.4-arch1-1 x86_64
Windowing System: X11
Distribution: "Arch Linux"
DrKonqi: 5.26.5 [KCrashBackend]

-- Information about the crash:
The application crashes on startup.

Freshly installed, nothing configured in Kalendar. But I have used Akonadi before.

The crash can be reproduced every time.

-- Backtrace:
Application: Kalendar (kalendar), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  Akonadi::IncidenceChanger::history() const (this=0x0) at /usr/include/c++/12.2.0/bits/unique_ptr.h:191
#7  0x0000555670808da8 in CalendarManager::undoRedoData() (this=0x5556708b60e0 <_ZZN12_GLOBAL__N_135Q_QGS_calendarManagerGlobalInstance13innerFunctionEvE6holder.lto_priv.0>) at /usr/src/debug/kalendar/kalendar-22.12.1/src/calendarmanager.cpp:398
#8  CalendarManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x5556708b60e0 <_ZZN12_GLOBAL__N_135Q_QGS_calendarManagerGlobalInstance13innerFunctionEvE6holder.lto_priv.0>, _c=<optimized out>, _id=<optimized out>, _a=0x7ffef5cbe570) at /usr/src/debug/kalendar/build/src/kalendar_autogen/EWIEGA46WW/moc_calendarmanager.cpp:362
#9  0x00007fbfc3d72e4e in QQmlPropertyData::readProperty(QObject*, void*) const (property=<optimized out>, target=0x5556708b60e0 <_ZZN12_GLOBAL__N_135Q_QGS_calendarManagerGlobalInstance13innerFunctionEvE6holder.lto_priv.0>, this=0x555672fc3068) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../../qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:373
#10 loadProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData const&) (v4=0x555672c74ba0, object=0x5556708b60e0 <_ZZN12_GLOBAL__N_135Q_QGS_calendarManagerGlobalInstance13innerFunctionEvE6holder.lto_priv.0>, property=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:204
#11 0x00007fbfc3ea1727 in QV4::QObjectWrapper::lookupGetterImpl<QV4::QQmlTypeWrapper::lookupSingletonProperty(QV4::Lookup*, QV4::ExecutionEngine*, const QV4::Value&)::<lambda()> > (useOriginalProperty=true, revertLookup=..., object=<optimized out>, engine=0x555672c74ba0, lookup=0x5556730a5060) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../../qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper_p.h:262
#12 QV4::QQmlTypeWrapper::lookupSingletonProperty(QV4::Lookup*, QV4::ExecutionEngine*, QV4::Value const&) (l=0x5556730a5060, engine=0x555672c74ba0, object=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmltypewrapper.cpp:546
#13 0x00007fbfc3ea1b00 in QV4::QQmlTypeWrapper::virtualResolveLookupGetter(QV4::Object const*, QV4::ExecutionEngine*, QV4::Lookup*) (object=0x7fbfb4101510, engine=0x555672c74ba0, lookup=0x5556730a5060) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmltypewrapper.cpp:466
#14 0x00007fbfc3d8e95a in QV4::Moth::VME::interpret(QV4::CppStackFrame*, QV4::ExecutionEngine*, char const*) (frame=0x7ffef5cbe9b0, engine=0x555672c74ba0, code=0x7fbf78a7715d ";\364") at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:641
#15 0x00007fbfc3d94804 in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) (frame=<optimized out>, engine=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:466
#16 0x00007fbfc3d36c36 in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>, context=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:69
#17 0x00007fbfc3e971ad in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) (this=this@entry=0x555672e4b690, callData=0x7fbfb41014d0, isUndefined=isUndefined@entry=0x7ffef5cbeb77) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:212
#18 0x00007fbfc3e97729 in QQmlBinding::evaluate(bool*) (this=this@entry=0x555672e4b690, isUndefined=isUndefined@entry=0x7ffef5cbeb77) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:218
#19 0x00007fbfc3e9785a in QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) (this=0x555672e4b690, watcher=..., flags=..., scope=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:254
#20 0x00007fbfc3e98f73 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) (this=0x555672e4b690, flags=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:194
#21 0x00007fbfc3ea42fd in QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) (this=0x555672c86ef0, interrupt=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlobjectcreator.cpp:1393
#22 0x00007fbfc3e4914d in QQmlComponentPrivate::complete(QQmlEnginePrivate*, QQmlComponentPrivate::ConstructionState*) (state=0x555672c741d8, enginePriv=0x555672bf13c0) at /usr/include/qt/QtCore/qscopedpointer.h:116
#23 QQmlComponentPrivate::complete(QQmlEnginePrivate*, QQmlComponentPrivate::ConstructionState*) (enginePriv=0x555672bf13c0, state=state@entry=0x555672c741d8) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:996
#24 0x00007fbfc3e4931b in QQmlComponentPrivate::completeCreate() (this=0x555672c74150) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1092
#25 0x00007fbfc3e493d3 in QQmlComponent::completeCreate() (this=0x555672c86600) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1075
#26 QQmlComponent::create(QQmlContext*) (this=0x555672c86600, context=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:825
#27 0x00007fbfc3e9f84a in QQmlApplicationEnginePrivate::finishLoad(QQmlComponent*) (this=0x555672bf13c0, c=0x555672c86600) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlapplicationengine.cpp:148
#28 0x00007fbfc3e9fceb in QQmlApplicationEnginePrivate::startLoad(QUrl const&, QByteArray const&, bool) (this=<optimized out>, url=<optimized out>, data=..., dataFlag=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlapplicationengine.cpp:132
#29 0x00007fbfc3e9fda2 in QQmlApplicationEngine::load(QUrl const&) (this=this@entry=0x7ffef5cbefe0, url=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlapplicationengine.cpp:287
#30 0x0000555670801bd7 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kalendar/kalendar-22.12.1/src/main.cpp:151
[Inferior 1 (process 168221) detached]

Reported using DrKonqi
Comment 1 Natalie Clarius 2023-01-14 13:51:32 UTC
It appears to be an Akonadi problem, as I'm getting a crash in KOrganizer too, and Akonadi console gives me a "Failed to connect to database" error.
Comment 2 Bug Janitor Service 2023-01-14 14:16:45 UTC
A possibly relevant merge request was started @ https://invent.kde.org/pim/kalendar/-/merge_requests/294
Comment 3 Carl Schwan 2023-01-14 14:18:50 UTC
Very probably a Akonadi problem. I created https://invent.kde.org/pim/kalendar/-/merge_requests/294 that will hide the effects but probably doesn't fix the cause.

Can you try running akonadictl fsck && akonadictl restart ?
Comment 4 Carl Schwan 2023-01-14 14:19:57 UTC
Git commit 0e0371fdcc0de00e478d441c1389c1950b7286c4 by Carl Schwan.
Committed on 14/01/2023 at 14:19.
Pushed by carlschwan into branch 'cherry-pick-6858a2b1'.

Fix crash on startup when m_changer is null

For some reasons m_changer can be null here. This is probably only
hiding the effects and doesn't fix the cause unfortunately.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>


(cherry picked from commit 6858a2b1c7188cda288efcdaa772c7cbb05b9282)

M  +1    -1    src/calendarmanager.cpp

https://invent.kde.org/pim/kalendar/commit/0e0371fdcc0de00e478d441c1389c1950b7286c4
Comment 5 Natalie Clarius 2023-01-14 14:26:02 UTC
> akonadictl fsck && akonadictl restart 
Akonadi Server is not running, check will not run
Akonadi is not running.
Comment 6 Natalie Clarius 2023-01-14 14:26:56 UTC
Akonadi console also tells me that the service is not running. Not sure what kind of service that is. It's not listed in the background services system settings.
Comment 7 Natalie Clarius 2023-01-14 14:28:08 UTC
When running Kalendar from the konsole:
 kalendar                                                                                                   ❯natalie
org.kde.pim.akonadicore: Could not start/stop Akonadi!
QML debugging is enabled. Only use this in a safe environment.
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
org.kde.pim.akonadiserver: Starting up the Akonadi Server...
22 -- exe=/usr/bin/kalendar
13 -- platform=xcb
11 -- display=:0
17 -- appname=kalendar
17 -- apppath=/usr/bin
10 -- signal=11
11 -- pid=180780
19 -- appversion=22.12.1
21 -- programname=Kalendar
31 -- bugaddress=submit@bugs.kde.org
12 -- startupid=0
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = kalendar path = /usr/bin pid = 180780
KCrash: Arguments: /usr/bin/kalendar 
KCrash: Attempting to start /usr/lib/drkonqi
kf.notifications: Could not notify  "applicationcrash" by taskbar, notification has no associated widget
zsh: suspended (signal)  kalendar

 org.kde.pim.akonadiserver: database server stopped unexpectedly                                            ❯natalie
org.kde.pim.akonadiserver: Database process exited unexpectedly during initial connection!
org.kde.pim.akonadiserver: executable: "/usr/bin/mysqld"
org.kde.pim.akonadiserver: arguments: ("--defaults-file=/home/natalie/.local/share/akonadi/mysql.conf", "--datadir=/home/natalie/.local/share/akonadi/db_data/", "--socket=/run/user/1000/akonadi/mysql.socket", "--pid-file=/run/user/1000/akonadi/mysql.pid")
org.kde.pim.akonadiserver: stdout: ""
org.kde.pim.akonadiserver: stderr: "2023-01-14 15:27:21 0 [Note] /usr/bin/mysqld (server 10.9.4-MariaDB) starting as process 180821 ...\n"
org.kde.pim.akonadiserver: exit code: 1
org.kde.pim.akonadiserver: process error: "Unknown error"
org.kde.pim.akonadiserver: Shutting down AkonadiServer...
org.kde.pim.akonadicontrol: Application '/usr/bin/akonadiserver' exited normally...
Comment 8 Carl Schwan 2023-01-14 14:31:44 UTC
I'll recommend removing the complete database from here and start with a fresh install of akonadi. All the files should be located here: /home/natalie/.local/share/akonadi
Comment 9 Carl Schwan 2023-01-14 17:30:52 UTC
Git commit 6858a2b1c7188cda288efcdaa772c7cbb05b9282 by Carl Schwan.
Committed on 14/01/2023 at 14:13.
Pushed by carlschwan into branch 'master'.

Fix crash on startup when m_changer is null

For some reasons m_changer can be null here. This is probably only
hiding the effects and doesn't fix the cause unfortunately.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>

M  +1    -1    src/calendarmanager.cpp

https://invent.kde.org/pim/kalendar/commit/6858a2b1c7188cda288efcdaa772c7cbb05b9282
Comment 10 Natalie Clarius 2023-01-14 17:37:15 UTC
I was going to test your patch but unfortunately ran out of disk space building all the dependencies :/

Trashing the Akonadi folder fixed it.