Bug 481543

Summary: Parse error in kwin.upd (run by kconf_update) causing delayed mouse cursor on login
Product: [Plasma] kwin Reporter: Henrik Harmsen <henrik>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: normal Keywords: qt6
Priority: NOR    
Version First Reported In: git master   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Henrik Harmsen 2024-02-19 13:37:03 UTC
SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***


STEPS TO REPRODUCE
1. Install arch and enable kde unstable repo to get plasma 6 rc
2. When logging in, it takes 30s for the mouse to appear
3. 

OBSERVED RESULT
When logging in, it takes 30s for the mouse to appear

EXPECTED RESULT
No delay

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 5.93.0
KDE Frameworks Version: 5.249.0
Qt Version: 6.7.0

ADDITIONAL INFORMATION

After login, I ran the commands below to try to get more information and it is complaining first about a parse error in kwin.upd and then that an update script does not terminate (for kwin.upd). It hangs 30s, not 60s as shown in the output below. I think this is causing the slow login because I can see that when kconf_update terminates, the mouse cursor comes back.

hch@sc:~/.config$ rm kconf_updaterc # to trigger full rebuild

hch@sc:~$ /usr/lib/kf6/kconf_update --debug
Automatically enabled the debug logging category kf.config.kconf_update
kf.config.kconf_update: Checking update-file "/usr/share/kconf_update/ark.upd" for new updates
kf.config.kconf_update: /usr/share/kconf_update/ark.upd defined Version=5 but Version=6 was expected
kf.config.kconf_update: Checking update-file "/usr/share/kconf_update/dolphin_detailsmodesettings.upd" for new updates
kf.config.kconf_update: /usr/share/kconf_update/dolphin_detailsmodesettings.upd defined Version=5 but Version=6 was expected
kf.config.kconf_update: Checking update-file "/usr/share/kconf_update/filepicker.upd" for new updates
kf.config.kconf_update: /usr/share/kconf_update/filepicker.upd defined Version=5 but Version=6 was expected
kf.config.kconf_update: Checking update-file "/usr/share/kconf_update/gtkconfig.upd" for new updates
kf.config.kconf_update: /usr/share/kconf_update/gtkconfig.upd defined Version=5 but Version=6 was expected
kf.config.kconf_update: Checking update-file "/usr/share/kconf_update/konsole.upd" for new updates
kf.config.kconf_update: /usr/share/kconf_update/konsole.upd defined Version=5 but Version=6 was expected
kf.config.kconf_update: Checking update-file "/usr/share/kconf_update/kwin.upd" for new updates
kf.config.kconf_update: "kwin.upd" : Found new update "change-activities-overview-shortcuts"
kf.config.kconf_update: "kwin.upd" : 12 :' "File=kglobalshortcutsrc" ':  Parse error
kf.config.kconf_update: "kwin.upd" : 13 :' "Group=plasmashell,kwin" ':  Parse error
kf.config.kconf_update: "kwin.upd" : Running script "kwin-6.0-overview-activities-shortcuts.py"
kf.config.kconf_update: About to run "/usr/bin/python3"
kf.config.kconf_update: Script contents is:
 "#!/usr/bin/env python3\n# SPDX-FileCopyrightText: 2023 Niccol\xC3\xB2 Venerandi <niccolo.venerandi@kde.org>\n# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL\n\nimport fileinput\n\nfor line in fileinput.input():\n    if line.startswith('next activity'):\n        print(line.replace('Meta+Tab', 'Meta+A'))\n    elif line.startswith('previous activity'):\n        print(line.replace('Meta+Shift+Tab', 'Meta+Shift+A'))\n    elif line.startswith('ShowDesktopGrid'):\n        pass\n    elif line.startswith('Overview'):\n        print('Overview=Meta+W,Meta+W,Toggle Overview')\n        print('Cycle Overview=Meta+Tab,Meta+Tab,Cycle through Overview and Grid View')\n        print('Cycle Overview Opposite=Meta+Shift+Tab,Meta+Shift+Tab,Cycle through Grid View and Overview')\n        print('Grid View=Meta+G,Meta+G,Toggle Grid View')\n    else:\n        print(line)\n"

