[plasmashell] [Bug 315488] icon-only task manager groups chrome/chromium web apps with chrome/chromium

2016-10-30 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=315488

Kai Krakow  changed:

   What|Removed |Added

 CC||k...@kaishome.de

--- Comment #37 from Kai Krakow  ---
The primary problem here seems to be grouping is based on the ClassClass
string, not the ClassName string (which would be preferred for Chrome apps).

I think this worked properly with Plasma 5.8.0 but now I'm on Plasma 5.8.2 and
it's back to the old behavior. I compared Github but cannot see any changes in
the code which would explain this (I checked plasma-desktop and
plasma-workspace) so I guess the change is somewhere else (something I updated
along Plasma).

I'd like to patch this myself to get my preferred behavior back. Do you know
where to look (maybe the exact commit) which changed this back to grouping by
ClassClass instead of ClassName?

When I had Plasma 5.8.0 installed, each Chrome app had its own instance on the
taskbar (with child windows properly grouped within the correct task icon) even
with the correct icon (not the general Chrome icon). All other apps worked
correctly wrt grouping. So I think "wontfix" is not a satisfactory resolve
status of this bug. Even unity gets this correct. I'm not even sure if the
problem was properly understood when looking at the last comments.

If working with a lot of Chrome apps, the behavior as it is right now is a real
pita. OTOH, I don't want to disable grouping of Chrome altogether as the
taskbar gets much too cluttered then.

Comment #9 explained well what the difference is.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 315488] icon-only task manager groups chrome/chromium web apps with chrome/chromium

2016-11-14 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=315488

--- Comment #39 from Kai Krakow  ---
So maybe this should be reopened? Although some of the discussion points into
the wrong direction by saying that explicitly ungrouping applications is the
same - but that is not true...

So alternatively open a new bug report? I'm not sure...

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 315488] icon-only task manager groups chrome/chromium web apps with chrome/chromium

2016-11-16 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=315488

--- Comment #42 from Kai Krakow  ---
(In reply to Kai Uwe Broulik from comment #41)
> Yup, Chrome broke it and I updated the mapping rules, will work again in
> Plasma 5.8.4 [1]. There was also a logic flaw in the code that I fixed [2].
> 
> [1]
> https://cgit.kde.org/plasma-workspace.git/commit/?h=Plasma/5.
> 8&id=7c443aa53900521deab4fcd4641ea5273afc294e

I already added this to /etc/xdg/taskmanagerrulesrc (it's the only file by that
name on my system, so I'd expect it's the correct location). I restarted the
machine to be sure it takes effect. But nothing changed: Chrome is still
grouped no matter if I start it as web browser or as app container.

The browser shows this in xprop:

WM_WINDOW_ROLE(STRING) = "browser"
WM_CLASS(STRING) = "google-chrome", "Google-chrome"

One of the app windows (started from a .desktop entry created by chrome):

WM_WINDOW_ROLE(STRING) = "pop-up"
WM_CLASS(STRING) = "crx_ghaboaaodcboidcanphmnidfikjb", "Google-chrome"

Desktop entry:

$ ~/.local/share/applications $ cat
chrome-ghaboaaodcboidcanphmnidfikjb-Default.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Autotask
Exec=/opt/google/chrome/google-chrome --profile-directory=Default
--app-id=ghaboaaodcboidcanphmnidfikjb
Icon=chrome-ghaboaaodcboidcanphmnidfikjb-Default
StartupWMClass=crx_ghaboaaodcboidcanphmnidfikjb

I expect both windows having distinct icons on the taskbar.

> [2]
> https://cgit.kde.org/plasma-workspace.git/commit/?h=Plasma/5.
> 8&id=61860066a4cea845598fa4904607db1bba411356

Is this needed to fix the behavior? I could include it as Gentoo user patch and
recompile...

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 315488] icon-only task manager groups chrome/chromium web apps with chrome/chromium

2016-11-16 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=315488

--- Comment #44 from Kai Krakow  ---
Okay, works... Gentoo backported some patches to 5.8.3 which didn't compile, I
reverted back to the previous patch level with this patch included and now it
works.

What I am missing is correct icons. That seemed to work previously. But I guess
it is now working correctly because now it matches the icon from the KDE
launcher.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 348812] Crash in __strstr_sse2 after QSGRenderContext::initialize(QOpenGLContext*)

2016-11-29 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=348812

Kai Krakow  changed:

   What|Removed |Added

 CC|k...@kaishome.de |

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 453554] turning one monitor off kills the panel configuration of the second monitor

2022-06-16 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=453554

--- Comment #6 from Kai Krakow  ---
Okay, so I'm now on Plasma 5.25 and this original issue seems fixed.

But now, when I turn the monitor back on, the background image of that monitor
is gone and completely black. I also cannot right click on the background: no
context menu would appear.

The panels are still there, and switching the panels to editing mode doesn't
show the additional button bar to change background images, global design etc
on that monitor (but it's shown on the others).

Only restarting plasmashell will bring back the background image and context
menu function.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 450068] Use of volatile connector IDs to map containments to screens cannot be made to work reliably and should be replaced with something else

2022-09-10 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=450068

--- Comment #27 from Kai Krakow  ---
We probably need a system which stores a containment layout per number of
monitors connecting. If an additional monitor gets connected, clone the next
"lower count" layout. Then, sort the primary monitor to the beginning.

That means, it would have a mapping `monitor counts -> layout` and then just
counts the connectors in a predictive order instead of tracking EDIDs or
connector names. At least for my use case, I don't care which monitor is
connected to which connector, as long as my primary monitor is tracked
correctly and all additional monitors are ordered after it.

Predictive order could mean: primary first, then order by EDID, model or
connector name.

But I think there is at least one underlying severe problem here, and it seems
to be a race condition:

Plasma-shell, kscreen, the desktop background, and nvidia-settings do not seem
to always agree about the order of screens. So sometimes, after a screen gets
disconnected and reconnected, plasma-shell may end up with panels and
backgrounds not matching my previous setup, or it ends up with no background at
all (essentially making it impossible to right click) but the panels are still
on that monitor. The components need to be synced somehow, it looks like each
one gets its own view of the situation while Xorg still messes around with the
detection. The setup should be transactional and only the new layout only
reflected to the components if the detection phase is complete.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 356225] Panel moves to wrong screen when external monitor is connected

2022-09-14 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=356225

--- Comment #409 from Kai Krakow  ---
(In reply to Nate Graham from comment #408)
> This bug report is only about Plasma panels moving, not windows. That's a
> different issue.

Except it may be not... I'm seeing a similar behavior: Usually, windows store
their last screen, and when reopened, restore to the same screen. But sometimes
after reboot, this seems to be swapped (probably for the same reason panels
moved to a different screen), and sometimes windows do not remember their
position at all and go to some awkward default state (like horizontally
maximized but not vertically) which is probably the same as when a panel
"appears" on a disabled screen or not at all (the windows "remembered" screen
does not exist in the screen real estate and just spawn at awkward positions,
like partially maximized or halfway out of the screen).

I just didn't mention it because I think it will be fixed for me when the
panels become fixed.

-- 
You are receiving this mail because:
You are watching all bug changes.

[konsole] [Bug 412005] Konsole crashes when trying to paste (long texts) from clipboard

2022-09-26 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=412005

Kai Krakow  changed:

   What|Removed |Added

 Status|NEEDSINFO   |RESOLVED
 Resolution|WAITINGFORINFO  |WORKSFORME

--- Comment #2 from Kai Krakow  ---
(In reply to Justin Zobel from comment #1)
> If you can reproduce the issue, please change the status to "CONFIRMED" when
> replying. Thank you!

I cannot reproduce that any longer. Pasting long text may be a bit laggy but it
generally doesn't crash any longer.

Closing.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 450068] Use of volatile connector IDs to map containments to screens cannot be made to work reliably and should be replaced with something else

2022-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=450068

--- Comment #33 from Kai Krakow  ---
(In reply to Iyán Méndez Veiga from comment #32)
> Plasma 5.25.90 has a new issue and it's really unstable and difficult to
> replicate. Every morning when I connect the laptop to the docking station I
> have no idea what's going to happen. I can have both screen in duplicate
> mode, I can have laptop screen on, and external without background, both
> with wrong folder view instead of desktop mode, etc., etc. This behavior is
> totally new and was introduced in this Beta. I tried to summarize this in
> Bug 459368, but I mentioned it here not to loose the big picture.

The seemingly random nature of this (as I understand your description) suggests
that there is at least one other underlying bug that completely messes up
replication of the problem. I'm seeing quite random behaviour with 5.25, and it
looks like the different components of KDE/Plasma don't agree on the same
state, which probably means there's also some racing between different
components. I already suggested that in a previous comment. It's less likely to
observe with just two monitors, but with three or more monitors it really gets
messy, with different things (backgrounds, panels, folder views) each
individually ending up on completely different monitors than what was
configured.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 450068] Use of volatile connector IDs to map containments to screens cannot be made to work reliably and should be replaced with something else

2022-09-29 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=450068

--- Comment #37 from Kai Krakow  ---
(In reply to Nate Graham from comment #35)
> Unfortunately this is exactly right. [...]
> The current system needs to be thrown away and replaced with
> something better-engineered from the start, which is in progress for Plasma
> 5.27.

Thanks for confirming, Nate, very much appreciated. To me this means I'll stay
silent for that time to not add unnecessary noise, accepting all strange
behavior and trying to live with it.

I hope this gets back-ported to 5.26 as 5.27 will probably not arrive before
summer 2023.

My faith is not lost yet. :-)

-- 
You are receiving this mail because:
You are watching all bug changes.

[krdc] [Bug 377911] [Wayland] RDP doesn't work under Wayland

2023-05-19 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=377911

Kai Krakow  changed:

   What|Removed |Added

 CC||k...@kaishome.de

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 450301] On KWin 5.24 X11 Nvidia, when reenabling compositing, windows begin flickering and flipping upside-down

2023-05-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=450301

Kai Krakow  changed:

   What|Removed |Added

 CC||k...@kaishome.de

--- Comment #12 from Kai Krakow  ---
I can confirm this. A mostly reliable reproducer is starting a Steam Proton
game which has a launcher that detect DirectX capabilities, e.g. the Elite
Dangerous Launcher. Such launchers generate a full screen window for an blink
of an eye which disables the compositor and automatically enables it again (I'm
forcing composition off through a kwin rule which looks for client windows
named "(gamescope|steam_app_)", otherwise games stutter unpredictably in my
dual monitor setup and both my monitors drift apart with vsync over time (and
X11 always syncs all monitors in a single loop thus syncing to the slowest
monitor).

This tight disable/enable loop seems to be enough to initially trigger the bug
but it usually only occurs when the game ends and closes it's final window
(tho, not exclusively, it still may trigger the bug when the launcher starts).
The game itself is unaffected. Using shift+alt+F12 to disable compositing cures
the flipped and flickering desktop but only until I re-enable compositing. Only
restart kwin_x11 fixes it. After it happened once, it is very likely to be
triggered more easily, a full reboot is needed to get rid of the behavior for a
while.

Games that do not trigger tight enable/disable intervals for compositing seem
to be less likely trigger the bug.

"Force full composition pipeline" is enabled to fix tearing in multimonitor
setups. It may be part of the problem, I was never seeing that on my single
monitor setup (but this is at least 2 years ago).

-- 
You are receiving this mail because:
You are watching all bug changes.

[Akonadi] [Bug 469279] New: Running akonadi servers easily doubles or triples VRAM usage

2023-05-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469279

Bug ID: 469279
   Summary: Running akonadi servers easily doubles or triples VRAM
usage
Classification: Frameworks and Libraries
   Product: Akonadi
   Version: 5.23.0
  Platform: Gentoo Packages
OS: Linux
Status: REPORTED
  Severity: normal
  Priority: NOR
 Component: general
  Assignee: kdepim-b...@kde.org
  Reporter: k...@kaishome.de
CC: c...@carlschwan.eu
  Target Milestone: ---

SUMMARY

After a long time, I wanted to give Akonadi a new chance and installed it.
After some time I noticed much worse gaming performance related to VRAM
pressure. I've monitored nvidia-smi to see that my idle desktop now uses 3.8 GB
of VRAM, with a lot of akonadi resource processes allocating 4 MB each from the
driver directly but also the Xorg process was ballooned up to 2.7 GB of VRAM
usage even after a fresh reboot.

Usually, after reboot, Xorg would use around 800 MB of VRAM with some
background processes having 4 MB allocated each, result in around 1.2 GB of
VRAM usage for a freshly booted desktop, and up to 2.5 GB after some time of
use (that's still a lot but a different concern).


STEPS TO REPRODUCE
1. Install akonadi
2. Reboot
3. Observe nvidia-smi output after fresh boot and after some time of use

OBSERVED RESULT

Over 3 GB of VRAM usage after a fresh boot, increasing to almost 5 GB after
some time of use.

EXPECTED RESULT

Stay below 2.5 GB of VRAM with some web browser windows open and Steam running.

SOFTWARE/OS VERSIONS

Operating System: Gentoo Linux 2.13
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.105.0
Qt Version: 5.15.9
Kernel Version: 6.1.26-gentoo (64-bit)
Graphics Platform: X11
Processors: 20 × 12th Gen Intel® Core™ i7-12700K
Memory: 31.1 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3080 Ti/PCIe/SSE2
Manufacturer: ASRock
Product Name: Z690 Pro RS

# equery l nvidia-drivers
 * Searching for nvidia-drivers ...
[IP-] [  ] x11-drivers/nvidia-drivers-525.116.03:0/525

ADDITIONAL INFORMATION

Dual-monitor setup with "force full composition pipeline" enabled in
nvidia-settings.

nvidia-smi without akonadi running:

Tue May  2 19:33:30 2023
+-+
| NVIDIA-SMI 525.116.03   Driver Version: 525.116.03   CUDA Version: 12.0 |
|---+--+--+
| GPU  NamePersistence-M| Bus-IdDisp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap| Memory-Usage | GPU-Util  Compute M. |
|   |  |   MIG M. |
|===+==+==|
|   0  NVIDIA GeForce ...  Off  | :01:00.0  On |  N/A |
|  0%   48CP546W / 370W |   2494MiB / 12288MiB | 30%  Default |
|   |  |  N/A |
+---+--+--+

+-+
| Processes:  |
|  GPU   GI   CIPID   Type   Process name  GPU Memory |
|ID   ID   Usage  |
|=|
|0   N/A  N/A  1625  G   /usr/libexec/Xorg1734MiB |
|0   N/A  N/A  2328  G   /usr/bin/kwin_x11 149MiB |
|0   N/A  N/A  2329  G   /usr/bin/ksmserver  4MiB |
|0   N/A  N/A  2331  G   /usr/bin/kded5  4MiB |
|0   N/A  N/A  2509  G   /usr/bin/plasmashell  180MiB |
|0   N/A  N/A  2570  G   ...de-authentication-agent-14MiB |
|0   N/A  N/A  2573  G   ...ec/xdg-desktop-portal-kde4MiB |
|0   N/A  N/A  2680  G   /usr/bin/python3.10 4MiB |
|0   N/A  N/A  2684  G   ...lib64/libexec/kdeconnectd4MiB |
|0   N/A  N/A  2685  G   /usr/bin/kleopatra  4MiB |
|0   N/A  N/A  2686  G   /usr/bin/keepassxc  4MiB |
|0   N/A  N/A  2698  G   /usr/bin/kaccess4MiB |
|0   N/A  N/A  2702  G   .../libexec/DiscoverNotifier4MiB |
|0   N/A  N/A  3942  G   ...aw,WebRTCPipeWireCapturer   88MiB |
|0   N/A  N/A  3945  G   /usr/bin/kwalletd5  4MiB |
|0   N/A  N/A  4159  G   ...b64/libexec/kf5/klauncher4MiB |
|0   N/A  N/A  4301  G   ...-browser-integration-host4MiB |
|0   N/A  N/A  6838  G   ...veSuggestionsOnlyOnDemand  10

[Akonadi] [Bug 469279] Running akonadi servers easily doubles or triples VRAM usage

2023-05-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469279

--- Comment #1 from Kai Krakow  ---
BTW: Running "kcmshell5 qtquicksettings" and forcing software rendering for
plasma completely eliminates the issue (with Xorg staying really low on VRAM)
but then plasma loudly complains about non-optimal rendering settings and I
fear this can even reduce game performance if an application renders in
parallel to a game (as can be observed when forcing software rendering for
Discord which completely degrades GPU performance while gaming).

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 469281] New: windows with background blur (e.g., konsole) flicker and leave mouse trails

2023-05-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469281

Bug ID: 469281
   Summary: windows with background blur (e.g., konsole) flicker
and leave mouse trails
Classification: Plasma
   Product: kwin
   Version: 5.27.4
  Platform: Gentoo Packages
OS: Linux
Status: REPORTED
  Severity: normal
  Priority: NOR
 Component: general
  Assignee: kwin-bugs-n...@kde.org
  Reporter: k...@kaishome.de
  Target Milestone: ---

SUMMARY

When using kwin_wayland, windows which use transparency with background blur
flicker during screen updates and the mouse point may leave square blocks of
trails in the background color (as if no background blur was used). This can be
observed both with NVIDIA and Intel. Disabling background blur in konsole fixes
the issue but other windows may (and even the plasma panels) may still be
affected, tho the problem is most prominent with konsole.


STEPS TO REPRODUCE
1. Enable background transparency/blur in konsole
2. Update screen contents in konsole and move the mouse point around within the
window
3. Move the window around

OBSERVED RESULT

Trails of background-colored blocks are left behind the mouse cursor, konsole
window contents may flicker heavily.

EXPECTED RESULT

No flickering, no mouse trails.

SOFTWARE/OS VERSIONS

Operating System: Gentoo Linux 2.13
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.105.0
Qt Version: 5.15.9
Kernel Version: 6.1.26-gentoo (64-bit)
Graphics Platform: X11
Processors: 20 × 12th Gen Intel® Core™ i7-12700K
Memory: 31.1 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3080 Ti/PCIe/SSE2
Manufacturer: ASRock
Product Name: Z690 Pro RS

ADDITIONAL INFORMATION

Also happens with Intel (Gen3 iGPU): Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz

But usually, flickering cannot be observed with latest Plasma version but mouse
trails are still present. The flicker problem mostly went away after I bumped
the iGPU shared memory area from 32 to 512 MB (and it also fixed the lockscreen
freezing until I "loginctl unlock-session" from alt+F2 and restart kwin which
is not feasible with wayland).

I disabled konsole background blur on that iGPU for now because it really hurts
desktop rendering performance, so it less a problem on that iGPU anyways for me
which mostly lefts us with the issue on NVIDIA.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kopete] [Bug 145911] display irc style /me

