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

Black Screen on Login / Crash on Arch/Manjaro (Qt 5.15.1) (EventCalendar v68 and below) #154

Open
rapiz1 opened this issue Sep 14, 2020 · 16 comments

Comments

@rapiz1
Copy link

rapiz1 commented Sep 14, 2020

I don't know what version to provide. But it's necessary to bring up an issue anyway. In AUR someone also mention it.

@Zren
Copy link
Owner

Zren commented Sep 14, 2020

I need the segfault logs, not the logs from when it was running fine. Unfortunately the DrKonqi is in the system tray, which you can't access when plasmashell has crashed.

Krunner should still work even if plasmashell crashes, so just press Alt+F2 during the black screen. Then run plasmawindowed org.kde.plasma.systemtray to show the system tray in an independant window.

Copy the stack trace in the developer info tab (don't submit it to kde).

You should also be able to open firefox with krunner too.

@Zren
Copy link
Owner

Zren commented Sep 15, 2020

2020-09-14___20-46-00

Gonna need to be more specific. I installed plasma5-applets-eventcalendar via AUR. Looks like KHolidays is displayed. Haven't logged into Google Calendar yet.

@StepinSilence
Copy link

StepinSilence commented Sep 15, 2020

It seems that only v69 release is compatible with qt-declarative 5.15.1. I tried old v66, v67, and v68, all of them break plasmashell.

@Zren
Copy link
Owner

Zren commented Sep 15, 2020

Then it's either: v68...v69

Will check both this afternoon. Thanks for figuring out that it's probably people using an older version of the widget.

Does AUR not automatically update? Or are people not uninstalling eventcalendar in ~/.local/share/plasma/plasmoids/ before installing the AUR package to /usr/share/plasma/plasmoids/?

@Zren Zren changed the title Crash on arch Crash on arch (Qt 5.15.1) Sep 15, 2020
@Zren
Copy link
Owner

Zren commented Sep 15, 2020

# First uninstall v69
kpackagetool5 --type=Plasma/Applet --remove org.kde.plasma.eventcalendar # ~/.local/share/plasma/plasmoids/...
pacman -R plasma5-applets-eventcalandar # /usr/share/plasma/plasmoids/...

# Then installed v68 from git
git clone https://github.com/Zren/plasma-applet-eventcalendar
cd plasma-applet-eventcalendar
git checkout v68
kpackagetool5 --type=Plasma/Applet --install package/
kstart5 -- plasmashell --replace
# crashed!

Now to isolate the commit that fixes the bug with --upgrade:

git checkout 83e08ab; kpackagetool5 --type=Plasma/Applet --upgrade package/; kstart5 -- plasmashell --replace

Note that 83e08ab works, but the commit before and after crash plasma. Also note to self, I forked a v68release branch for the v68 so that the major changes would all go in v69.

@Akrai
Copy link

Akrai commented Sep 15, 2020

Having this applet installed from AUR should get updated in the user side, right?

@Zren
Copy link
Owner

Zren commented Sep 15, 2020

I don't use Arch/AUR, so I don't know if it updates manually or when pacman updates.


Arch Linux / Manjaro

To check if you have an older version of eventcalendar installed, run:

grep Version ~/.local/share/plasma/plasmoids/org.kde.plasma.eventcalendar/metadata.desktop /usr/share/plasma/plasmoids/org.kde.plasma.eventcalendar/metadata.desktop

If you see:

/home/zren/.local/share/plasma/plasmoids/org.kde.plasma.eventcalendar/metadata.desktop:X-KDE-PluginInfo-Version=66
/usr/share/plasma/plasmoids/org.kde.plasma.eventcalendar/metadata.desktop:X-KDE-PluginInfo-Version=69

Then you have 2 versions installed. The ~/.local/share with v66 (for the local user) overrides the /usr/share v69 install (for all users).

To enter this bug, you would have installed v66 from the Add Widgets > Download New Widgets. It installs to ~/.local/share/ as you never entered your password to install it, and it only installed to the logged in user.

Later on, the user may have noticed plasma5-applets-eventcalendar on the AUR and installed it as sudo/root. That installed it for all users.

Since the user never uninstalled the ~/.local/share version, Plasma kept using the older v66.

To fix, delete the ~/.local/share/plasma/plasmoids/org.kde.plasma.eventcalendar folder to uninstall that.


KDE Neon

For users in other distros, the Discover updater used to update widgets in ~/.local/share, but it seems buggy atm (fixed in Plasma 5.20 apparently). So make sure you have updated to v69.

grep Version ~/.local/share/plasma/plasmoids/org.kde.plasma.eventcalendar/metadata.desktop

To fix, delete the ~/.local/share/plasma/plasmoids/org.kde.plasma.eventcalendar folder to uninstall the old version, then reinstall it via Add Widgets > Download New Widgets.

@cgarz
Copy link

cgarz commented Sep 16, 2020

If only I had came here first. I ended up coming to the same solution after 2 hours of messing about 😆

I had an old version installed and it crashed plasmashell after an update. I ended up removing my plasma-org.kde.plasma.desktop-appletsrc config and starting from scratch. But even after installing the AUR package it would still crash.

Eventually I found that I had to manually remove the local folder as described above. For some reason KDE doesn't seem to be able to do it from the widget gui menu. IIRC I also had similar problems trying to install it from there in the first place.

Does AUR not automatically update?

There is probably a way to have it auto update but from my experience on Arch even the normal non AUR updates are manual by default.

And thank you so much for making this widget! It is vastly superior to all other clocks I have tried. 😃

@Storm-Engineer
Copy link

Storm-Engineer commented Sep 28, 2020

I was struggling with this crash for a while until I finally found it may be related to eventcalendar, and then Googling that led me here.

I only had the ~/.local/share install, so I deleted the folder as instructed, and installed plasma5-applets-eventcalendar from AUR and that solved it indeed. Thank you @Zren !

Does AUR not automatically update?

That depends. AUR is stuff not officially supported, so it's a case of "you are on your own, it's your responsibility to keep stuff in order." Some people do everything manually, while others, like me, use a so called "AUR helper" which is like a package manager for AUR, so when I run a system update it updates everything, AUR included.

I think the issue is that lot of people, me included, uses or used the "Add Widgets > Download New Widgets" route to get plasmoids.

@jghodd
Copy link

jghodd commented Sep 29, 2020

I'm not sure if I'd be butting in here, or adding to the topic. "Crash on arch (Qt 5.15.1)" fits my issue, which is also connected to qt5-declarative.

In my case, it's not EventCalandar, but the much more basic PanelSpacer. In short, setting a panel spacer to be flexible vs. static, crashes plasmashell, and the segfault is coming from libQt5Qml 5.15.1. The twist is that this issue only manifests in archlinux32, and not at all with the 64-bit archlinux.

For example, this code works on both platforms:

panelSpacer = panel.addWidget("org.kde.plasma.panelspacer");
panelSpacer.writeConfig("expanding", "false");
panelSpacer.writeConfig("length", 32);

This works only on the 64-bit platform, but causes a plasmashell crash on the 32-bit platform:

panelSpacer = panel.addWidget("org.kde.plasma.panelspacer");

Same with this this - works on 64-bit arch, crashes plasmashell on 32-bit arch32:

panelSpacer = panel.addWidget("org.kde.plasma.panelspacer");
panelSpacer.writeConfig("expanding", "true");

I'm attaching the stack strace which poiints directly to QV4::QObjectWrapper::getProperty

It'd be great to get some feedback on this, even if you'd prefer I open this as a separate ticket.

plasmashell-stacktrace.txt

@oeramo
Copy link

oeramo commented Oct 2, 2020

Hello, adding to this to report that v69 of the applet still crashes latte-dock. I run Manjaro KDE and I have just updated Qt to 5.15.1, I had the eventcalendar widget on a latte dock instead of a normal plasma panel so that is what crashed upon rebooting. I have deleted the local version from Discover and installed v69 from the AUR, now the behaviour with regular plasma panels is as expected but if I add the widget to my latte dock then that is not able to restart (manually or via reboot).

@Zren
Copy link
Owner

Zren commented Oct 3, 2020

https://www.reddit.com/r/kde/comments/j48t0f/today_in_my_kde_manjaro_after_an_update_and_a/

Has a screenshot with a stacktrace. It seems the plasmashell segfault is printed to journalctl -b0 by the systemd-coredump process.

It appears to be some bug in GridLayout, which makes sense as when I bisected my commits earlier, this commit might have fixed things. It made no sense why it fixed it though. Added the ?w=1 to ignore whitespace changes.

I still need to do some testing to reproduce that this fixes it, as I remember being uncertain that was the right commit when I first tested in an Arch VM.

@Zren
Copy link
Owner

Zren commented Oct 3, 2020

Ooooh, looks like coredumpctl -1 info is what you're suppose to use to find the last segfault. journalctl -b0 can display them, but I was wondering why journalctl -b0 _COMM=systemd-coredump was not working to filter just them.

It looks like the implicitSize of the GridLayout has a deep stack in the popup. Possible infinite loop? or just a deep nest of visual elements? Once I removed the useless ColumnLayout and the pointless Layout.fillWidth + Layout.fillHeight it began to work for users in v69.

// PopupView.qml (FullRepresentation)
MouseArea {
    ColumnLayout {
        anchors.fill: parent
        ColumnLayout {
            Layout.fillWidth: true
            Layout.fillHeight: true
            
            MeteogramView {}
            TimerView {}
            MonthView {}
            AgendaView {}
        }
    }
}
Oct 03 14:56:21 chris-desktop systemd-coredump[174599]: [🡕] Process 174573 (plasmoidviewer) of user 1000 dumped core.

Stack trace of thread 174573:
#0  0x00007f681498f758 n/a (libQt5Gui.so.5 + 0x49d758)
#1  0x00007f68149930ce _ZNK17QGridLayoutEngine22ensureColumnAndRowDataEP18QGridLayoutRowDataP14QGridLayoutBoxPKdS5_N2Qt11OrientationEPK24QAbstractLayoutStyleInfo (libQt5Gui.so.5 + 0x4a10ce)
#2  0x00007f68149934d6 _ZNK17QGridLayoutEngine8sizeHintEN2Qt8SizeHintERK6QSizeFPK24QAbstractLayoutStyleInfo (libQt5Gui.so.5 + 0x4a14d6)
#3  0x00007f67f8232d5e n/a (libqquicklayoutsplugin.so + 0x10d5e)
#4  0x00007f67f82306ba n/a (libqquicklayoutsplugin.so + 0xe6ba)
#5  0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#6  0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#7  0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#8  0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#9  0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#10 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#11 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#12 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#13 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#14 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#15 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#16 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#17 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#18 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#19 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#20 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#21 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#22 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#23 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#24 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#25 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#26 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#27 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#28 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#29 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#30 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#31 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#32 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#33 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#34 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#35 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#36 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#37 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#38 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#39 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#40 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#41 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#42 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#43 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#44 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#45 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#46 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#47 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#48 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#49 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#50 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#51 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#52 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#53 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#54 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#55 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#56 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#57 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#58 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#59 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)
#60 0x00007f67f823072f n/a (libqquicklayoutsplugin.so + 0xe72f)
#61 0x00007f67f82352b6 n/a (libqquicklayoutsplugin.so + 0x132b6)
#62 0x00007f67f8232a22 n/a (libqquicklayoutsplugin.so + 0x10a22)
#63 0x00007f6815a9b4f1 _ZN10QQuickItem15setImplicitSizeEdd (libQt5Quick.so.5 + 0x23e4f1)

@Zren
Copy link
Owner

Zren commented Oct 3, 2020

@itsmeciao I can seem to reproduce the latte-dock crash with v69. I'm using Manjaro's community/latte-dock 0.9.11-1.

2020-10-03___16-40-52

Can you run the following?

coredumpctl info latte-dock > ~/Desktop/latte-dock-segfaults.log

@Zren Zren changed the title Crash on arch (Qt 5.15.1) Black Screen on Login / Crash on Arch/Manjaro (Qt 5.15.1) Oct 3, 2020
@Zren Zren pinned this issue Oct 3, 2020
@Zren Zren changed the title Black Screen on Login / Crash on Arch/Manjaro (Qt 5.15.1) Black Screen on Login / Crash on Arch/Manjaro (Qt 5.15.1) (EventCalendar v68 and below) Oct 3, 2020
@oeramo
Copy link

oeramo commented Oct 9, 2020

Hello @Zren, sorry for some reason I didn't get notified when you mentioned me, I just casually found your comment while coming to check if there were any updates.

@itsmeciao I can seem to reproduce the latte-dock crash with v69. I'm using Manjaro's community/latte-dock 0.9.11-1.

I have just tried readding eventcalendar to my latte docks and it looks like I cannot reproduce the crash anymore either. Which is strange because, other than removing eventcalendar from the docks and placing another digital clock widget, I have not made any changes to my system these past days, and Manjaro hasn't received updates since. So now I have just readded the widget to both screen's docks, applied different settings to them and I will try to play around with them a little and see if I can spot anything unusual again.

Thanks and sorry again that I did not see your comment.

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

8 participants