Plasmashell crashes frequently

yeah i am trending in that direction too plus the open gl which i switched to …

the point is, it should old config / cache should not cause a crash, old widgets, if not maintained should not eve run, be marked incompatible, no jokes … i know , these are the shoulds, switching to a different user with a fresh home folder might be debugging step, but at this point , we have cornered it otherwise, the KDE team needs to do some coding to fortify their software. I am not even calling it on the manjaro team here, i don’t think it’s misconfigured or miscompiled plasmashell … the logs, an you may love to have them are huge, i was hoping someone could give me instructions on producing a shorter output , but 1.7 gigs is too much

Well there was a lot of organisation from Plasma 5 to 6, but it’s not a simple task.

Also, they are simply provided as-is - and you’re free to grab them and fix them if you like…

There are an infinite number of possiblities with config files from anything except a vanilla desktop - and there are other things that can cause issues - old cache files included.

If creating a new TEST user leaves the issue behind, then you move on to the next step… I like simple instructions for simple folks (let’s assume that we cannot guess, and have NO idea at all what’s the issue).

# brute force troubleshooting...
mv ~/.config ~/.configBORKED
# logout and log back in again to force plasma to recreate the folder with default settings
dolphin --split ~/.config ~/.configBORKED
# copy back half of the BORKED folder contents at a time and relog to see if issue returns
# if it does, then delete the folder again, relog, and only copy half of that previous half
# repeat until the culprit is found, then finally, copy back everything BUT that culprit bit

That’s my plan - moving the whole .config folder will hopefully have the same effect as creating a TEST user did, but you must log out and in again to test it properly.

Then you CAREFULLY move files back from BORKED…

You can either choose the TOP half, BOTTOM half, arrange as icons and choose the LEFT or RIGHT half, or you can make some educated guesses and select only what you’re sure won’t contain the issue…

There’s no reason that an old widget that isn’t maintained might not be able to run indefinitely, it all depends…

We don’t want to ‘fortify’ the software, I came to Linux to get away from Garden Walls…

You can install an immutable distribution, your choice, but then you can’t easily change things…

As for logs - sure, when posting you want to limit the amount of spam there.

❯ journalctl --disk-usage
Archived and active journals take up 53.6M in the file system.

Well I do cheat, every now and then I pretend nothing’s wrong and clean them out with this ‘Journal Cleaner’ I call ‘jclean’.

jclean - terminal journal cleaner
#!/bin/bash
# Interactive script to clean systemd journal logs - with auto sudo

# If not running as root, re-execute with sudo
if [[ $EUID -ne 0 ]]; then
    echo "This script requires root privileges."
    exec sudo "$0" "$@"
    # exec replaces the current process, so no need to exit
fi

# Function to show current disk usage
show_usage() {
    echo "Current journal disk usage:"
    journalctl --disk-usage
    echo ""
}

# Function to perform vacuum and show result
do_vacuum() {
    local option=$1
    local value=$2
    echo "Before cleanup:"
    show_usage
    echo "Cleaning logs: $option $value"
    if [[ $option == "--vacuum-time" ]]; then
        journalctl --vacuum-time="$value"
    elif [[ $option == "--vacuum-size" ]]; then
        journalctl --vacuum-size="$value"
    else
        echo "Invalid option"
        return 1
    fi
    echo "After cleanup:"
    show_usage
    read -p "Press Enter to continue..."
}

while true; do
    clear
    echo "====================================="
    echo "   System Log Cleanup Utility"
    echo "====================================="
    echo "1) Clean all logs (keep last second)"
    echo "2) Keep last hour"
    echo "3) Keep last minute"
    echo "4) Keep last 10 minutes"
    echo "5) Custom time (e.g., 2h, 30m, 5d)"
    echo "6) Vacuum by size (e.g., 100M, 500M)"
    echo "7) Show current disk usage"
    echo "8) Exit"
    echo "====================================="
    read -p "Choose an option [1-8]: " choice

    case $choice in
        1)
            do_vacuum "--vacuum-time" "1s"
            ;;
        2)
            do_vacuum "--vacuum-time" "1h"
            ;;
        3)
            do_vacuum "--vacuum-time" "1m"
            ;;
        4)
            do_vacuum "--vacuum-time" "10m"
            ;;
        5)
            read -p "Enter time value (e.g., 2h, 30m, 5d): " custom_time
            do_vacuum "--vacuum-time" "$custom_time"
            ;;
        6)
            read -p "Enter size limit (e.g., 100M, 500M): " custom_size
            do_vacuum "--vacuum-size" "$custom_size"
            ;;
        7)
            show_usage
            read -p "Press Enter to continue..."
            ;;
        8)
            echo "Exiting."
            exit 0
            ;;
        *)
            echo "Invalid option, try again."
            sleep 2
            ;;
    esac
done

So what to do, open a terminal and type kate ~/.local/bin/jclean and then paste that text, and quit (save) kate.

Now in the terminal again:

chmod +x ~/.local/bin/jclean

That should do it, now just type jclean and hit enter.

=====================================
   System Log Cleanup Utility
=====================================
1) Clean all logs (keep last second)
2) Keep last hour
3) Keep last minute
4) Keep last 10 minutes
5) Custom time (e.g., 2h, 30m, 5d)
6) Vacuum by size (e.g., 100M, 500M)
7) Show current disk usage
8) Exit
=====================================
Choose an option [1-8]: 
3 Likes

sorry, , now we got a good discussion going , let me correct a small misunderstanding: my fortify the software i did not mean walled garden, what i meant , is to make it resilient against old and outdated stuff accumulating in the user’s home folder, maybe like the versioning system for libraries, maybe create a sub folder for every version and actively migrate each configure ( or cache … frankly i would just delete the cache ) and start a new if no other solution is possible. i am looking at drupal and wordpress , being selective about which plugins are compatible and which need upgrading and yet not creating a walled garden , i don’t like walled gardens , there has to be a better way

Great idea, bring it up in https://discuss.kde.org/

3 Likes

As SDDM seems involved, I wonder if you’ve considered switching to the new plasma-login-manager instead.

I’m aware that SDDM crashes sometimes when switching users, for example – a problem that doesn’t exist in PlasmaLogin – but that’s not the only scenario in which SDDM can crash.

There were instructions for switching to PlasmaLogin in a recent Update Announcement thread. Perhaps you could try it and see if it makes any difference in your case.

I’d suggest doing this from a TTY after logging out, and a reboot once it’s done.

2 Likes