2023-05-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=145911

Kai Krakow  changed:

   What|Removed |Added

 Status|CONFIRMED   |RESOLVED
 Resolution|--- |UNMAINTAINED

--- Comment #5 from Kai Krakow  ---
Closing as obsolete/abandoned

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 441077] Plasmashell panels may freeze, usually unrelated but unresponsive NFS/SMB mounts are involved

2023-05-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=441077

--- Comment #12 from Kai Krakow  ---
I partially found automounts triggering the problem. With automounts enabled,
right clicking on dolphin window icons or starting konsole (probably every app
that is somehow involved in checking mount point stats) can stall either plasma
(when a context menu is displayed) or stall konsole startup for multiple
seconds up to a minute.

Interestingly, just using "cd" to switch to a directory with automount point
and running "ls" almost instantly returns and shows the directory.

This affects both NFS and local automounts for me but also remote filesystems
mounted via kio (and the latter seem to contribute a lot more to the stalls).

Once NFS automounts are mounted, the system does no longer stall konsole, kio
is eventually cached by then but the dolphin window icon context menu is still
affected and blocks plasma while stalled.

On a second system which is configured almost identically, the same behavior
cannot be observed or it is much less pronounced.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kio-extras] [Bug 469283] New: cannot copy files to smb when accessing a DFS share

2023-05-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469283

Bug ID: 469283
   Summary: cannot copy files to smb when accessing a DFS share
Classification: Frameworks and Libraries
   Product: kio-extras
   Version: 23.04.0
  Platform: Gentoo Packages
OS: Linux
Status: REPORTED
  Severity: normal
  Priority: NOR
 Component: Samba
  Assignee: plasma-b...@kde.org
  Reporter: k...@kaishome.de
CC: sit...@kde.org
  Target Milestone: ---

SUMMARY

When accessing a Windows DFS share through kio, dolphin complains about not
enough space in the destination copying data to the share. Running "df" on the
kio mount confirms that there are 0 bytes reported free, and the reported file
system size is also 0 bytes. From cmdline, files can still be created or
copied.

Accessing the same share directly from the DFS member reports correct sizes and
allows dolphin to copy files to the share.

Mounting DFS directly via CIFS kernel support reports the correct values.

SMB shares:

\\domain.local\DFS\Storage -> 0 bytes free and 0 bytes size
\\member1.domain.local\Storage -> sizes reported correctly
\\member2.domain.local\Storage -> also reported correctly

STEPS TO REPRODUCE
1. Setup a DFS share with two member servers and DFSR sync
2. Access share via DFS share via kio to check for free space
3. Access share directly on member server via kio to check for free space

OBSERVED RESULT

kio-smb reports 0 bytes free and 0 bytes file system size, preventing kio
clients from writing data due to out of space condition (actually, it may
complain about insufficient permissions sometimes but that's not true, it's
still "out of space").

EXPECTED RESULT

kio-smb should report file system stats correctly for DFS shares.

SOFTWARE/OS VERSIONS

Operating System: Gentoo Linux 2.13
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.105.0
Qt Version: 5.15.9
Kernel Version: 6.1.26-gentoo (64-bit)
Graphics Platform: X11
Processors: 20 × 12th Gen Intel® Core™ i7-12700K
Memory: 31.1 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3080 Ti/PCIe/SSE2
Manufacturer: ASRock
Product Name: Z690 Pro RS

-- 
You are receiving this mail because:
You are watching all bug changes.

[kio-extras] [Bug 469283] cannot copy files to smb when accessing a DFS share

2023-05-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469283

--- Comment #2 from Kai Krakow  ---
(In reply to Harald Sitter from comment #1)
> Please provide reproducible steps for 1. Setup a DFS share with two member
> servers and DFSR sync

On two Windows Server hosts, install DFS replication services.

Install DFS namespace services on at least one host and setup a DFS namespace
using the first two hosts as target servers.

Then create a replication group between those two members to keep the shares in
sync.

I'm not sure if DFS replication is actually necessary to show the 0-space-bug,
it may be sufficient to use a single DFS target without replication, and just
point kio-smb to access the share through the DFS namespace, although using DFS
with a single target share is not really that useful.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kio-extras] [Bug 469283] cannot copy files to smb when accessing a DFS share

2023-05-03 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469283

Kai Krakow  changed:

   What|Removed |Added

 Status|NEEDSINFO   |REPORTED
 Resolution|WAITINGFORINFO  |---

