Bug 439225 - Status bar disappears and reappears continuously after mass renaming
Summary: Status bar disappears and reappears continuously after mass renaming
Status: CONFIRMED
Alias: None
Product: dolphin
Classification: Applications
Component: bars: status (show other bugs)
Version: unspecified
Platform: Neon Linux
: HI normal
Target Milestone: ---
Assignee: Dolphin Bug Assignee
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2021-06-27 14:13 UTC by Patrick Silva
Modified: 2021-08-27 07:46 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
screeen recording (663.83 KB, video/webm)
2021-06-27 14:13 UTC, Patrick Silva
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2021-06-27 14:13:54 UTC
Created attachment 139693 [details]
screeen recording

STEPS TO REPRODUCE
1. open a folder containing thousands of files (2048 jpg files in my case)
2. select all files by pressing ctrl+a
3. press F2
4. type another file name and press enter/return

OBSERVED RESULT
mass renaming is completed and then the status bar disappears and reappears continuously. Please watch the attached screen recording.

EXPECTED RESULT
the behavior seen in the attached screen recording should not occur

SOFTWARE/OS VERSIONS
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.22.80
KDE Frameworks Version: 5.84.0
Qt Version: 5.15.3
Graphics Platform: X11
Comment 1 Harald Sitter 2021-06-29 09:17:59 UTC
This is hilarious!

It's playing peekaboo 🤣

NB: the disk access appears to need to be sufficiently slow to trigger this. perfectly reproducible on a hdd accessed over smb, but not on a local nvme drive.
Comment 2 Patrick Silva 2021-06-29 10:20:19 UTC
Interesting. I use a sata SSD.
Comment 3 Méven Car 2021-08-14 16:00:28 UTC
I don't reproduce it under Wayland with 7k files on a SSD.
Comment 4 Patrick Silva 2021-08-14 16:24:31 UTC
On Arch Linux the status bar flickers a few times while Dolphin 21.08 renames the files,
but the behavior seen in the screen recording does not occur.

Operating System: Arch Linux
KDE Plasma Version: 5.22.4
KDE Frameworks Version: 5.85.0
Qt Version: 5.15.2
Graphics Platform: Wayland
Comment 5 Harald Sitter 2021-08-16 13:56:20 UTC
Yeah, as I said, things need to be slow enough. This would be exceptionally difficult to ever reproduce on an SSD. Why it happens with the sata SSD is anyone's guess. Maybe the file system driver is wonky, or the kernel caching goes awray on that specific kernel version.

https://invent.kde.org/system/dolphin/-/blob/0ed31f10c382aad7b7c9ec30e6f8d6947862ff30/src/dolphinviewcontainer.cpp#L571
sets progress -1

https://invent.kde.org/system/dolphin/-/blob/0ed31f10c382aad7b7c9ec30e6f8d6947862ff30/src/statusbar/dolphinstatusbar.cpp#L178
sets internal progress, triggers m_showProgressBarTimer

https://invent.kde.org/system/dolphin/-/blob/0ed31f10c382aad7b7c9ec30e6f8d6947862ff30/src/statusbar/dolphinstatusbar.cpp#L293
calls setExtensionsVisible(false); when progress < 100 (which -1 is)

https://invent.kde.org/system/dolphin/-/blob/0ed31f10c382aad7b7c9ec30e6f8d6947862ff30/src/statusbar/dolphinstatusbar.cpp#L322
when visible is false (which it is because progress<100) the conditional branch doesn't run, when the conditional branch doesn't run showStatusBar remains initialied to false

https://invent.kde.org/system/dolphin/-/blob/0ed31f10c382aad7b7c9ec30e6f8d6947862ff30/src/statusbar/dolphinstatusbar.cpp#L332
this->setVisible(false)

the bar remains hidden until eventually another progress update hits with progress>=100
Comment 6 Harald Sitter 2021-08-16 13:57:32 UTC
I guess the question anyone should be asking is why a function called setExtensionsVisible manipulates anything but the extensions ;)
Comment 7 Méven Car 2021-08-27 07:46:43 UTC
(In reply to Harald Sitter from comment #6)
> I guess the question anyone should be asking is why a function called
> setExtensionsVisible manipulates anything but the extensions ;)

It is due to https://invent.kde.org/system/dolphin/-/commit/ba8158e2fa08651b0460adca3cb1e6a44eca0ed0

setVisible(showStatusBar); shouldn't be called here. I guess it was just a piggy back since setExtensionsVisible is called often. 


I reviewed this and let it through...