[  HERE IT HANGS FOR 30 SECONDS ]

kf.config.kconf_update: "kwin.upd" : 14 :' "Script=kwin-6.0-overview-activities-shortcuts.py,python3" ':  update script did not terminate within 60 seconds: "/usr/bin/python3"
QProcess: Destroyed while process ("/usr/bin/python3") is still running.
kf.config.kconf_update: Checking update-file "/usr/share/kconf_update/migrate-calendar-to-plugin-id.upd" for new updates
kf.config.kconf_update: "migrate-calendar-to-plugin-id.upd" : Found new update "migrate-calendar-plugins"
kf.config.kconf_update: "migrate-calendar-to-plugin-id.upd" : Running script "migrate-calendar-to-plugin-id.py"
kf.config.kconf_update: About to run "/usr/share/kconf_update/migrate-calendar-to-plugin-id.py"
kf.config.kconf_update: Script contents is:
 "#!/usr/bin/env python3\n\n# SPDX-FileCopyrightText: 2024 Nicolas Fella <nicolas.fella@gmx.de>\n# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL\n\nimport re\nimport io\nimport subprocess\n\n# removes the full path from calendar plugin entries and only stores the plugin id, e.g.\n# /usr/lib64/qt5/plugins/plasmacalendarplugins/holidaysevents.so -> holidaysevents\n\nproc = subprocess.Popen(\n    [\n        \"qtpaths\",\n        \"--locate-file\",\n        \"ConfigLocation\",\n        \"plasma-org.kde.plasma.desktop-appletsrc\",\n    ],\n    stdout=subprocess.PIPE,\n)\nfor line in io.TextIOWrapper(proc.stdout, encoding=\"utf-8\"):\n    appletsrcPath = line.removesuffix(\"\\n\")\n\nif len(appletsrcPath) == 0 or not appletsrcPath.endswith(\"appletsrc\"):\n    # something is wrong\n    exit()\n\nwith open(appletsrcPath, \"r+\") as appletsrc:\n    inputLines = appletsrc.readlines()\n\n    outputLines = []\n    pattern = re.compile(\"^\\\\/.*\\\\/(.*).so$\")\n\n    for line in inputLines:\n        if not line.startswith(\"enabledCalendarPlugins=\"):\n            outputLines += line\n            continue\n\n        inputPlugins = line.removeprefix(\"enabledCalendarPlugins=\").split(\",\")\n\n        outputPlugins = []\n\n        for plugin in inputPlugins:\n            match = pattern.match(plugin)\n\n            if match:\n                outputPlugins.append(match.group(1))\n            else:\n                outputPlugins += plugin\n\n        outputLines += \"enabledCalendarPlugins=\" + \",\".join(outputPlugins) + \"\\n\"\n\n    appletsrc.truncate(0)\n    appletsrc.seek(0)\n\n    appletsrc.writelines(outputLines)\n"
kf.config.kconf_update: Successfully ran "/usr/share/kconf_update/migrate-calendar-to-plugin-id.py"
kf.config.kconf_update: Checking update-file "/usr/share/kconf_update/okular.upd" for new updates
kf.config.kconf_update: /usr/share/kconf_update/okular.upd defined Version=5 but Version=6 was expected
kf.config.kconf_update: Checking update-file "/usr/share/kconf_update/plasma6.0-remove-dpi-settings.upd" for new updates
kf.config.kconf_update: "plasma6.0-remove-dpi-settings.upd" : Found new update "plasma6.0-remove-dpi-settings"
kf.config.kconf_update: "plasma6.0-remove-dpi-settings.upd" : Running script "plasma6.0-remove-dpi-settings"
[... clipped for brevity ...]
Comment 1 Henrik Harmsen 2024-02-19 13:46:55 UTC
Searching a bit more I can see that this is a duplicate of resolved bug 480758. I will try to close this.
Comment 2 Henrik Harmsen 2024-02-19 13:47:02 UTC

*** This bug has been marked as a duplicate of bug 480758 ***