--- Comment #4 from Kai Krakow  ---
(In reply to Harald Sitter from comment #3)
> Not exactly the level of detail I wanted but it'll do :)
> 
> And you are quite certain this is with kio-extras 23.04?

This is a good point... There are two systems, one is more "bleeding edge" and
uses the DFS share via VPN link, so I should retest it with 23.04 (because it
was recently updated and I didn't retest there since then):

# equery b /usr/lib64/qt5/plugins/kf5/kio/smb.so
 * Searching for /usr/lib64/qt5/plugins/kf5/kio/smb.so ...
kde-apps/kio-extras-23.04.0 (/usr/lib64/qt5/plugins/kf5/kio/smb.so)

The other system (directly connected to the server LAN segment) has:

# equery b /usr/lib64/qt5/plugins/kf5/kio/smb.so
 * Searching for /usr/lib64/qt5/plugins/kf5/kio/smb.so ...
kde-apps/kio-extras-22.12.3 (/usr/lib64/qt5/plugins/kf5/kio/smb.so)

That system shows this problem as recently as a few days ago.

Do you mean to say that this may have been fixed in 23.04?

-- 
You are receiving this mail because:
You are watching all bug changes.

[kio-extras] [Bug 469283] cannot copy files to smb if accessing as a DFS share

2023-05-03 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469283

Kai Krakow  changed:

   What|Removed |Added

Summary|cannot copy files to smb|cannot copy files to smb if
   |when accessing a DFS share  |accessing as a DFS share

-- 
You are receiving this mail because:
You are watching all bug changes.

[kio-extras] [Bug 469283] cannot copy files to smb if accessing as a DFS share

2023-05-03 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469283

--- Comment #6 from Kai Krakow  ---
OTOH, this may also be fixed in Dolphin rather than kio (if there's no way
around that behavior): If Dolphin detects 0 bytes free and 0 bytes size at the
same time, it should infer that there's no information about free space and
just try writing the file. I'm pretty sure it's not kio preventing the write
due to this condition (because when launching the terminal from Dolphin, it
will put me into a kio mounted directory and I can create files there just
fine).

-- 
You are receiving this mail because:
You are watching all bug changes.

[kio-extras] [Bug 469283] cannot copy files to smb if accessing as a DFS share

2023-05-03 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469283

--- Comment #7 from Kai Krakow  ---
(In reply to Harald Sitter from comment #5)
> > Do you mean to say that this may have been fixed in 23.04?
> 
> Yes
> https://invent.kde.org/network/kio-extras/-/commit/
> 46d3f2fd41dece1d49e7295ae986d8e3960e78fb

Oh wow... Thanks, I'll try. I add this to the patch queue of emerge and
reinstall the package. I'm guessing it will apply to 22.12.3 without conflicts.

I'll close this if it works for me.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kio-extras] [Bug 469283] cannot copy files to smb if accessing as a DFS share

2023-05-03 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469283

Kai Krakow  changed:

   What|Removed |Added

 Status|REPORTED|RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #8 from Kai Krakow  ---
Thanks, it is fixed by your commit.

Sorry for not taking more attention to my other system which recently updated
to 23.04 - I wasn't really aware of that fact when I wrote the bug report.

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

-- 
You are receiving this mail because:
You are watching all bug changes.

[dolphin] [Bug 431050] SMB error: "There is not enough space on the disk to write smb://..."

2023-05-03 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=431050

Kai Krakow  changed:

   What|Removed |Added

 CC||k...@kaishome.de

--- Comment #24 from Kai Krakow  ---
*** Bug 469283 has been marked as a duplicate of this bug. ***

-- 
You are receiving this mail because:
You are watching all bug changes.

[Akonadi] [Bug 469279] Running akonadi servers easily doubles or triples VRAM usage

2023-05-03 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=469279

--- Comment #3 from Kai Krakow  ---
Thanks for investigating. I think this example shows that KDE/Plasma should
treat VRAM as a valuable resource, and it affects a lot of other KDE background
processes, too. So maybe creating some infrastructure to have one single
process display dialogues for background processes may be the way forward. But
I understand that this is a big change.

As a less intrusive interims solution, Akonadi agent and resource processes
could be forced to use Qt software rendering only. It probably won't hurt too
much because most of these processes only open simple dialogues, and usually
probably only in the event of errors or warnings, not as part of working
normally.

I found that forcing Qt software rendering for the full desktop to eliminate
VRAM ballooning but, as already mentioned, I'm not sure how badly it will
affect desktop performance, especially if desktops apps need to render in
parallel to a game. Also, it somehow prevents window previews on the taskbar to
work so it has a visible impact on user experience. But it may be acceptable
for Akonadi dialogues for the time until this is fixed. I found no way to force
software rendering only for processes launched by Akonadi, it should be as easy
as injecting an environment variable into the launcher but I don't know how or
where to do that.

There's `/usr/share/dbus-1/services/org.freedesktop.Akonadi.Control.service`
but I'm not sure if this is the right place for trying to inject environment
variables, or if that is the launcher of the main process at all...

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-kconfig] [Bug 187172] truncated configuration files on power loss or hard crash

2024-06-21 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=187172

--- Comment #47 from Kai Krakow  ---
(In reply to Martin Steigerwald from comment #46)
> Nowadays where Ext3 should not be in wide use anymore, if at all, and
> nowadays where many people use flash based storage, I am strongly for just
> making sure to sync where needed.
> 
> That written, I did not see any truncated config file since ages. I still
> have "KDE_EXTRA_FSYNC=1" set, but whether this actually really makes a
> difference, given some of the comments above, I do not know. Anyway, I'd
> just sync by default. It really can't be a performance issue anymore –
> except maybe on embedded device with some slow SD card –, especially as
> unchanged files are not rewritten anymore.

If I remember correctly, you may be using btrfs. On btrfs, this is actually not
needed, it works fine without fsync and is actually faster that way no matter
the storage technology. I'm running with `KDE_EXTRA_FSYNC=0` since years on
btrfs and never had a problem.

I suggest that the behavior is kept to optionally disable fsync/fdatasync, but
it should befault to "on".

The problem is with file systems which do not commit metadata and data properly
in a single transaction or in expected order, e.g. xfs does this and writes
data lazily or delayed. In that case, xfs ensures that you do not see stale or
old data after a crash by zeroing or truncating the affected files. I think
ext3/ext4 does something similar unless you use its full journal mode (which is
a lot slower, ofc), where xfs probably behaves like ext4 with
"journal=writeback".

Especially with btrfs, the argument is not whether it's on flash or spinning
disks: fsync/fdatasync can significantly slow the system down because btrfs may
have a rather long list of outstanding transactions it would have to write then
(blocking) until reaching the transaction affected by the sync. This can take a
long time and blocks the system even on flash disks.

So if this discussion is about whether we should remove `KDE_EXTRA_FSYNC`, I'd
rather not have it force-enabled, especially because KDE seems to be very busy
with its config files and reads and writes them a lot (similar to the cache
directory). IMHO, the variable could be changed to require
`KDE_DISABLE_EXTRA_FSYNC=this_is_dangerous_and_I_know_what_I_am_doing`. This
may make it more obvious to people who blindly follow some internet guides to
"make things faster" that they may be doing something harmful.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 484323] High CPU load of kwin_x11 when locking or turning off the screen

2024-06-30 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=484323

Kai Krakow  changed:

   What|Removed |Added

 CC||k...@kaishome.de

--- Comment #36 from Kai Krakow  ---
I can confirm this for 6.1.1. I'm using 4 monitors, one of them is sometimes
turned off. Perf data looks like this:

# Overhead  Command  Shared ObjectSymbol
#   ...  ... 
...
#
24.22%  kwin_x11 [vdso]   [.]
__vdso_clock_gettime
15.66%  kwin_x11 libc.so.6[.] __sched_yield
10.43%  kwin_x11 [unknown][k]
0x81c00150
 1.71%  kwin_x11 libc.so.6[.]
clock_gettime@@GLIBC_2.17
 1.46%  kwin_x11 libnvidia-glcore.so.555.58   [.]
0x00b00d13
 1.24%  kwin_x11 libnvidia-glcore.so.555.58   [.]
0x00b00d00
 1.02%  kwin_x11 libnvidia-glcore.so.555.58   [.]
0x009eea66
 0.78%  kwin_x11 libnvidia-glcore.so.555.58   [.]
0x009eea61
 0.72%  kwin_x11 libnvidia-glcore.so.555.58   [.]
0x00a03904
 0.71%  kwin_x11 libnvidia-glcore.so.555.58   [.]
0x00b00d30
 0.68%  kwin_x11 libnvidia-glcore.so.555.58   [.]
0x009eea59

It looks like most of the time is spent in a tight loop getting the clock and
yielding. Most of the time is spent outside of kwin_x11 but filtering by dso
shows where it is involved:

# dso: kwin_x11
#
# Total Lost Samples: 0
#
# Samples: 5K of event 'cpu_atom/cycles/Pu'
# Event count (approx.): 2421254389
#
# Overhead  Command  Symbol
#   ... 
...
#
 0.12%  kwin_x11 [.] KWin::BlendChanges::isActive
 0.07%  kwin_x11 [.] QtPrivate::QCallableObject, void>::impl
 0.04%  kwin_x11 [.] KWin::OutputFrame::presented@plt
 0.03%  vsync event mon  [.] std::chrono::_V2::steady_clock::now@plt
 0.03%  kwin_x11 [.] KWin::ApplicationX11::metaObject
 0.03%  kwin_x11 [.] KWin::ContrastEffect::shouldContrast
 0.03%  kwin_x11 [.] KWin::ContrastEffect::doContrast
 0.02%  kwin_x11 [.] KWin::ZoomEffect::slotWindowDamaged
 0.02%  kwin_x11 [.] KWin::GlxLayer::doBeginFrame
 0.02%  kwin_x11 [.] KWin::PaintData::yTranslation@plt
 0.02%  kwin_x11 [.] KWin::BlurEffect::blurRegion
 0.02%  kwin_x11 [.] KWin::EffectsHandler::prePaintScreen@plt
 0.02%  kwin_x11 [.] KWin::ContrastEffect::isActive
 0.02%  kwin_x11 [.] KWin::EffectWindow::isDesktop@plt
 0.02%  kwin_x11 [.] KWin::ContrastEffect::drawWindow
 0.02%  kwin_x11 [.] KWin::GlxBackend::primaryLayer
 0.02%  kwin_x11 [.] KWin::SlideEffect::isActive
 0.02%  kwin_x11 [.] QRegion::end@plt
 0.02%  vsync event mon  [.] KWin::SGIVideoSyncVsyncMonitorHelper::poll
 0.02%  kwin_x11 [.] KWin::OutputLocatorEffect::isActive
 0.01%  vsync event mon  [.] operator delete@plt
 0.01%  kwin_x11 [.] KWin::GlxBackend::makeCurrent
 0.01%  vsync event mon  [.] QMetaObject::activate@plt
 0.00%  vsync event mon  [.] QtPrivate::QCallableObject, void>::impl

# Samples: 1M of event 'cpu_core/cycles/Pu'
# Event count (approx.): 737751025988
#
# Overhead  Command  Symbol

#   ... 
.
.
#
 0.01%  kwin_x11 [.] KWin::BlurEffect::blurRegion
 0.00%  kwin_x11 [.] KWin::GlxBackend::present
 0.00%  kwin_x11 [.] KWin::BlurEffect::prePaintWindow
 0.00%  kwin_x11 [.] QRegion::~QRegion@plt
 0.00%  kwin_x11 [.] KWin::BlurEffect::blur
 0.00%  kwin_x11 [.] KWin::GlxBackend::present
 0.00%  kwin_x11 [.] KWin::GlxBackend::doBeginFrame
 0.00%  kwin_x11 [.] KWin::GlxContext::makeCurrent
 0.00%  vsync event mon  [.] KWin::SGIVideoSyncVsyncMonitorHelper::poll
 0.00%  vsync event mon  [.] std::chrono::_V2::steady_clock::now@plt
 0

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) writing a *ton* of data while re-indexing unchanged files

2024-07-01 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #44 from Kai Krakow  ---
(In reply to tagwerk19 from comment #43)
> I think the dust has probably settled here after:
> https://invent.kde.org/frameworks/baloo/-/merge_requests/131
> and cherrypicked for KF5
> https://invent.kde.org/frameworks/baloo/-/merge_requests/169

These work fine for me, I'm actually using baloo again in production.

> There's also been
>  https://invent.kde.org/frameworks/baloo/-/merge_requests/121

Actually, `MemoryHigh=512M` is quite aggressive. It can lead to swap storms and
cache thrashing of baloo under memory pressure because the process itself is
already 512M big, this leaves no space for caching which is important for baloo
to work with proper performance (consider that memory cgroups also account
cache usage). Especially the sub process baloo_file is hurt by this a lot while
indexing new files.

I personally used `MemoryHigh=2G` to fix this for my system - but this
parameter really depends a lot on the system environment. The service shows a
peak usage of 1.3G with almost no swap usage (less than 30M), so
`MemoryHigh=1536M` may be fine.

> and
>  https://invent.kde.org/frameworks/baloo/-/merge_requests/148

No objections, it makes sense.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) writing a *ton* of data while re-indexing unchanged files

2024-07-01 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #46 from Kai Krakow  ---
(In reply to tagwerk19 from comment #45)
> Yes, there's been a handful of bug reports where I've "blamed" the 512M
> limit.
> 
> I tentatively recommend "MemoryHigh=25%". I don't suppose many people run on
> systems with 2G RAM (even as VM's) and having a percentage means Baloo gets
> a lot more room to breath on systems with 8G.
> 
> I think "MemoryHigh=40%" is still quite reasonable and I would also include
> a "MemorySwapMax=0" to forestall swapping (which does seem to cause problems)

MemorySwapMax can lead to OOM situations, even for other processes, if the only
swap victim would be baloo. It is fine to swap out some dead pages which the
process never uses.

And we should be careful with percentages: `MemoryHigh` sets a priority at
which the kernel memory manager chooses processes to reduce memory usage (by
discard caches, flushing writeback, or swapping anonymous memory). We actually
want this to happen, we should be careful to not make baloo the last resort by
accidentally giving it the highest memory priority.

If we want to limit it, `MemoryMax` should be set (then baloo will never get
more memory). But `MemoryHigh` should be set to a reasonable minimum we want to
protect for the process so it can make forward progress. Setting it too high
creates an inverse effect for other important processes of the desktop. It the
lower bound of what is considered high memory usage before making memory
available to other processes. Memory is taken away from processes with the
highest `MemoryHigh` last.

As an idea, baloo could watch `/proc/pressure/memory` and if latencies go high,
it could pause for a while and flush its own caches. One cannot try to emulate
such a behavior with `MemoryHigh`.

Maybe the memory limits should be removed completely, and rather let the kernel
do the job using mgLRU (which could be recommended for distributions if it
works fine), and then let baloo watch memory pressure instead to throttle
itself. The problem is not with baloo reading files and using CPU, it's already
highly optimized here. The problem is with how the database uses memmap, so
it's directly competing with important desktop processes needing resident
memory (it's not designed to compete with other processes for memory). Using
memory pressure, we could mark selected memory ranges as "not needed" and flush
unwritten data early so it becomes available.

I had no more problems with baloo until it added the `MemoryHigh=512M`
parameter, so I added another one to force 2G instead. Which makes me wonder if
we need that parameter at all.

Just my 2 cents, no need to re-open.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) writing a *ton* of data while re-indexing unchanged files

2024-07-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #49 from Kai Krakow  ---
(In reply to tagwerk19 from comment #47)
> That said, I've not noticed the percentages behaving differently than a
> defined amount of memory (so, I think a "MemoryHigh=25%" on a 2GB system
> acts the same as a "MemoryHigh=512M"). It would be interesting if this was
> not the case...

No, it should not be different. In the end, it boils down to fixed numbers as
can be seen in `systemctl --user status kde-baloo.service`:

# Memory: 136.4M (high: 2.0G available: 1.8G peak: 1.3G swap: 18.4M swap peak:
18.5M zswap: 6.9M)
(where "high" is calculated from percentage to this number)

> I'm pretty sure the "MemoryHigh" is a soft limit, I was able to push the
> usage to just a little above the given limit but the process slowed down
> (markedly, when I pushed hard), I think when trying to claim more memory.

MemoryHigh is not a limit. MemoryHigh is an indicator/hint for the kernel
beyond which value the process group is considered to use a high amount of
memory. Now, if the kernel needs memory, it will reclaim memory from process
groups first that are most above their "MemoryHigh" value. Thus, if you make
this very high, the kernel will decide to reclaim memory from baloo last
because it is potentially the only service with a very high "MemoryHigh" value.
 The service is allowed to go beyond that memory usage just fine as long as the
kernel has no need for other memory.

This is also a problem in itself if mixing non-memory constrained services with
ones that have this setting. The system becomes very unbalanced unless you
adjust it for your very own needs. Leaving `MemoryHigh` empty instructs cgroups
to balance memory usage in a fair way.

> I
> tried the same with MemoryMax but this seemed to be a hard limit.

Yes, it is a hard limit. Allocations beyond `MemoryMax` will force the process
group to swap out inactive memory of itself.

> I tried
> setting a MemoryHigh with a slightly higher MemoryMax but it didn't seem to
> bring any benefits, the MemoryHigh on its own seemed to be quite effective
> at limiting Baloo's memory use.

Cannot work. `MemoryHigh` is not a limit, it's a hint for the memory management
when to consider a service to use "too much" memory, so services beyond that
allocation will be considered for reclaim first. Or viewed from the other side:
`MemoryHigh` is a type of resident memory protection which the kernel _tries_
to guarantee to the service (`MemoryMin` will force the guarantee).

> I'm also pretty sure that even with a defined MemoryHigh, Baloo releases
> memory when other processes require it.

Yes, because it's a "soft guarantee", not a "soft limit". If the kernel has no
more other processes to reclaim memory from, it will start reclaiming memory
from `MemoryHigh` services below their setting, in order of priority that makes
sense in that context. Baloo itself surely will free memory, too, by itself,
and that's reflected here. Those memory allocations also include cache which
baloo cannot directly control. The kernel tracks page cache ownership per
cgroup, and accounts that to memory usage, too.

I'm pretty sure `MemoryHigh` has been set so low (512M) because someone
considered it a soft limit, but it's a soft guarantee. And setting it too low
will hint the kernel to reclaim memory from such processes first - and that's
usually cache before swapping memory out (depends on vm.swappiness).

Thus, `MemoryHigh` should be set to a proper value that includes the active
working set of memory pages for the process + a good value for cache to let it
do it's job without stuttering the desktop. That settles around 1.5G of memory
for me. But OTOH, that means, we will also protect its memory even if baloo is
idle (and may be fine with using less than 1.5G RAM including caches). Thus I
think, it may be a better idea to completely leave that value empty, maybe only
include it as a comment with explanation so users can tune it easily with
`systemctl --user edit kde-baloo.service`.

> Certainly, there was dropping and rereading of clean pages when Baloo was
> closing on the limit. That was visible in iotop. I noticed in "pathological
> cases", indexing large quantities of data and having to manage very many
> dirty pages, pushed Baloo to swap and performance very clearly suffered
> (even when the rest of the system has sufficient space). I think it's
> (likely) worthwhile adding the MemorySwapMax=0 for Baloo to stop it reaching
> that point (although only if MemoryHigh is reasonable). The argument being
> an OOM for Baloo is (likely) better than it swapping. This is a value
> judgement through...

`MemoryHigh` is a two-edged sword... You can stop the observed behavior by
using a high valu

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) writing a *ton* of data while re-indexing unchanged files

2024-07-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #51 from Kai Krakow  ---
(In reply to tagwerk19 from comment #50)
> (In reply to Kai Krakow from comment #49) 
> 
> Thank you for the insights. That's a lot more to think about...

You're welcome.

> What we had previously, of BTRFS presenting "another different" device
> number on reboot and Baloo's initial scan for changes not committing at
> intervals, that was a catastrophic combination.

I initiated the idea to fold the uuid into the dev/inode feels somehow, I just
hadn't time exploring the source code. Luckily, someone finally implemented
that idea. \o/

> I think, in *general*,
> nowadays Baloo does not demand so much memory. Maybe though I should check
> when a lot of files have been deleted and Baloo has to catch up. How Baloo
> might behave when it is squeezed for memory (rather than being the culprit),
> that's something new to think about...

Yeah exactly. I think one remaining issue is when system performance suffers
not because baloo uses too much memory but because it becomes squeezed into too
little memory.

Thanks for testing it. I'm currently running fine with `MemoryLow=512M` and no
high limit, seems to work great so far even with games running and while
streaming, using btrfs on bcache with hdds.

With that configuration, more baloo memory has been pushed into swap - but it
was never reclaimed so its probably inactive memory anyways and should be in
swap.

I'd recommend to look into the "below" tool (an alternative implementation to
"atop"), it tracks memory usage via cgroups and thus can tell you also the
accounted cache memory of a process group where "htop" or "top" only show
resident process memory without caches accounted.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 453554] New: turning one monitor off kills the panel configuration of the second monitor

2022-05-08 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=453554

Bug ID: 453554
   Summary: turning one monitor off kills the panel configuration
of the second monitor
   Product: plasmashell
   Version: 5.24.5
  Platform: Gentoo Packages
OS: Linux
Status: REPORTED
  Severity: normal
  Priority: NOR
 Component: Multi-screen support
  Assignee: plasma-b...@kde.org
  Reporter: k...@kaishome.de
CC: aleix...@kde.org, notm...@gmail.com
  Target Milestone: 1.0

SUMMARY

Monitor setup (xrandr dump at the end):

Left main monitor: 4k displayport
* top plasma panel with activity switcher, global menu, date and time, systray
* bottom plasma panel with launch menu, icon window list, desktop switcher

Right small monitor: full HD HDMI connected via DP
* top plasma panel with window list, time, bluetooth applet, volume applet

TV: 4k, HDMI
* clone of left monitor (for couch gaming)

Graphics:
NVIDIA GTX 1660 Ti 6GB with Xorg

Whenever I turn off my main monitor, all its panels move over to the right
monitor. The same happens if the TV turns off or goes to sleep. Sometimes
(probably before 5.24.5), I can see two overlapping panels at the top (my main
top panel plus the simple side monitor panel) but since 5.24.5 the panel moves
consistently, replacing the configuration of the right monitor.

This was fine most of the time before 5.24.5 and consistently fine before
5.24.4: The panels were restored when I turned the main monitor back on, only
messing up if plasma crashed or shut down before turning the monitor back on.

But now it consistently throws away the plasma configuration of the right
monitor: After turning the main monitor back on, I'm left with an empty default
desktop on the right monitor, no custom background image, no panels, but all
open windows moved to this monitor.

Looking at the output of `qdbus org.kde.plasmashell /PlasmaShell
org.kde.PlasmaShell.dumpCurrentLayoutJS` I can see that each incident adds
another panel configuration in `layout.panels` but I have no way of getting it
back.

`plasmashellrc` has these lines:
```
[ScreenConnectors]
0=DP-4
1=HDMI-0
2=DP-1
```

It also had `2=:0.0` followed by `3=DP-1` but I removed that out of
desperation. It wasn't present in older backups of my system. It didn't change
anything about the behavior, tho.

STEPS TO REPRODUCE
1. Use a setup like I described above
2. Turn the displayport monitor off which seems to disconnect it from the
system (my DP monitor and HDMI TV do that when turning them off, my HDMI
monitor doesn't do it and seemingly stays connected/detected)
3. Observe the panels move over to the second screen
4. Turn first monitor back on

OBSERVED RESULT
After step 4, the panels move back to the monitor just turned back on but step
2/3 seem to have displaced the panel/desktop configuration of the second
monitor, and after step 4, plasma will replace it with an empty default
configuration.

EXPECTED RESULT
The panels should be properly restored to their respective original monitors. I
guess it's fine and wanted that disconnecting the primary monitor would move
panels over to remaining monitors, e.g. for laptop usage. But when I restore
the original monitor connection for which I configured the panels, that
configuration should be restored, or at least I should have an easy way to
choose which panel configuration I want to restore. But in my case, it's gone
for good although it still seems to live in the qdbus layout dump (and it's
piling up there because I need to recreate the layout multiple times per day).

I think Plasma should store and apply layouts like this:

Store a layout of each monitor, also store a flag if this was made on the
primary monitor. If the current monitor is the primary monitor, use the panel
layout of the original primary monitor. Otherwise fall back to the layout
originally defined for this monitor. Do not remove but swap layouts when the
primary layout flag is involved. Move the primary layout flag only when the
layout is actively edited.

SOFTWARE/OS VERSIONS
Operating System: Gentoo Linux
KDE Plasma Version: 5.24.5
KDE Frameworks Version: 5.93.0
Qt Version: 5.15.3
Kernel Version: 5.15.37-gentoo (64-bit)
Graphics Platform: X11
Processors: 20 × 12th Gen Intel® Core™ i7-12700K
Memory: 31.1 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2

ADDITIONAL INFORMATION

This behavior was triggered very rarely before 5.24.4, easily triggered with
5.24.4, and consistently triggers with 5.24.5. Given that history of behavior,
it's probably some race condition and is not intentional.

My clone monitor layout may play a role in this because I found in older
versions some months back, that sometimes plasma panels would be defined for my
TV instead of my main monitor (when I disabled the TV, all panels were gone).

I had situations when the panels actually moved to a "third" monitor right of
my seco

[plasmashell] [Bug 453554] turning one monitor off kills the panel configuration of the second monitor

2022-05-09 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=453554

--- Comment #3 from Kai Krakow  ---
(In reply to Marco Martin from comment #1)
> are all outputs connected to the internal videocard or there are external DP
> dongles involved?

No dongles but there is one DP-to-HDMI cable. Not sure if that counts as a
dongle.

The iGPU card is not active, I'm only using the PCI-e card.

> in plasmashell itself it doesn't seem that anything have happened between 
> 5.23 and 5.25, wonder in what part the breaking change was.

This morning when I turned the monitors back on, all was fine. So it may be
some timing issue or something is racing. Or it just created "enough" panels in
the qbus javascript dump that it no longer creates new configurations but just
chooses from the existing ones. I'll observe it for some time and report back.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 453554] turning one monitor off kills the panel configuration of the second monitor

2022-05-09 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=453554

--- Comment #4 from Kai Krakow  ---
Also, Plasma version is probably not the only thing that changed. The nvidia
driver was also updated at least once, and Xorg components were also updated at
least once. But I cannot really pin-point that to one of those changes, Plasma
version seems to be the strongest indicator.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 453554] turning one monitor off kills the panel configuration of the second monitor

2022-05-18 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=453554

--- Comment #5 from Kai Krakow  ---
It worked for a few days in a row. But yesterday evening and today morning,
this happened again and the behavior is quite random:

This time, only the top panel moved to the wrong screen while the bottom panel
stood in place. Or maybe it's rather the other way around: Turning my main
monitor off probably moves the panels to the other monitor, and when turning it
back on, the panels do not properly move back.

The interesting part this time is that the bottom panel behaved properly while
the top panel behaved wrong.

Latest 5.24 doesn't fix anything. Let's see if 5.25 solves something.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 453554] turning one monitor off kills the panel configuration of the second monitor

2022-06-21 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=453554

Kai Krakow  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---
 Ever confirmed|0   |1

--- Comment #8 from Kai Krakow  ---
(In reply to Nate Graham from comment #7)
> Cool, thanks! Can you file a new bug report for the new issue?
> 
> Out of curiosity, does the wallpaper show up after 10 seconds or so?

Re-opened, because unfortunately, the bug is still there:

With the new panel management tool (available from the edit mode), I can now
clearly see how panels move to the wrong screen. This usually happens when
connected monitors swap positions: 

The last few days, I'm pretty sure I had the following order in the "Drag
panels and desktops around" dialog: DP-4, DP-1, HDMI-0 (deactivated).

Today, when I turned my monitors on, the order changed to "DP-4, HDMI-0
(deactivated), DP-1", and the panels have moved to the deactivated screen (but
not the background image, that moved to a different screen a few days before
already).

Please take note that the background image shows the same bug but moves
independently of the panels, so there are probably race conditions. I've set
different wallpapers to track this: Both the wallpapers and the panels move to
different screens, and they do NOT move the same way: Sometimes only the
wallpaper moves to a different screen, sometimes only one panel of a screen
moves, sometimes two panels of the same screen move.

At least the panel management tools allows me to simply move panels and
wallpapers back to their correct screen.

The system hasn't been rebooted. All I do is turning off the monitors, and one
monitor completely disconnects from the graphics card when turned off. So to
reproduce it, in the worst case you'll have to physically disconnect the
monitor because many monitors keep their connector online when turned off - but
one of my monitors doesn't.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 453554] turning one monitor off kills the panel configuration of the second monitor

2022-06-27 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=453554

--- Comment #9 from Kai Krakow  ---
Created attachment 150180
  --> https://bugs.kde.org/attachment.cgi?id=150180&action=edit
configuration completely doesn't match the output

Here's an example of messed up content:

As you can see, the panels overlap on the right screen although two of them are
supposed to be on the left screen. Also, the left screen shows the background
image of the deactivated screen. Dragging the panels back and forth in the
editor fixes the panel placement. But dragging the background image will simply
leave a black background that is not clickable or interactable anymore until I
restart the plasmashell service.

So, no - it's not fixed. I'd even say it shows the exact same behavior in 5.25
as it did in 5.24. Configuration and outputs do not match, panels are in very
different locations than what Plasma thinks they should be.

Rarely, I see how all panels disappear when I turn a monitor back on, and then
re-appear around 5-10s later if that is what you were asking for. This seems to
have the effect that plasma doesn't become confused about the monitor layout.
I've last seen that in 5.24 but not yet in 5.25.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 453554] turning one monitor off kills the panel configuration of the second monitor

2022-06-27 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=453554

Kai Krakow  changed:

   What|Removed |Added

   Version Fixed In|5.25|

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 356727] Panel sometimes disappears on hotplug/re-plug/sleep/wake

2022-07-19 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=356727

--- Comment #76 from Kai Krakow  ---
(In reply to Nate Graham from comment #75)
> As a result it would
> probably be best if people who are still affected could file new bug
> reports, and I will try my best to triage them accordingly. Thanks!

I still have this open bug report which is similar but panels move to different
screens (even disabled screens sometimes):
https://bugs.kde.org/show_bug.cgi?id=453554

But the initial title doesn't exactly reflect the behavior under 5.25 because I
can now recover the panels from the panel editor. Should I set a new title and
set the new version number?

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 441077] Plasmashell panels may freeze, usually unrelated but unresponsive NFS/SMB mounts are involved

2021-10-16 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=441077

--- Comment #4 from Kai Krakow  ---
(In reply to Nate Graham from comment #2)
> In general, this is why KIO exists: to provide asynchronous, non-blocking
> access to flaky network resources. When you bypass KIO and mount them
> directly, you're undoing that protection.
> 
> What kinds of things have you manually mounted and why?

The mount in question is a samba share mounted over VPN when I work remotely at
home.

The problem with KIO is that it is not transparently available to all software,
i.e. when opening a document with LibreOffice, it will be copied to a temporary
directory, then copied back on save/quit. This removes the ability of
LibreOffice to lock the file and detect concurrent changes of the source file.
And it also breaks relation between the original file path and the path opened
in the application: This is not what I expect to be transparency.

Also, non-KDE programs cannot even parse the paths: Sometimes, KIO paths become
directly passed to the program instead of copying the file to a local path
first.

CLI utilities cannot even be used to navigate KIO mounts.

KIO should probably become a fuse module - which would then probably just
introduce this exact reported behavior which KIO tries to avoid.

KIO is nice if you exclusively only use KDE software - but that's quite
unrealistic in practice. Also, it falls apart once you drop to the CLI level,
which is what a lot of my workflow consists of.

I'm actually using KIO for things like managing files over sftp remotely via
Dolphin - and it works great then. But its field of use is very limited to me.

Maybe comment #3 solves it for me.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 441077] Plasmashell panels may freeze, usually unrelated but unresponsive NFS/SMB mounts are involved

2021-10-18 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=441077

--- Comment #7 from Kai Krakow  ---
(In reply to Nate Graham from comment #5)
> That's what kio-fuse was meant to solve. Do you have it installed?

Ah ok, didn't know how it worked - and it was eventually kicked from the system
previously by some conflict. I now reinstalled it and reloaded my systemd
daemon.

Observation: Opening files for non-KIO aware programs spawns a fuse mount.
Looks like it doesn't do that for KIO-aware programs (at least I see no
additional folders created in the mount directory).

Let's see how I can use that for me.

But I will still depend on NFS mounts from the local network, e.g. by backup
repository will be mounted via an automounter (daily full system backup with
borg). Usually, the NAS is available 24x7 but sometimes it will restart for
updates - and that's when the plasmashell rarely but eventually blocks. Why
does it look for network mounts that actually have no business with my user
account, or does it? Any way to debug this when it happens?

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 441077] Plasmashell panels may freeze, usually unrelated but unresponsive NFS/SMB mounts are involved

2021-10-19 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=441077

--- Comment #9 from Kai Krakow  ---
I'm not sure how that could even work.

(a) it runs from a different session context, it's running from systemd system
service while kio-fuse is a user session dbus service

(b) this would imply that I could use `ls nfs://serverip/` which I obviously
cannot (I tried, spoiler: doesn't work)

Maybe that could be solved if I knew how KDE/KIO decides whether to use KIO and
when to fall back to KIO fuse. How does this heuristic work?

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 441077] Plasmashell panels may freeze, usually unrelated but unresponsive NFS/SMB mounts are involved

2021-10-19 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=441077

--- Comment #10 from Kai Krakow  ---
OTOH, I could try migrating to a borg client/server model instead of opening
the repository via filesystem directly. This also decouples some security
concerns as the borg service limits access patterns to those needed for
repository access.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 421131] Wayland: cursor lags under heavy CPU load

2021-02-04 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=421131

--- Comment #14 from Kai Krakow  ---
I'd say that "loss of input events" should be actionable... (reported in
comment #11) I don't care if mouse lags behind a little bit or jumps during CPU
spikes, this also happens using X11. But it also loses input events (some
keypresses are just discarded), and this particular problem seems very
sensitive to even slight load spikes, and it was really distracting as texts I
type had a lot of missing letters as if I couldn't type properly.

I'm not sure if this has been fixed meanwhile because I switched back to
kwin_x11 for that matter (and a lot of other quirks like context menus showing
as windows etc). I'll give it another shot with 5.21: Seems at least a lot of
quirks had been fixed.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 441077] New: Plasmashell panels may freeze, usually unrelated but unresponsive NFS/SMB mounts are involved

2021-08-17 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=441077

Bug ID: 441077
   Summary: Plasmashell panels may freeze, usually unrelated but
unresponsive NFS/SMB mounts are involved
   Product: plasmashell
   Version: 5.21.5
  Platform: Other
OS: Linux
Status: REPORTED
  Severity: normal
  Priority: NOR
 Component: Panel
  Assignee: plasma-b...@kde.org
  Reporter: k...@kaishome.de
  Target Milestone: 1.0

Created attachment 140790
  --> https://bugs.kde.org/attachment.cgi?id=140790&action=edit
thread apply all bt

SUMMARY
Plasmashell tends to hang/completely freeze when a mounted network file system
temporarily does not respond. Most of the times, the panels will recover after
some minutes but sometimes they don't.

I've now seen a freeze which didn't recover and I had to SIGKILL plasmashell to
restart it, even `--replace` did not work. I'm not sure if a mounted file
system was involved this time (see Additional Information below).

Take note that the network mounts are completely unrelated, there's nothing on
the panel that even loads data from it.

In earlier versions this was also caused by plasma widgets loading data from
network while the internet connection temporarily stalled. I've since removed
all widgets that load data from network (like the weather widget). But I
believe this incident may be caused by the disk usage warning plugin of plasma
when it tries to access disk usage data from a non-responding mount.

Conclusion: Plasma should not block and maybe wrap a timeout handler around
queries that may potentially stall due to external reasons. However, this
incident may be different.

A plasma dev may have better insights. I'll attach a short and full gdb
backtrace I was able to fetch from the hanging pid.

Possible bug reports covering the mount-related issue but probably not a
duplicate of this:
#413110, #416972, #272361

STEPS TO REPRODUCE
0. The backtrace may not be about this particular hang:
1. Use network mounts somewhere below your home directory
2. Cut the network connection to stall access to these mounts
3. Observe plasmashell freezing and recovering minutes later

OBSERVED RESULT
Plasma panels stop responding to clicks and freeze with whatever content they
did currently render.

EXPECTED RESULT
Plasma should detect timeouts and recover in one or another way, as a last
resort it could kill itself and restart - which helped in this particular case:
I SIGKILLed it and restarted it.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Gentoo Linux
(available in About System)
KDE Plasma Version: 5.21.5
KDE Frameworks Version: 5.82.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION
This particular freeze may be related to this dmesg entry:

[686470.331086] BUG: unable to handle page fault for address: 00020ee8
[686470.331091] #PF: supervisor write access in kernel mode
[686470.331092] #PF: error_code(0x0002) - not-present page
[686470.331093] PGD 0 P4D 0
[686470.331096] Oops: 0002 [#1] PREEMPT SMP
[686470.331098] CPU: 1 PID: 1919 Comm: QSGRenderThread Not tainted
5.10.57-gentoo #1

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 441077] Plasmashell panels may freeze, usually unrelated but unresponsive NFS/SMB mounts are involved

2021-08-17 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=441077

--- Comment #1 from Kai Krakow  ---
Created attachment 140791
  --> https://bugs.kde.org/attachment.cgi?id=140791&action=edit
thread apply all bt full

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 402154] Baloo reindexes everything after every reboot

2021-04-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=402154

Kai Krakow  changed:

   What|Removed |Added

 CC||k...@kaishome.de

--- Comment #18 from Kai Krakow  ---
(In reply to tagwerk19 from comment #17)
> Looks as if this is a long term issue...
> Scroll down to the last posts in Bug 404057

Yep, this problem has already been deeply analyzed and is well understood. The
referenced bug report includes a lot of thoughts, possible solutions, and also
a few real improvements as patches - some of those were merged. There are also
links to phabricator with extended discussion. I suggest to read that entirely
to understand the problem (some later comments re-decide on previous thoughts).

Sadly, I mostly lost interest in this issue in favor of other more important or
personal stuff. I simply ditched baloo since then as I wasn't really using it
anyway that much.

But if anyone wants to take the effort in crafting any patches, they might want
to start with implementing the mapping table from volume/subvolume UUID to a
virtual device number - and that virtual device number would than be used
instead of the real one. This way, a distinct file system would always show up
as the same device number in baloo - no matter on which device node it
appeared. It solves almost all of the problems mentioned here. I volunteer to
mentor/help with such an implementation, I'm just too bad with Qt/KDE APIs to
kickstart that myself.

Later improvements should look at access patterns and how to optimize that,
maybe LMDB can be used in a better way to optimize it for background desktop
access patterns, otherwise it may need to be replaced with some other backend
that's better at writing data to the database (aka, less scattering of data
over time): LMDB is optimized for reads and appends, much less for random
writes (but the latter is the most prominent access pattern for a desktop
search index). So if we stay with LMDB, baloo needs to be optimized to prevent
rewrites in favor of appends - without blowing up the DB size too much. It may
mean to purge still existing data from the LMDB mmap in favor of a bigger
continuous block of free DB memory. Also, aggressive write coalescing is needed
to avoid fragmentation access patterns in filesystems.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 402154] Baloo reindexes everything after every reboot

2021-04-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=402154

--- Comment #19 from Kai Krakow  ---
BTW: Such a UUID-to-deviceId mapping table would allow baloo to properly
support most yet unsupported filesystems, probably also zfs. With such an idea
implemented, the only requirement left to a supported filesystem would be that
it has stable inodes across re-mounts/re-boots (most have, some don't) and
supports reverse lookups (inode to path).

The problematic design decision is how baloo identifies files: each file is
assigned a devId/inodeId number (each lower 32-bit only, combined into a 64-bit
fileId). If this magic number changes (that happens in zfs, btrfs, nfs...), the
file appears as new. But neither Linux nor POSIX state anywhere that this can
be used as an id to uniquely identify files - unless you never remount or
reboot. Also, re-used inode numbers (especially after clipping at 32 bit) will
completely mess up and confuse baloo.

So this needs are multi-step fix: First (and most importantly) introduce
virtual deviceIds by implementing a mapping table "volume/subvolId <->
virtualDeviceId" where virtualDeviceId would be a monotonically increasing
number used uniquely throughout the index as a device id. Next step: Enlarge
fileIds from 64 to 128 bit, so it can be crafted from 64-bit devid/inode
without clipping/wraparound.

On the pro side, such a mapping table would also allow to properly clean up
index data from the DB for file systems no longer needed. Currently, baloo
never knows if a file system would appear or doesn't. This could be implemented
in one of the later steps as some sort of housekeeping optimizations.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 402154] Baloo reindexes everything after every reboot

2021-05-02 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=402154

--- Comment #22 from Kai Krakow  ---
(In reply to tagwerk19 from comment #20)
> (In reply to Kai Krakow from comment #18)
> > ... I suggest to
> > read that entirely to understand the problem ...
> I've done my best :-) Thank you for the info!
> 
> In:
> 
> https://bugs.kde.org/show_bug.cgi?id=404057#c35
> 
> You have the the idea of an "Index per Filesystem" but then the idea seems

I didn't... I explained why that would not work.

> to have been put to the side. You mention "storage path" as a problem? Would
> the way "local wastebaskets" are managed on mounted filesystems be a model?
> They have to deal with the same issues as you've listed.

The problem is that you would have do deal with proper synchronization when
multiple databases are used. That is not just "find a writeable storage
location and register this location somewhere". Also, you would need to have
all these different DBs opened at the same time, and LMDB is a memory mapped
database with random access patterns. So you'd multiply the memory pressure
with each location, and that will dominate the filesystem cache.

> https://phabricator.kde.org/T9805 

This mentions "store an identifier per tracked device, e.g the filesystem UUID"
which is probably my idea. Instead of using dev_id directly, the database
should have a lookup table where filesystem UUIDs are stored as a simple list.
The index of this list can be used as the new dev_id for the other tables.

> Has a mention of "... inside encrypted containers", see this also in Bug
> 390830.

Encrypted containers should never be indexed in a global database as that would
leak information from the encrypted container. The easiest solution would be to
just not index encrypted containers unless the database itself is stored in an
encrypted container - but that's also just an bandaid. Maybe encrypted
containers should not be stored at all. Putting LMDB on an encrypted containers
may have very bad side-effects on the performance side.

> As background thoughts...
> 
> Things like "Tags:" folders in Dolphin and incremental searches
> when you type into Krunner depend on baloosearch being lightning fast.

Having multiple databases per filesystem can only make this slower by
definition because you'd need to query multiple databases. From my personal
experience with fulltext search engines (ElasticSearch) I can only tell you
that querying indexes and recombining results properly is a huge pita, and it's
going to slow things way down. So the multiple database idea is probably a dead
end.

> It would be a shame to lose the ability to search for phrases as in
> baloosearch Hello_Penguin
> as opposed to
> baloosearch "Hello Penguin"
> 
> I'm guessing BTRFS usage is going to grow.

The point is: Neither Linux nor POSIX state anywhere that a dev_id from stat()
is unique across reboots or remounts. This is even less true for inode numbers
with some remote filesystems or non-inode filesystems (where inode numbers are
virtual and may be allocated from some runtime state). Those are not stable
ids. At least for native Linux-filesystems we can expect inode numbers to be
stable as those are stored inside the FS itself (the dev_id isn't but UUID is).

On a side-note: In this context it would make sense to provide baloo as a
system-wide storage and query service shared by multiple users, with an indexer
running per user (to index encrypted containers). It's the only way to support
these ideas:

- safe access to encrypted containers
- the database can be isolated from being readable by users (prevents
  information leakage)
- solves the problem of multiple users indexing the same data multiple times
- has capabilities to properly read UUIDs from filesystems/subvolumes (some
  FS only allow this for root)
- can guard/filter which results are returned to users (by respecting FS ACLs
  and permission bits)
- shared index location (e.g. /usr/share/docs) would be indexed just once

On the contra side:

- needs some sort of synchronization between multiple indexers (should work
  around race conditions that multiple indexers do not read and index the same
  files twice), could be solved by running the indexer within the system-wide
  service, too, but access to encrypted containers needs to be evaluated

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 421131] Wayland: cursor lags under heavy CPU load

2020-10-19 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=421131

Kai Krakow  changed:

   What|Removed |Added

 CC||k...@kaishome.de

--- Comment #9 from Kai Krakow  ---
I'm not sure if using setcap on kwin_wayland is correct: Now all desktop
processes are running with FIFO/1 priority, probably because plasma forked from
kwin_wayland.

On supported kernels, it could try to use isochronous scheduling which is
supported by some kernels and doesn't need special privileges: It works mostly
like FIFO scheduling.

But in the first place, it shouldn't spawn any processes while running with
raised priority.

Also, why doesn't it use rt-kit as a fallback? Or a small suid helper which
checks if the parent process is kwin and then changes the priority?

-- 
You are receiving this mail because:
You are watching all bug changes.

[Bluedevil] [Bug 435444] New: bluetooth is constantly scanning for services / devices

2021-04-06 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=435444

Bug ID: 435444
   Summary: bluetooth is constantly scanning for services /
devices
   Product: Bluedevil
   Version: 5.21.3
  Platform: Gentoo Packages
OS: Linux
Status: REPORTED
  Severity: normal
  Priority: NOR
 Component: general
  Assignee: now...@gmail.com
  Reporter: k...@kaishome.de
CC: plasma-b...@kde.org
  Target Milestone: ---

SUMMARY

When the KDE session is running, my bluetooth dongle is constantly scanning for
services and devices. The timeout is around 10s but it will immediately start
again.

The effect of this is that some bluetooth-connected devices have problems
communicating correctly with my PC because inquiries are prioritized over other
bluetooth traffic with the effect it seems to completely dominate the bluetooth
connection.

One affected device is the Xbox Elite 2 controller: While KDE is running, it is
unstable and loses or delays input events. When KDE is stopped, the controller
works just fine.

After an [issue report in the Bluez Github
project](https://github.com/bluez/bluez/issues/123) I was told that it is
neither normal nor expected/recommended to have the dongle in permanent
scan/inquiry mode because that traffic is priorities above other traffic which
could explain my problem. It doesn't matter if I disable any KDE services
(kdeconnect, bluetooth events, ...): The dongle is constantly discovering for
10s, then immediately starts again in a loop. Sometimes after I rebooted, the
pattern may be different: 10s of discovering, 10s of non-discovering.

This also seems to affect how well different devices may be able to connect via
bluetooth: Without KDE running, my paired bluetooth devices connect
immediately, with KDE running, the connection may take 30-60s before it is
established.

STEPS TO REPRODUCE
1. Enable bluetooth
2. Watch the output of btmgmt or btmon
3. Try with KDE and without KDE running

OBSERVED RESULT

With KDE running, watch btmgmt to see "hci0 type 1 discovering on" / "... off"
is looping with 10s in "on" state, and <1s in "off" state.

Without KDE running, no such behavior can be observed.

Bluetooth devices have difficulties to properly communicate with low latency
while inquiries are running, this may have a HUGE impact on SOME devices,
especially devices requiring low latency (input, audio) come to mind here.

EXPECTED RESULT

KDE (or some component of it) should not constantly scan trying to discover
devices.

ADDITIONAL INFO

The "Add device" wizard is not running.

kdeconnect is running, it seems to have bluetooth integration.

kio may be involved:
https://github.com/KDE/bluedevil/blob/bb28472500c1292c9059b06af937ed51b4cb02f8/src/kio/bluetooth/kiobluetooth.cpp#L159
(the 10s timeout is quite an evidence)

I already tried disabling pulseaudio and other bluetooth-integrated services.
Only shutting KDE completely down resolves the issue.

Maybe related:
#308338, #401983

As per https://bugs.kde.org/show_bug.cgi?id=401983#c3 the kio thing looks
promising. But how would I identify the process which is hammering the
bluetooth:/ kio service?

-- 
You are receiving this mail because:
You are watching all bug changes.

[Bluedevil] [Bug 435444] bluetooth is constantly scanning for services / devices

2021-04-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=435444

--- Comment #1 from Kai Krakow  ---
Killing kdeconnectd seems to stop this behavior.

-- 
You are receiving this mail because:
You are watching all bug changes.

[Bluedevil] [Bug 435444] bluetooth is constantly scanning for services / devices

2021-04-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=435444

Kai Krakow  changed:

   What|Removed |Added

Version|5.21.3  |5.21.4

-- 
You are receiving this mail because:
You are watching all bug changes.

[Bluedevil] [Bug 435444] bluetooth is constantly scanning for services / devices

2021-04-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=435444

--- Comment #3 from Kai Krakow  ---
Are there instruction on how to properly create a dbus monitor log?

-- 
You are receiving this mail because:
You are watching all bug changes.

[dolphin] [Bug 428770] New: Dolphin crashed when browsing cifs mounts

2020-11-06 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=428770

Bug ID: 428770
   Summary: Dolphin crashed when browsing cifs mounts
   Product: dolphin
   Version: 20.08.2
  Platform: Gentoo Packages
OS: Linux
Status: REPORTED
  Keywords: drkonqi
  Severity: crash
  Priority: NOR
 Component: general
  Assignee: dolphin-bugs-n...@kde.org
  Reporter: k...@kaishome.de
CC: kfm-de...@kde.org
  Target Milestone: ---

Application: dolphin (20.08.2)

Qt Version: 5.15.1
Frameworks Version: 5.74.0
Operating System: Linux 5.4.73-gentoo x86_64
Windowing system: X11
Distribution: "Gentoo Base System release 2.7"

-- Information about the crash:
- What I was doing when the application crashed:

I have some folders mounted over CIFS from a remote VPN. When browsing folders
(e.g., clicking multiple folders in a short time), Dolphin crashes. This is
probably some timing issue, I've never seen it crashing on local folders.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault
Content of s_kcrashErrorMessage: (null)
[New LWP 2867442]
[New LWP 2867443]
[New LWP 2867451]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
0x7ff2454d31ef in __GI___poll (fds=fds@entry=0x7ffd4f79c428,
nfds=nfds@entry=1, timeout=timeout@entry=1000) at
../sysdeps/unix/sysv/linux/poll.c:29
[Current thread is 1 (Thread 0x7ff23e62c8c0 (LWP 2867440))]

Thread 4 (Thread 0x7ff22aa82640 (LWP 2867451)):
#0  __GI___getdents64 (fd=4, buf=buf@entry=0x7ff21410d6f0, nbytes=) at ../sysdeps/unix/sysv/linux/getdents64.c:32
#1  0x7ff2454a7b15 in __GI___readdir64 (dirp=dirp@entry=0x7ff21410d6c0) at
../sysdeps/posix/readdir.c:65
#2  0x7ff24535f678 in walkDir (dirPath=...,
countHiddenFiles=countHiddenFiles@entry=false,
countDirectoriesOnly=countDirectoriesOnly@entry=false, dirEntry=, dirEntry@entry=0x7ff21400dc18,
allowedRecursiveLevel=allowedRecursiveLevel@entry=0) at
/var/tmp/portage/kde-apps/dolphin-20.08.2/work/dolphin-20.08.2/src/kitemviews/private/kdirectorycontentscounterworker.cpp:53
#3  0x7ff24535f93d in walkDir (dirPath=...,
countHiddenFiles=countHiddenFiles@entry=false,
countDirectoriesOnly=countDirectoriesOnly@entry=false, dirEntry=0x7ff21400dc18,
dirEntry@entry=0x0, allowedRecursiveLevel=allowedRecursiveLevel@entry=1) at
/var/tmp/portage/kde-apps/dolphin-20.08.2/work/dolphin-20.08.2/src/kitemviews/private/kdirectorycontentscounterworker.cpp:92
#4  0x7ff24535fa7a in KDirectoryContentsCounterWorker::subItemsCount
(path=..., options=...) at /usr/include/qt5/QtCore/qarraydata.h:61
#5  0x7ff24535fb57 in
KDirectoryContentsCounterWorker::countDirectoryContents (this=0x55e06c580b90,
path=..., options=...) at
/var/tmp/portage/kde-apps/dolphin-20.08.2/work/dolphin-20.08.2/src/kitemviews/private/kdirectorycontentscounterworker.cpp:133
#6  0x7ff2432918ce in QObject::event (this=0x55e06c580b90,
e=0x55e06cf0b2c0) at
/var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qobject.cpp:1314
#7  0x7ff243de9142 in QApplicationPrivate::notify_helper
(this=this@entry=0x55e06c00fac0, receiver=receiver@entry=0x55e06c580b90,
e=e@entry=0x55e06cf0b2c0) at
/var/tmp/portage/dev-qt/qtwidgets-5.15.1/work/qtbase-everywhere-src-5.15.1/src/widgets/kernel/qapplication.cpp:3630
#8  0x7ff243df22e1 in QApplication::notify (this=0x7ffd4f79e5a0,
receiver=0x55e06c580b90, e=0x55e06cf0b2c0) at
/var/tmp/portage/dev-qt/qtwidgets-5.15.1/work/qtbase-everywhere-src-5.15.1/src/widgets/kernel/qapplication.cpp:3154
#9  0x7ff243263998 in QCoreApplication::notifyInternal2
(receiver=0x55e06c580b90, event=0x55e06cf0b2c0) at
/var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qcoreapplication.cpp:1063
#10 0x7ff2432666f3 in QCoreApplicationPrivate::sendPostedEvents
(receiver=0x0, event_type=0, data=0x55e06c55e9d0) at
/var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qcoreapplication.cpp:1817
#11 0x7ff2432bdaf4 in postEventSourceDispatch (s=0x7ff214004fe0) at
/var/tmp/portage/dev-qt/qtcore-5.15.1-r1/work/qtbase-everywhere-src-5.15.1/src/corelib/kernel/qeventdispatcher_glib.cpp:277
#12 0x7ff240fc427d in g_main_dispatch (context=0x7ff214000c20) at
../glib-2.64.5/glib/gmain.c:3309
#13 g_main_context_dispatch (context=context@entry=0x7ff214000c20) at
../glib-2.64.5/glib/gmain.c:3974
#14 0x7ff240fc44f8 in g_main_context_iterate
(context=context@entry=0x7ff214000c20, block=block@entry=1,
dispatch=dispatch@entry=1, self=) at
../glib-2.64.5/glib/gmain.c:4047
#15 0x7ff240fc458f in g_main_context_iteration (context=0x7ff214000c20,
may_block=may_block@entry=1) at ../glib-2.64.5/glib/gmain.c:4108
#16 0x7ff2432bd882 in QEventDispatcherGlib::processEvents
(this=0x7ff214000b60, flags=...) at
/var/tmp/portage/d

[plasmashell] [Bug 377588] plasma panels not shown after reboot

2020-11-08 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=377588

--- Comment #6 from Kai Krakow  ---
I can still reproduce it on a real 2-monitor system at work: After an update to
Plasma 5.20, one panel was gone, the other moved over to the second monitor.

When I switch between Wayland session and X11 session, I can reproduce that
behavior.

I didn't yet confirm this behavior: In the office, someone disconnected one
monitor from my workstation while a Wayland session was running. When I
returned to the office later with the monitor already reconnected, both
monitors seemed to have swapped places, and one panel was gone.

Meanwhile, on the original system, I had no more problems: The configuration
has been stable there for a while now. But I cannot use Wayland there, only
X11. So I cannot confirm if the issue still exists on that system.

-- 
You are receiving this mail because:
You are watching all bug changes.

[dolphin] [Bug 422282] Crash inKFileItemModel::removeItems() when using the tree view mode of the details view

2020-11-08 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=422282

--- Comment #19 from Kai Krakow  ---
Following up on my original report https://bugs.kde.org/show_bug.cgi?id=428770:

When the problem occurs, I usually see every folder entry duplicated. I only
observed that in folder tree mode when expanding the tree on a sub folder.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 479859] New: select-and-drag text crashes some or all non-KDE apps in wayland

2024-01-15 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=479859

Bug ID: 479859
   Summary: select-and-drag text crashes some or all non-KDE apps
in wayland
Classification: Plasma
   Product: kwin
   Version: 5.27.10
  Platform: Gentoo Packages
OS: Linux
Status: REPORTED
  Severity: major
  Priority: NOR
 Component: wayland-generic
  Assignee: kwin-bugs-n...@kde.org
  Reporter: k...@kaishome.de
  Target Milestone: ---

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. Browse a web page in Chrome
2. Select text with the mouse
3. Try to drag the selected text across the screen

OBSERVED RESULT

The desktop freezes for a short amount of time ramping up IO, then the
application (source of the drag operation) crashes.

EXPECTED RESULT

The application should not crash, obviously. But also, I should be able to drag
the text to another window, or drag the text from one input field to another.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Gentoo Linux 2.14, kernel 6.6.9, Wayland
(available in About System)
KDE Plasma Version: 5.27.10
KDE Frameworks Version: 5.113.0
Qt Version: 5.15.11

ADDITIONAL INFORMATION

If this happens by accident, unsaved work gets lost thus raising bug priority.

Also, this or a similar crash happens when dragging the last open Chrome tab
out of its window.

Apps that actually drag text as text seem to not be affected, e.g. I could drag
text from Sublime Text to KWrite. So this may be limited to the Chrome-family
of browsers and Electron apps. Or there is an issue with multi-format clipboard
contents, e.g. dragging text from the browser can insert HTML and plain text,
or dragging a browser tab can insert the tab in another browser or the URL in a
text editor.

Chrome creates a crashdump with SIGTRAP, but there's no backtrace.

No such crash seems to occur with X11.

-- 
You are receiving this mail because:
You are watching all bug changes.

[filelight] [Bug 477569] New: Filelight crashes when deleting a directory via context menu

2023-11-26 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=477569

Bug ID: 477569
   Summary: Filelight crashes when deleting a directory via
context menu
Classification: Applications
   Product: filelight
   Version: 23.08.3
  Platform: Gentoo Packages
OS: Linux
Status: REPORTED
  Keywords: drkonqi
  Severity: crash
  Priority: NOR
 Component: general
  Assignee: unassigned-b...@kde.org
  Reporter: k...@kaishome.de
CC: martin.sandsm...@kde.org
  Target Milestone: ---

Application: filelight (23.08.3)

Qt Version: 5.15.11
Frameworks Version: 5.112.0
Operating System: Linux 6.6.2-gentoo x86_64
Windowing System: X11
Distribution: "Gentoo Linux"
DrKonqi: 5.27.9 [KCrashBackend]

-- Information about the crash:
As the title says:

1. Open a folder in file light, e.g. right-click in dolphin on a folder and
choose "open in filelight".
2. Then let the directory scan complete.
3. Right click on a folder and choose "delete".

A dialog box appears asking for confirmation but then filelight immediatly
crashes even before I have a chance to confirm or cancel the dialog.

The crash can be reproduced every time.

-- Backtrace:
Application: Filelight (filelight), signal: Aborted
Content of s_kcrashErrorMessage: std::unique_ptr = {get() = 0x0}
[KCrash Handler]
#6  __pthread_kill_implementation (threadid=,
signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#7  0x563cf40b13ef in __pthread_kill_internal (signo=6, threadid=) at pthread_kill.c:78
#8  0x563cf4063922 in __GI_raise (sig=sig@entry=6) at
../sysdeps/posix/raise.c:26
#9  0x563cf404d4ad in __GI_abort () at abort.c:79
#10 0x563cf46920fd in qt_message_fatal (message=...,
context=) at
/var/tmp/portage/dev-qt/qtcore-5.15.11-r1/work/qtbase-everywhere-src-5.15.11/src/corelib/global/qlogging.cpp:1919
#11 QMessageLogger::fatal(char const*, ...) const
(this=this@entry=0x7ffc5cdbfc70, msg=msg@entry=0x563cf61bfc68 "Object %p
destroyed while one of its QML signal handlers is in progress.\nMost likely the
object was deleted synchronously (use QObject::deleteLater() instead), or the
application is running a nested e"...) at
/var/tmp/portage/dev-qt/qtcore-5.15.11-r1/work/qtbase-everywhere-src-5.15.11/src/corelib/global/qlogging.cpp:898
#12 0x563cf6082756 in QQmlData::destroyed(QObject*) (this=,
object=0x563cf822fac0) at
/var/tmp/portage/dev-qt/qtdeclarative-5.15.11-r2/work/qtdeclarative-everywhere-src-5.15.11/src/qml/qml/qqmlengine.cpp:1965
#13 0x563cf48c7688 in QObject::~QObject() (this=this@entry=0x563cf822fac0,
__in_chrg=) at
/var/tmp/portage/dev-qt/qtcore-5.15.11-r1/work/qtbase-everywhere-src-5.15.11/src/corelib/kernel/qobject.cpp:1019
#14 0x563cf3d6ac7a in QQuickAction::~QQuickAction()
(this=this@entry=0x563cf822fac0, __in_chrg=) at
/var/tmp/portage/dev-qt/qtquickcontrols2-5.15.11/work/qtquickcontrols2-everywhere-src-5.15.11/src/quicktemplates2/qquickaction.cpp:360
#15 0x563cec4e049b in
QQmlPrivate::QQmlElement::~QQmlElement() (this=0x563cf822fac0,
__in_chrg=) at /usr/include/qt5/QtQml/qqmlprivate.h:144
#16 QQmlPrivate::QQmlElement::~QQmlElement()
(this=0x563cf822fac0, __in_chrg=) at
/usr/include/qt5/QtQml/qqmlprivate.h:144
#17 0x563cf48c1762 in QObjectPrivate::deleteChildren()
(this=this@entry=0x563cf8228770) at
/var/tmp/portage/dev-qt/qtcore-5.15.11-r1/work/qtbase-everywhere-src-5.15.11/src/corelib/kernel/qobject.cpp:2137
#18 0x563cf48c7a24 in QObject::~QObject() (this=this@entry=0x563cf82286b0,
__in_chrg=) at
/var/tmp/portage/dev-qt/qtcore-5.15.11-r1/work/qtbase-everywhere-src-5.15.11/src/corelib/kernel/qobject.cpp:1115
#19 0x563cf6662ab2 in QQuickItem::~QQuickItem()
(this=this@entry=0x563cf82286b0, __in_chrg=) at
/var/tmp/portage/dev-qt/qtdeclarative-5.15.11-r2/work/qtdeclarative-everywhere-src-5.15.11/src/quick/items/qquickitem.cpp:2389
#20 0x563cf3d87e2f in QQuickControl::~QQuickControl()
(this=this@entry=0x563cf82286b0, __in_chrg=) at
/var/tmp/portage/dev-qt/qtquickcontrols2-5.15.11/work/qtquickcontrols2-everywhere-src-5.15.11/src/quicktemplates2/qquickcontrol.cpp:1009
#21 0x563cf3d67acb in QQuickAbstractButton::~QQuickAbstractButton()
(this=this@entry=0x563cf82286b0, __in_chrg=) at
/var/tmp/portage/dev-qt/qtquickcontrols2-5.15.11/work/qtquickcontrols2-everywhere-src-5.15.11/src/quicktemplates2/qquickabstractbutton.cpp:491
#22 0x563cec4e237d in QQuickMenuItem::~QQuickMenuItem()
(this=0x563cf82286b0, __in_chrg=) at
/var/tmp/portage/dev-qt/qtquickcontrols2-5.15.11/work/qtquickcontrols2-everywhere-src-5.15.11/include/QtQuickTemplates2/5.15.11/QtQuickTemplates2/private/../../../../../src/quicktemplates2/qquickmenuitem_p.h:58
#23 QQmlPrivate::QQmlElement::~QQmlElement()
(this=0x563cf82286b0, __in_chrg=) at
/usr/include/qt5/QtQml/qqmlprivate.h:144
#24 QQmlPrivate::QQmlElement::~QQmlElement()
(this=0x563cf82286b0, __in_chrg=) at
/usr/include/qt5/QtQml/qqmlprivate.h:144
#25 0

[kwin] [Bug 472182] New: kwin_wayland crashed probably while calling into pipewire

2023-07-12 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=472182

Bug ID: 472182
   Summary: kwin_wayland crashed probably while calling into
pipewire
Classification: Plasma
   Product: kwin
   Version: 5.27.4
  Platform: Gentoo Packages
OS: Linux
Status: REPORTED
  Severity: normal
  Priority: NOR
 Component: wayland-generic
  Assignee: kwin-bugs-n...@kde.org
  Reporter: k...@kaishome.de
  Target Milestone: ---

Created attachment 160248
  --> https://bugs.kde.org/attachment.cgi?id=160248&action=edit
thread apply all bt full

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. Put the system under high load (memory pressure and high IO, e.g. compiling
a big package)
2. Use the desktop
3. Some actions (switching a task, hovering icons, copying to clipboard)
suddenly freeze the desktop including the mouse pointer

OBSERVED RESULT

When the desktop froze, I can instantly observe high IO thrashing. The desktop
has been under load before (both IO and RAM) but I could still use it smoothly.
After 1-2 minutes, the disk thrashing stops, the screens go black, then my
session restarts empty.

IO thrashing can probably be explained because a lot of processes become killed
at the same time, causing swapping and memory cleanup, at the same time,
systemd-coredump collects debug info to create the backtrace. So I think IO
thrashing and RAM pressure is not directly causing the problem. This feels more
like a race condition caused by system latency spikes.

EXPECTED RESULT

The system should freeze shortly (in the worst case) and then recover. In the
best case, it should just become slow to respond and the mouse pointer should
not freeze - but wayland seem to be much more susceptible to system load than
Xorg, both for input latency and rendering. This may create an impression that
the crash is seemingly related to the high system load.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Gentoo, kernel 6.1.28
(available in About System)
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.104.0
Qt Version: 5.15.10

ADDITIONAL INFORMATION

(this is the second of two identical backtraces, the previous backtrace was
recorded 1 month ago, gdb backtrace attached)

   PID: 2479 (kwin_wayland)
   UID: 1000 (kakra)
   GID: 1000 (kakra)
Signal: 11 (SEGV)
 Timestamp: Wed 2023-07-12 10:25:46 CEST (1h 0min ago)
  Command Line: /usr/bin/kwin_wayland --wayland-fd 7 --socket wayland-0
--xwayland-fd 8 --xwayland-fd 9 --xwayland-display :1 --xwayland-xauthority
/run/user/1000/xauth_BvNgWv --xwayland
Executable: /usr/bin/kwin_wayland
 Control Group:
/user.slice/user-1000.slice/user@1000.service/session.slice/plasma-kwin_wayland.service
  Unit: user@1000.service
 User Unit: plasma-kwin_wayland.service
 Slice: user-1000.slice
 Owner UID: 1000 (kakra)
   Boot ID: d2c6891dae64413da51cd66ab5c9cd05
Machine ID: 5047221968d9d69177b931b5000a
  Hostname: arbeitsplatz1
   Storage:
/var/lib/systemd/coredump/core.kwin_wayland.1000.d2c6891dae64413da51cd66ab5c9cd05.2479.168915034600.zst
(inaccessible)
   Message: Process 2479 (kwin_wayland) of user 1000 dumped core.

Module libpipewire-module-session-manager.so without build-id.
Module libpipewire-module-metadata.so without build-id.
Module libpipewire-module-adapter.so without build-id.
Module libpipewire-module-client-device.so without build-id.
Module libpipewire-module-client-node.so without build-id.
Module libpipewire-module-protocol-native.so without build-id.
Module libspa-dbus.so without build-id.
Module libqtquicktemplates2plugin.so without build-id.
Module libplasmacomponentsplugin.so without build-id.
Module libqtquickcontrolsplugin.so without build-id.
Module libqmlplugin.so without build-id.
Module libplasmaextracomponentsplugin.so without build-id.
Module libqquicklayoutsplugin.so without build-id.
Module libOpenGL.so.0 without build-id.
Module libKF5Declarative.so.5 without build-id.
Module libKF5QuickAddons.so.5 without build-id.
Module libKF5PlasmaQuick.so.5 without build-id.
Module libcorebindingsplugin.so without build-id.
Module libwindowplugin.so without build-id.
Module libspa-journal.so without build-id.
Module libspa-support.so without build-id.
Module libwebpdemux.so.2 without build-id.
Module libwebpmux.so.3 without build-id.
Module libqweb

[plasmashell] [Bug 375951] locally integrated menus

2020-07-14 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=375951

--- Comment #38 from Kai Krakow  ---
(In reply to Adam from comment #34)
> I would love to see LIM. Having the two bars is a waste of space imo.
> 
> I tried with the menu button before, but then you don't see which menus are
> available, and there is the additional click, after which you have to find
> the menu you are looking for, and move the mouse.
> 
> It would be a bit faster with the hiding menu in the title bar. But still,
> there would be the problem of not seeing everything from the start,
> discoverability, and having to hover the title bar before being able to move
> to the right menu.
> Therefore I would prefer to have menu and title side by side. If there is
> little space, it could degenerate to a hamburger or traditional 2 line setup.

Do we really need a title at all? Most multi-document apps today are tabbed
anyways, so we have the document title in the tab bar. And it's pretty clear
which application is which by just looking at it's appearance. Why duplicate
the title in the decoration when we already have it in the task bar?

I already made my decoration "title" bar as small as possible because I'm
rarely interested in what the title is - and I can already drag most windows by
dragging from some blank space in the window.

I'm not even sure if classical menu items should be in a title bar at all: It's
not too easy to point at them unless the window is maximized (because then the
mouse pointer would stop at the top of the screen). So menu bars should be at
the top of the screen and change when I switch the window. I'm seeing the
"title" bar to be more useful for items like some often used functions of the
application (the core function if you want so). And by eliminating the menu
from it completely, there'd also be space for a document title.

But yes, if menu items right within the window should be the way to go, I'd
rather see the expanded list of items across the decoration instead of a title,
and instead of hiding away possibly important menu items in a hamburger menu. I
consider the application title or document title the least important thing to
have in the decoration, as usually that's duplicated to the task bar and tab
bars anyways. But that's probably not true for all applications.

The current miniature hamburger menu is just a pita to use - did you ever try
to click it without precise targeting the mouse pointer at it? A temporary
solution could be to make the hamburger icon just a real button that says
"Menu" or "Application Name".

PS: I almost stopped using menu bars. Either using keyboard shortcuts or avoid
using such applications. However, that's not always possible. And for some
reason most GTK apps ignore it anyways and show a menu bar - if at least that
would be colored like the decorations... May I still dream? ;-)

-- 
You are receiving this mail because:
You are watching all bug changes.

[kmail2] [Bug 364947] KMail crashed while clicking through mails

2020-12-17 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=364947

Kai Krakow  changed:

   What|Removed |Added

 Resolution|WAITINGFORINFO  |UNMAINTAINED
 Status|NEEDSINFO   |RESOLVED

--- Comment #3 from Kai Krakow  ---
I'm no longer using kmail due to its instability, potential to eat my mails,
bad impact on system performance, and it being unusable on HiDPI monitors. I
may try again sometime in the future but currently I'm going with using
Mailspring and web mailers.

Resolving as unmaintained.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 421131] Wayland: cursor lags under heavy CPU load

2021-01-05 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=421131

--- Comment #11 from Kai Krakow  ---
BTW: It's not only the mouse cursor lagging, key presses are also simply not
detected. And this even happens with a low average CPU load if you just have
some processes stuck in IO for a few ms: I was thinking I'm not able to
properly spell words any longer with this because every now and then, a letter
goes missing while typing.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwalletmanager] [Bug 141267] wallet password dialog should stay in front

2022-11-13 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=141267

Kai Krakow  changed:

   What|Removed |Added

 CC||k...@kaishome.de

--- Comment #22 from Kai Krakow  ---
(In reply to RJVB from comment #21)
> I can see how that could be an advantage to some people, but it'd be a no-go
> for me. If something wants me to enter a password
> 
> 1) I want to be able to let that pend while I finish something else (could
> be watching a movie)
> 2) I want to be able to move the dialog, for instance to see who is
> requesting my password

I think the point here is rather about focus stealing by other applications. If
a password dialog pops up and I start typing in it, I don't want other
applications to steal the focus.

I had situations in the past when I started two applications by clicking two
icons. The first one started fast, and the password dialog popped up, I then
started entering by password while the second application finally started,
stole the focus with a cursor in a chat window, and me just typing the password
in the chat window and hitting enter unnoticed.

A full screen modal dialog prevents that but I'm with your opinion that we
should not have this kind of modal full screen dialog. Rather, the password
dialog should ensure nothing can steal its focus while the cursor sits in its
input field. If I manually unfocus the input field, I don't actually care about
what the dialog does, letting it pend in the background, the same as you do: to
finish a task or find what is actually requesting the password.

So while the password input field is in focus, the dialog should ensure two
things:

1. Not letting some other window steal its focus (maybe this needs support from
the window manager)
2. Stay in front (so it doesn't go unnoticed behind other windows popping up
shortly after it)

But it should also not grab focus unconditionally. Example: I'm currently
typing in an editor or chat application, suddenly a password dialog pops up,
grabbing focus, and I would enter a wrong password. In the best case, it would
just ask again, in the worst case, it may lock an account or fail an operation
you didn't want to fail. So if I am actively typing somewhere currently, the
password dialog should not focus itself (or at least not focus the password
field) but rather just display on top, maybe with some visual distraction like
flashing the taskbar item.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 450068] Use of volatile connector IDs to map containments to screens cannot be made to work reliably and should be replaced with something else

2022-11-23 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=450068

--- Comment #77 from Kai Krakow  ---
For me it seems to be fixed or at least works as expected after I disabled the
kscreen service in the system settings. With each plasma updates, the behavior
seems to change in random and unpredictable ways.

Disabled kscreen, and now: Turing off my main monitor moves then panels over to
the other screen, turning it back on moves them back, repeatable.

The downside is: Windows won't move over to the other screen and I cannot
access them except moving them blindly over with Alt+mouse click. But that's a
minor issue because I either run both monitors or none. At least it's not
messing with backgrounds and window positions.

But then again: Why do the panels actually still move? If disabling kscreen
prevents the windows being moved and that part of the desktop actually still
being included in the usable mouse area - why do the panels move? Is it
possible that plasma panels use a completely different event source and that's
causing all of the mess?

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 484323] High CPU load of kwin_x11 when locking or turning off the screen

2024-07-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=484323

--- Comment #38 from Kai Krakow  ---
(In reply to Kai Krakow from comment #36)
> Is this caused by the blur effects of plasma and konsole?

It may have been resolved, at least partially, by
https://github.com/NVIDIA/open-gpu-kernel-modules/commit/1795a8bb20fe09f9939ca3e82d76791f5741e467.

It mentions KDE here:
https://www.nvidia.com/Download/driverResults.aspx/228410/en-us/

I'm using the 555 driver, and since the update, high CPU usage /while/ using
the system has gone down.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 466771] Some windows are painted black on X11, processes freeze

2024-07-30 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=466771

Kai Krakow  changed:

   What|Removed |Added

 CC||k...@kaishome.de

--- Comment #32 from Kai Krakow  ---
I've first seen this on Plasma 6 with Gen4 Intel iGPU using wayland. It doesn't
happen with Xorg on that same system.

Maybe related:

On my NVIDIA system, the same thing happens with wayland quite easily if I run
wayland during gaming/streaming with OBS. It's really bad, I've gone back to
Xorg.

But even with Xorg, kwin_x11 and plasma-shell often crash and restart after 2+
hours, causing severe stutters in game and causing framedrops in
recording/streaming. When this happens, plasmashell already uses 2 GB of VRAM.
I really don't know why it eats so much VRAM, and it probably crashes because
it fails to allocate anything more. VRAM usage of plasmashell it absurd, even
when idle, it already uses 800+ MB, after some light usage, it easily uses 1+
GB already.

The nvidia-drivers can do some cleanup every once in a while (a feature called
"CPMM", please ask NVIDIA developers about the details, I'm not allowed to
disclose the tuning parameters: it's active by default with 10min cleanup
interval). It brings usage down from 800 MB initially to only 170 MB (using 15
seconds cleanup interval [1]). But that only means that plasmashell piles up a
lot of render surfaces or render buffers it never cleans up on its own. This
feature only works for GL, so if you switch to Vulkan using "kcmshell6
qtquicksettings", it shows the bad behavior again.

Unfortunately, using the software renderer no longer works in Plasma 6: it
renders icons to the wrong positions or completely removes them from rendering
as soon as you hover the mouse over them. But in this mode, plasmashell uses
only 4 MB of VRAM and I'm seeing no negative performance impact. In Plasma 5,
this has been the game changer.

Now with Plasma 6, the system isn't really usable if you stress the system with
VRAM allocations as games usually do. And that's not limited to NVIDIA, it
happens on Intel iGPUs too, and usually very quickly because of the low amount
of shared VRAM. And with wayland, all of this is handled exceptionally bad,
Xorg is a little more forgiving.

While wayland works beautifully (ultra-smooth desktop, proper scaling etc) for
light desktop usage, everything causes havoc if you do some real work like
having lots of open windows on multiple monitors (4 in my instance), rendering
or gaming, especially with OBS. Plasma starts to fight with every process in
the system over GPU resources. There's no longer an option to use software
rendering because rendering is just broken with it. I really don't need
hardware accelerated rendering for the plasmashell: In the end, it's just a bar
to switch between applications, and launcher and notification manager. But it's
the main consumer of GPU resources on a KDE desktop, and it fights for it
really hard, hurting performance more than what is gained by hardware
rendering.

Currently I can work around it by using QSV with OBS (instead of NVENC),
limiting my main game VRAM usage through DXVK and using a short CMPP interval
only for plasmashell. But that only helps short term, longer sessions are
really borked, and after more than 2 days of usage, I'd rather need to reboot
before trying anything else.

Also, it's a little more stable by using the NVIDIA open kernel drivers: they
seem to handle VRAM a little different. But even if drivers can or should fix
it, VRAM usage of plasmashell is still absurdly high and it will hurt
performance for gaming - no matter what a driver can do.

I hope this gets fixed sooner than later, that would be great. :-)

[1]: This low interval has some unwanted side-effects in OBS as it cleans up
OBS render resources, too, leading to repeated frametime spikes during
recording or streaming.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 466771] Some windows are painted black on X11, processes freeze

2024-08-08 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=466771

--- Comment #35 from Kai Krakow  ---
(In reply to Ben Hay from comment #33)
> Even swapped my NVidia card for AMD. Bug still occured, although it takes a
> little longer to manifest.
> 
> Finally I uninstalled the latte-dock package.
> Plasma is stable again.

This is probably because latte-dock is a heavy user of GPU resources, probably
in terms of VRAM.

I don't think this is caused by latte-dock per se, there's something generally
going wrong deeper in the stack. Same probably applies to plasmashell.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-10-08 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #21 from Kai Krakow  ---
@Martin

I think your bug report is already really about this issue: Re-indexing all
files over and over again and consuming a lot of memory and IO that way.

The performance aspects of this are already covered by another bug report:
https://bugs.kde.org/show_bug.cgi?id=356357

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-10-08 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

Kai Krakow  changed:

   What|Removed |Added

   See Also||https://bugs.kde.org/show_b
   ||ug.cgi?id=356357

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 356357] Continous index flushing with fdatasync degrades interactive performance

2019-10-08 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=356357

Kai Krakow  changed:

   What|Removed |Added

   See Also||https://bugs.kde.org/show_b
   ||ug.cgi?id=404057

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 400704] Baloo indexing I/O introduces serious noticable delays

2019-10-08 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=400704

Kai Krakow  changed:

   What|Removed |Added

   See Also||https://bugs.kde.org/show_b
   ||ug.cgi?id=404057

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-10-08 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

Kai Krakow  changed:

   What|Removed |Added

   See Also||https://bugs.kde.org/show_b
   ||ug.cgi?id=400704

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-10-08 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #23 from Kai Krakow  ---
I'll have a look at that soon. First I'd like to get the "Reduce stack
pressure" patch upstreamed (also as a learning curve because this is my first
KDE contribution). I've uploaded it to Phabricator and already received review
feedback.

I have some ideas what may be causing this problem (loss of ContentIndexingDB)
which in turn is probably the immediate cause of DB growing and increasing IO
pressure.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-10-09 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #25 from Kai Krakow  ---
Yes, that's my plan. But I'd like to refine them a bit first. Especially
turning fsync() off seems to involve a big controversy discussion about whether
this should be done or not. So I will research the side effects a little more
and try to come up with a better solution.

FWIW, I'd like to submit a read-ahead patch next (fixes low-memory problems),
and then I'd like to fix the problem that ContextIndexingDB becomes dropped for
some reason which is, at least for Martin and me, the most prominent origin of
always increasing IO-pressure and memory usage. Later I'll look into reducing
the transaction commits dynamically which should relax the fsync problem, and
maybe even sizing the mmap dynamically (which should me possible according to
some first research).

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-10-09 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

Kai Krakow  changed:

   What|Removed |Added

 Attachment #122918|0   |1
is obsolete||

--- Comment #26 from Kai Krakow  ---
Comment on attachment 122918
  --> https://bugs.kde.org/attachment.cgi?id=122918
Reduce stack pressure

Stack pressure patch obsoleted by https://phabricator.kde.org/D24502

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-10-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

Kai Krakow  changed:

   What|Removed |Added

 Attachment #122925|0   |1
is obsolete||

--- Comment #27 from Kai Krakow  ---
Comment on attachment 122925
  --> https://bugs.kde.org/attachment.cgi?id=122925
Prepare simpler coding of environment flags

Has been merged into master

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-10-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #28 from Kai Krakow  ---
(In reply to Kai Krakow from comment #19)
> After testing this a few days, with my patches it works flawlessly: No
> performance impact, krunner finds result immediately without thrashing the
> HDD, etc. That is, until you reboot: While with the patches it has no longer
> any perceived negative impact on desktop responsiveness, I see that Baloo
> still re-indexes all files.
> 
> Steps to reproduce:
> 
> 1. Start baloo for the first time (aka "remove your index")
> 2. Let it complete a full indexing cycle
> 3. Observe "balooctl indexSize" to see that there's no file left to index
> 4. Also observe that it has data in "ContentIndexingDB"
> 5. Reboot
> 6. Observe "balooctl indexSize" to see that "ContentIndexingDB" changed back
>to 0 bytes
> 7. Observe "balooctl status" and wait until it finished checking for missing
>files
> 8. Observe both commands to see how baloo now refills the ContentIndexingDB
>and adds all your files to the index again, resulting in double the amount
>of files after finishing the second run
> 9. From now on, on every reboot, the index only grows, constantly forgetting
>the ContentIndexDB and re-adding all files.
> 
> This behavior is with and without my patches.
> 
> @Martin Is this what you've seen, too?

Following up with more details:

The problem seems to be the following:

After reboot, the indexer finds all files as changed. For every file in the
index, it will log to stdout/stderr:

"path to file" id seems to have changed. Perhaps baloo was not running, and
this file was deleted + re-created

This results in a lot of transactions to the database, blowing it up in size
(due to its lock-free implementation it appends to the database before freeing
the old data) and creating high IO pressure due to a lot of fsync calls going
on in short succession.

What follows: After removing all the seemingly changed files from the database,
it re-indexes all those files. This in turn appends to the database again it
seems, probably because its unlikely to find big enough "holes" at the
beginning of the database: Although a lot of data has been removed, it has
probably been filled with meta data updates, leaving no space to put back in
the content index data.

This access patterns adds up after some time, spreading out data more and more,
leading to very random access patterns. The kernel will start to struggle with
the mmap because it constantly swaps in new pages: Due to the random and wide
spread access patterns, it becomes more and more less likely that memory pages
are already swapped in. Access behavior becomes more and more seeky, the
database contents could be said to be too fragmented. This will introduce high
desktop latency because baloo will start to dominate the cache with its mmap.
After all, we should keep in mind that LMDBs design is made for systems
primarily running only the database, but not mixed with desktop workloads.

The phabricator site already has some valuable analysis and ideas of this which
I collected here: https://phabricator.kde.org/T11859

Thinks that currently help here a lot:

  - Remove fsync from baloo via patch (this seems to have the biggest impact)
  - Limiting the working set memory baloo can use by using cgroups

Removing fsync from baloo could mean that the database is not crash-safe. Thus,
I suggest to not use my fsync patch upstream until extensive testing of such
situations (I do not know how to do that, it's a tedious task depending on a
vast amount of factors) or until someone comes up with some clever
recovery/transaction idea. Maybe the LMDB author has some more insight on this.

Limiting memory with cgroups helps because cgroups can limit RAM usage by
accounting for both heap and cache usage: It effectively hinders baloo from
dominating the cache and thus impacting desktop performance too much. The
read-ahead patch reduces additional pressure on the cache occupancy. It should
also be possible to use madvise()/fadvise() to actively instruct the kernel
that baloo no longer uses some memory or doesn't plan on doing so in the
future. I'm not sure if baloo and/or LMDB use these functions or how they use
them.

Also, I wonder if LMDB uses MAP_HUGETLB. It may be worth checking if flipping
this setting improves or worsens things because I can think of different
scenarios:

 1. hugetlb uses 2 MB page size which could reduce the IOPS needed to work
on spatially near data in the DB (good)
 2. 2 MB page size could increase the IO throughput needed when paging DB data
in, thus negatively impacting the rest of the system (bad)
 3. LMDB should grow the database in bigger chunks to reduce external
fragmentation of the index file, hugetlb could help that (unde

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-10-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #29 from Kai Krakow  ---
During the re-index job after reboot, baloo shows very strange behavior when
evaluating the indexSize:

$ balooctl indexSize
File Size: 6,83 GiB
Used:  25,48 MiB

   PostingDB:   1.018,96 MiB  3998.360 %
  PositionDB:   1,73 GiB  6957.158 %
DocTerms: 909,35 MiB  3568.271 %
DocFilenameTerms: 131,17 MiB   514.700 %
   DocXattrTerms:   4,00 KiB 0.015 %
  IdTree:  31,09 MiB   121.980 %
  IdFileName: 107,08 MiB   420.172 %
 DocTime:  67,19 MiB   263.642 %
 DocData:  67,14 MiB   263.473 %
   ContentIndexingDB:   3,99 MiB15.650 %
 FailedIdsDB:0 B 0.000 %
 MTimeDB:  12,53 MiB49.172 %


Also, "File Size" increases with every reboot while "Used" stays around the
same when compared after baloo has decided to idle.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) writing a *ton* of data while re-indexing unchanged files

2019-10-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #31 from Kai Krakow  ---
As far as I understand from researching the discussions in phabricator, this
problem won't be easy to fix as it is baked into the design decision that
defined the database scheme.

Based on the fact that the DocId (which is used to find if a file still exists,
or changed, or just moved unmodified) is a 64-bit value which is actually made
of a 32-bit st_dev (device id) and 32-bit ino (inode number), I see two
problems here:

1. btrfs uses 64-bit inode numbers, at some point, numbers will overflow and
the baloo database becomes confused.

2. multi-dev btrfs (and I think you also use that, as I do) may have an
unstable st_dev number across reboots, resulting in changed DocIds every once
in a while after reboot

The phabricator discussions point out that other (primarily network) file
systems suffer the same problem: They have unstable st_dev values maybe even
after reconnect. User space file systems even depend on mount order for the
st_dev value.

Changing this is no easy task, it would require a format change which either
invalidates your DB, or it needs migration. So I'm currently evaluating if it
makes sense to switch to a key/value store that doesn't rely on mmap (as it has
clear downsides on a typical desktop system). This would allow to easily change
the database scheme in the same step as the index would've to be recreated
anyways. I'm currently digging my nose into Facebook's RocksDB, it looks mostly
good except that it was optimized solely around flash-based storage.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) writing a *ton* of data while re-indexing unchanged files

2019-10-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #32 from Kai Krakow  ---
(In reply to Martin Steigerwald from comment #30)
> I believe this bug is at
> least about two or three independent issues, but as you told, let's have it
> about the re-indexing files thing. I bet getting rid of needlessly
> re-indexing files will be one of the most effective to sort out performance
> issues with Baloo. I changed bug subject accordingly.

That's why I started a task to better distinguish between which problem is what
in Phabricator:
https://phabricator.kde.org/T11859

And that's why I suggested a few comments ago to concentrate on fixing the
re-indexing bug first.

But it turned out to be not that easy. Together with the other performance
issues and especially the tight coupling of mmap, access patterns, and
available memory, I think it's worth rethinking if LMDB is still the right
tool:

mmap introduces a lot of problems and there's no easy way around it. There's to
many things to think of to optimize access patterns then. It's unlikely to be
done anytime when looking at the problems exposed by the database scheme
already.

LMDB seems to be designed around the idea to be the only user of system RAM, or
at least only use a very smallish part of it (which may not be that small if
you have huge amounts of RAM). That's unlikely to be the situation on systems
where baloo is used.

Bad design choices have already been made and been meshed deeply into the
database scheme, which makes it difficult to migrate existing installations.

BTW: Following up on your comment #2 was totally unintentional but actually I
followed up and explained why that happens. ;-)

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) writing a *ton* of data while re-indexing unchanged files

2019-10-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #33 from Kai Krakow  ---
Also, LMDB is totally the wrong tool when using 32-bit systems because your
index cannot grow beyond a certain size before crashing baloo.

I'm not sure if 32-bit systems are still a thing - but if they are, the
decision for LMDB was clearly wrong.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) writing a *ton* of data while re-indexing unchanged files

2019-10-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #36 from Kai Krakow  ---
Oh, nice... Sometimes it helps to talk about a few things.

I could think of the following solution:

Add another UUID->CounterID mapping table to the database, that is easy to
achieve. Everytime we encounter a new UUID, we increase the CounterID one above
the maximum value in the DB and use that as a file system identifier.

We can now bit-reverse the CounterID so that the least-significant bits switch
position with the highest. The result will be XOR'ed with the 64-bit inode
number. Et voila: There's a DocID.

What do you think?

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) writing a *ton* of data while re-indexing unchanged files

2019-10-11 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #38 from Kai Krakow  ---
(In reply to Martin Steigerwald from comment #35)
> I like the idea to use one DB per filesystem. This way you can save the
> complete filesystem UUID and/or other identifying information *once* and use
> the full 64 bit for the inode number thing.

Such things are always difficult (the same for your hidden ID file in the root
of an FS): It requires permissions you may not have, thus you may decide to use
the most top-level directory you have write permissions to. And at that point
I'd define that the storage path is undefined.

Other solution: Name the index files by UUID and store it at a defined
location. We'll have other problems now:

Do you really want multiple multi-GB mmaps LMDB files mapped at once in RAM?
With even more chaotic random access patterns (and their potential to push your
precious cache out of memory)? Also, multi-file databases are hard to sync with
each other: At some point we may need to ensure integrity between all the
files. This won't end well. I'm all in for a single-DB approach.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) writing a *ton* of data while re-indexing unchanged files

2019-10-12 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #40 from Kai Krakow  ---
Further research confirms: btrfs has unstable device ids because it exposes
subvolumes as virtual block devices without their own device node in /dev.
Thus, device id numbers are allocated dynamically at runtime from the kernel,
the same happens for NFS and FUSE file systems. The latter usually even have
unstable inode numbers.

So currently, baloo is actually only safe to use on ext2/3/4 and xfs as the
most prominent examples. On many other filesystems it will reindex files, and
will even be unable to return proper results because reverse mapping of DocIds
to filesystem paths is unreliable.

This problem is deeply baked into the design of Baloo.

My idea of merging device id and ino into one 64-bit integer wouldn't needing
much modification to the existing code/storage format in theory. But apparently
this would make using the reverse mapping impossible because the functions
couldn't extract the device id from the docid to convert it back to a mount
path.

Additionally, btrfs shares the UUID between all subvolumes so using it would
make duplicate inode numbers which would confuse baloo. Btrfs has UUID_SUB
instead.

After all, it seems we'd need a specialized GUID generator per filesystem type.
Since GUID formats may differ widely, I'd suggest to create a registry table
inside the database, much similar to my counted ID idea outlined above. Each
new GUID would be simply registered in the table with a monotonically
increasing number which can be used as the device ID for DocId. Still, we'd
need to expand the DocId but temporarily it would do.

-- 
You are receiving this mail because:
You are watching all bug changes.

[konsole] [Bug 412005] New: Konsole crashes when trying to paste (long texts) from clipboard

2019-09-17 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=412005

Bug ID: 412005
   Summary: Konsole crashes when trying to paste (long texts) from
clipboard
   Product: konsole
   Version: 19.08.1
  Platform: Gentoo Packages
OS: Linux
Status: REPORTED
  Keywords: drkonqi
  Severity: crash
  Priority: NOR
 Component: general
  Assignee: konsole-de...@kde.org
  Reporter: k...@kaishome.de
  Target Milestone: ---

Application: konsole (19.08.1)

Qt Version: 5.12.3
Frameworks Version: 5.61.0
Operating System: Linux 5.2.14-gentoo x86_64
Distribution: "Gentoo Base System release 2.6"

-- Information about the crash:
- What I was doing when the application crashed:

I opened a konsole window, started vim, and then tried to insert around 20k
text chars from clipboard using "Shift+Ins". Konsole crashed. This could be
reproduced multiple times.

The crash can be reproduced every time.

-- Backtrace:
Application: Konsole (konsole), signal: Segmentation fault
[KCrash Handler]
#7  0x003ef4e01170 in  ()
#8  0x7fe593daa56a in call_init (l=, argc=argc@entry=1,
argv=argv@entry=0x7fffb9f9ed68, env=env@entry=0x7fffb9f9ed78) at dl-init.c:72
#9  0x7fe593daa666 in call_init (env=0x7fffb9f9ed78, argv=0x7fffb9f9ed68,
argc=1, l=) at dl-init.c:30
#10 0x7fe593daa666 in _dl_init (main_map=main_map@entry=0x7fe5640297c0,
argc=1, argv=0x7fffb9f9ed68, env=0x7fffb9f9ed78) at dl-init.c:119
#11 0x7fe593dae573 in dl_open_worker (a=) at dl-open.c:506
#12 0x7fe593c4efc6 in _dl_catch_exception () at /usr/lib64/libc.so.6
#13 0x7fe593dade26 in _dl_open (file=, mode=-2147483646,
caller_dlopen=0x7fe57d8bc970 , nsid=-2, argc=1, argv=, env=0x7fffb9f9ed78) at dl-open.c:588
#14 0x7fe59092729a in  () at /usr/lib64/libdl.so.2
#15 0x7fe593c4efc6 in _dl_catch_exception () at /usr/lib64/libc.so.6
#16 0x7fe593c4f068 in _dl_catch_error () at /usr/lib64/libc.so.6
#17 0x7fe590927b1d in  () at /usr/lib64/libdl.so.2
#18 0x7fe59092734d in dlopen () at /usr/lib64/libdl.so.2
#19 0x7fe57d8bc970 in module_Load (p_this=p_this@entry=0x7fe564024e40,
path=0x561c236157b0 "/usr/lib64/vlc/plugins/codec/libfluidsynth_plugin.so",
p_handle=p_handle@entry=0x7fe578dfd730, lazy=lazy@entry=false) at
posix/plugin.c:60
#20 0x7fe57d85273c in module_Map (obj=obj@entry=0x7fe564024e40,
plugin=0x561c23587ad0) at modules/bank.c:511
#21 0x7fe57d85149b in module_load (obj=obj@entry=0x7fe564024e40,
init=init@entry=0x7fe57d8513f0 , args=args@entry=0x7fe578dfd828,
m=, m=) at modules/modules.c:175
#22 0x7fe57d851907 in vlc_module_load (obj=obj@entry=0x7fe564024e40,
capability=0x7fe57d8deb60  "audio decoder", name=0x7fe57d8cae11 "",
name@entry=0x7fe57d8ce574 "$codec", strict=strict@entry=false,
probe=probe@entry=0x7fe57d8513f0 ) at modules/modules.c:279
#23 0x7fe57d851ca4 in module_need (obj=obj@entry=0x7fe564024e40,
cap=, name=name@entry=0x7fe57d8ce574 "$codec",
strict=strict@entry=false) at modules/modules.c:371
#24 0x7fe57d868d68 in LoadDecoder (p_dec=p_dec@entry=0x7fe564024e40,
b_packetizer=b_packetizer@entry=false, p_fmt=p_fmt@entry=0x7fe564024888) at
input/decoder.c:179
#25 0x7fe57d869931 in CreateDecoder (p_sout=0x0, p_resource=, fmt=0x7fe564024888, p_input=0x561c23e3bf80, p_parent=0x561c23e3bf80) at
input/decoder.c:1752
#26 0x7fe57d869931 in decoder_New (p_parent=p_parent@entry=0x561c23e3bf80,
p_input=p_input@entry=0x561c23e3bf80, fmt=fmt@entry=0x7fe564024888,
p_clock=, p_resource=, p_sout=0x0) at
input/decoder.c:1913
#27 0x7fe57d86c0e8 in input_DecoderNew
(p_input=p_input@entry=0x561c23e3bf80, fmt=fmt@entry=0x7fe564024888,
p_clock=, p_sout=) at input/input_internal.h:183
#28 0x7fe57d86f081 in EsCreateDecoder (out=0x561c23447630,
p_es=0x7fe564024870) at input/input_internal.h:183
#29 0x7fe57d86f225 in EsSelect (out=out@entry=0x561c23447630,
es=es@entry=0x7fe564024870) at input/es_out.c:1778
#30 0x7fe57d870404 in EsOutSelect (out=out@entry=0x561c23447630,
es=es@entry=0x7fe564024870, b_force=b_force@entry=false) at input/es_out.c:1990
#31 0x7fe57d871bbb in EsOutAddSlave (out=0x561c23447630, fmt=, p_master=0x0) at input/es_out.c:1649
#32 0x7fe57d877650 in es_out_Add (fmt=, out=)
at ../include/vlc_es_out.h:125
#33 0x7fe57d877650 in CmdExecuteAdd (p_cmd=0x7fe578dfdb60, p_out=) at input/es_out_timeshift.c:1326
#34 0x7fe57d877650 in Add (p_out=, p_fmt=0x7fe56400a468) at
input/es_out_timeshift.c:452
#35 0x7fe578cb100b in es_out_Add (fmt=0x7fe56400a468, out=)
at ../include/vlc_es_out.h:125
#36 0x7fe578cb100b in Ogg_CreateES (p_demux=p_demux@entry=0x7fe5640012d0)
at demux/ogg.c:2198
#37 0x7fe578cb5e62 in Demux (p_demux=0x7fe5640012d0) at demux/ogg.c:351
#38 0x7fe57d87d157 in demux_Demux (p_demux=0x7fe5640012d0) at
../include/vlc_demux.h:354
#39 0x7fe57d87d157 in MainLoopDemux (pb_changed=,
p_input=0x561c23e3bf80) at input/input.c:577
#40 0x7fe57d87

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #7 from Kai Krakow  ---
Created attachment 122918
  --> https://bugs.kde.org/attachment.cgi?id=122918&action=edit
Reduce stack pressure

This patch reduces pressure on the used stack size by looping instead of
recursively calling itself when skipping files to index. This can add up a lot
when skipping many files/directories in succession.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #8 from Kai Krakow  ---
Created attachment 122919
  --> https://bugs.kde.org/attachment.cgi?id=122919&action=edit
Experimental: Reduce mmap by one magnitude

This patch reduces the memory map size for LMDB by one order of magnitude (16
instead of 256 GB). After applying the patch, I purged the DB and restarted
baloo.

It churns along nicely now, I/O is down to less than 10 MB/s instead of 50-100
MB/s constantly before. Also, running action that obviously do a bunch of
memory allocations in Plasma (like opening the app drawer) now run much
smoother again (instantly instead of a noticeable but subjective delay). The
whole system feels much smoother again. I'm guessing that a lot of ongoing
dirty-page writebacks, page faults and VMM handling has a lot of drawbacks and
introduces a lot of TLB flushes because mappings into the process are
constantly updated. It also seems to introduce a lot of I/O overhead. I'm not
sure why that is but it seems this big mmap has indeed drawbacks. A lot of
random accesses into the mmap may cause unintentional read-ahead, unpredictable
IO patterns and may dominate the cache which is what I believe causes the
excessive I/O behavior.

This patch (together with the previous patch) makes my system run much nicer
again. I can actually use krunner again without causing a lot of additional IO
and lags. My system has 32 GB of RAM.

Looking at all this, I wonder if LMDB is really the right tool. It is tempting
to use it, but from the project documentation it seems to be intended as a
read-mostly database. This is clearly not what baloo does with it, especially
during re-indexing/updating or first indexing. The mmap size seems to be
tightly bound to the maximum DB size which, looking at my above test results,
limits the scaling of baloo a lot.

It should probably not be too difficult to swap LMDB with another key/value
database better fitting the usage pattern (bursts of lots of write transactions
with only occasional read transactions when a user actually searches for
something). LMDB (as the DBE backing the OpenLDAP project) seems to be designed
for exactly the opposite usage pattern.

Are there any more thoughts of it? Any idea which key/value DBE could fit
better? What about multi-threading? Current code seems to run with only 1
thread in parallel only anyways despite using the thread pool classes of Qt.
I'd volunteer to invest some spare time into swapping out LMDB for something
different.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #9 from Kai Krakow  ---
Here's more evidence of why LMDB may be a particularly bad choice for the
workload applied by baloo: It is btree organized, and writing and maintaining
btrees will result in a lot of random I/O. At some point in time, when the DB
has become big enough or scrambled enough due to constant updates, this will
backfire badly resulting in very bad I/O patterns.

https://blog.dgraph.io/post/badger-lmdb-boltdb/

Baloo should migrate to a key/value store that is much better at writing data
and maintaining its internals. Read performance of the database should probably
not be the primary concern but performance of long-term writing and updating:
It should maintain good read and write performance. According to the article,
LMDB doesn't (except you give it the full 256GB RAM and lock it into memory).

Researching a little further, we can find a quite different picture:
https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database

It says that LMDB has exceptional write performance and maintains good
performance altogether. Maybe this would need some benchmarks but it probably
holds true only when the DB fully fits into memory all the time. And looking at
the design description in that article we can easily see the downsides: The
database can always only increase in size, even more when writing concurrently
(there's no locking, so any time during concurrent access patterns it will
append to the database). It also never re-organizes its internal structure, it
just reuses memory blocks allocated from a free blocks tree without taking HDD
access patterns into account. And, LMBDs design pays back best only with big
values. I don't think this is what baloo stores.

The article further says that LMDB can (on hypothetical file systems) fail on
Linux when not using fsync(). Was fsync() added to LMDB for such a hypothetical
case? This would be fatal to system performance.

LMDB seems to be baked into a lot of KV databases due to it's seemingly good
performance.

So actually, this would need a lot more insight to decide whether LMDB is
suitable for baloo (maybe it is but it isn't used optimally). Someone with more
real-world experience of KV databases and associated usage patterns may comment
on this.

Currently, limiting the mmap size helps a lot here. And as mentioned by Martin,
there's clearly a bug somewhere resulting in massive write work-loads and
exceptional growth of the database. Maybe it's just a really bad access pattern
by coincidence that results in exceptional bad behavior of LMDB. I was very
happy with baloo performance for a long time until it suddenly broke some day.
I'm not even sure that's baloo's fault: Judging from the commit subjects the
code hasn't undergone any substantial changes since a long time, only small
fixes and tweaks. There's commit b0890aca71aa4f0fdabe65ee7b7fbd0bc844d8b8 after
KF 5.27.0 which bumped maximum index size from 5 GB to 256 GB. @Martin May this
be around the time (end of 2016) when it broke for you? Your "balooctl
indexSize" example seems to suggest there's a big rollover of copy-on-write
operations leaving unused memory blocks behind (maybe to small to be
effectively reused) and thus blowing up the DB file size.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #10 from Kai Krakow  ---
Created attachment 122925
  --> https://bugs.kde.org/attachment.cgi?id=122925&action=edit
Prepare simpler coding of environment flags

This simply prepares the following patches and introduces no functional change.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #11 from Kai Krakow  ---
Created attachment 122926
  --> https://bugs.kde.org/attachment.cgi?id=122926&action=edit
Disable read-ahead of mmap access

We should not read-ahead when accessing the database because it may introduce
thrashing during low-mem situation because read-aheads would start dominating
the cache. This also takes some pressure away from the file-system.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #12 from Kai Krakow  ---
Created attachment 122927
  --> https://bugs.kde.org/attachment.cgi?id=122927&action=edit
Don't fsync the file-system

Let's not stress the system with fsync() after each DB transaction. This
database can be easily rebuild in case it crashes. This patch removes latency
spikes and input lag from the desktop environment while the indexer is running.
It also seems to increase general indexing throughput while lowering the
performance impact.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #13 from Kai Krakow  ---
I've added some patches to my experimental patchset after crunching through
some of the documentation and articles available. The system responsiveness has
improved a lot. Can anyone confirm that these patches help?

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #14 from Kai Krakow  ---
Meanwhile, my patched indexer started content indexing phase. I also added back
all the expensive directories I excluded previously. It's currently indexing
with a mixed R/W workload of up to 200 MB/s (most time 50-100 MB/s) without
much of an impact on desktop performance. Looks good so far.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #17 from Kai Krakow  ---
(In reply to Martin Steigerwald from comment #15)
> Kai, thank you very much for your work on this! About an alternative to
> LMDB… I am not sure at the moment. Will think about it.

Currently with my patches it seems mostly fine with LMDB. The next days of
usage will draw a better picture. I think baloo needs to handle LMDB just a
little bit more optimized, i.e. does it use batched writes?

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-09-28 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #18 from Kai Krakow  ---
(In reply to Martin Steigerwald from comment #16)
> I bet I can just compile baloo via kdesrc. Does it have many dependencies on
> KF libraries? I do not like to break my system at this point in time and it
> has been a long time I last used kdesrc.

I have no idea. I'm on Gentoo and just did "git format-patch origin/master",
then symlinked my baloo Git src to /etc/portage/patches/kde-frameworks/baloo.
So at least in Gentoo, that's a single package. Here's the deps from Gentoo:

DEPEND="
$(add_frameworks_dep kconfig)
$(add_frameworks_dep kcoreaddons)
$(add_frameworks_dep kcrash)
$(add_frameworks_dep kdbusaddons)
$(add_frameworks_dep kfilemetadata)
$(add_frameworks_dep ki18n)
$(add_frameworks_dep kidletime)
$(add_frameworks_dep kio)
$(add_frameworks_dep solid)
$(add_qt_dep qtdbus)
$(add_qt_dep qtdeclarative)
$(add_qt_dep qtgui)
$(add_qt_dep qtwidgets)
>=dev-db/lmdb-0.9.17
"

I could attach my binary package if you want to try (it's basically a tar.gz,
you could extract just the binaries and libs).

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 356357] Continous index flushing with fdatasync degrades interactive performance

2019-09-29 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=356357

Kai Krakow  changed:

   What|Removed |Added

 CC||k...@kaishome.de

--- Comment #14 from Kai Krakow  ---
I've added some patches before finding this bug. My findings are that disabling
read-ahead on the database somewhat helps in low-mem situation but the biggest
problem is fsync: That call will actually sync the whole filesystem and not
just the database file, and doing that constantly is toxic to performance. It's
as simple as that. Here's the link: https://bugs.kde.org/show_bug.cgi?id=404057
and https://github.com/kakra/baloo/commits/fixes/bko-404057. Some of these
patches may not be needed at all, some optimize for corner cases. But we should
really turn off fsync as the very least.

If you don't want to disable fsync, then LMDB is probably the wrong tool to do
the job. You'd then need some append-only database with garbage collection
(LMDB is already acting a lot like this). I'm pretty sure LMDB is actually a
bad choice for baloo, if, and only if, you expect it to be the only software
needing to do IO. But after some research, I think LMDB is not the wrong tool,
thus we need to adjust how Baloo uses it.

The devs of LMDB say that it is safe to use without fsync on any current Linux
filesystem (it can loose transactions but it won't corrupt). It is not safe to
use on some hypothetical filesystems (it could corrupt).

Can we please at least let the user decide and allow him to shoot his own foot?
Maybe a config option or env variable?

Baloo already has some sort of recovery: If it fails to open the database it
will simply purge and recreate it. Maybe it could detect corruptions during use
somehow and act similar? I'm not sure if LMDB function could return errors or
simply cause crashes. In the first case, it should be easy.

I also like the time-based instead of count-based approach much more: Linux
already flushes data after no more than 30s, why not just use the same amount?

Regarding fsync: I'm not sure if LMDB uses fsync or fdatasync, or if this is
even a choice. The developers say in their documentation it's fsync, the strace
by Riku says fdatasync. Whatever is used: It's a problem: You cannot expect
users to use the software if it totally destroys their user experience.

Baloo should be designed around the idea that corruption can occur and luckily
it's easy to recover from it: Just rebuild the database.

So the proposed solution is really about: How do we properly detect database
corruption?

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-baloo] [Bug 404057] Uses an insane amount of memory (RSS/PSS) and writes a *ton* of data while indexing

2019-10-07 Thread Kai Krakow
https://bugs.kde.org/show_bug.cgi?id=404057

--- Comment #19 from Kai Krakow  ---
After testing this a few days, with my patches it works flawlessly: No
performance impact, krunner finds result immediately without thrashing the HDD,
etc. That is, until you reboot: While with the patches it has no longer any
perceived negative impact on desktop responsiveness, I see that Baloo still
re-indexes all files.

Steps to reproduce:

1. Start baloo for the first time (aka "remove your index")
2. Let it complete a full indexing cycle
3. Observe "balooctl indexSize" to see that there's no file left to index
4. Also observe that it has data in "ContentIndexingDB"
5. Reboot
6. Observe "balooctl indexSize" to see that "ContentIndexingDB" changed back
   to 0 bytes
7. Observe "balooctl status" and wait until it finished checking for missing
   files
8. Observe both commands to see how baloo now refills the ContentIndexingDB
   and adds all your files to the index again, resulting in double the amount
   of files after finishing the second run
9. From now on, on every reboot, the index only grows, constantly forgetting
   the ContentIndexDB and re-adding all files.

This behavior is with and without my patches.

@Martin Is this what you've seen, too?

-- 
You are receiving this mail because:
You are watching all bug changes.

  1   2   >