Bug 1645715 - Insane disk thrashing for apps using dconf
Summary: Insane disk thrashing for apps using dconf
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: dconf
Version: 33
Hardware: x86_64
OS: Linux
unspecified
urgent
Target Milestone: ---
Assignee: Matthias Clasen
QA Contact: Fedora Extras Quality Assurance
URL: https://gitlab.gnome.org/GNOME/dconf/...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-11-02 23:13 UTC by Artem S. Tashkinov
Modified: 2020-11-03 20:23 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-11-03 20:23:50 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Artem S. Tashkinov 2018-11-02 23:13:34 UTC
Description of problem: 


When you exit the apps which use the dconf backend, a disk thrashing occurs.


Version-Release number of selected component (if applicable): 
dconf-0.30.0-1.fc29.x86_64

How reproducible: always


Steps to Reproduce:
1. run gnome-calculator
2. exit it
3.

Actual results:

./.config/dconf/ CREATE user.8N7YRZ
./.config/dconf/ OPEN user.8N7YRZ
./.config/dconf/ MODIFY user.8N7YRZ
./.config/dconf/ MODIFY user.8N7YRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.8N7YRZ
./.config/dconf/ MOVED_FROM user.8N7YRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.R7PPRZ
./.config/dconf/ OPEN user.R7PPRZ
./.config/dconf/ MODIFY user.R7PPRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.R7PPRZ
./.config/dconf/ MOVED_FROM user.R7PPRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.VP1ORZ
./.config/dconf/ OPEN user.VP1ORZ
./.config/dconf/ MODIFY user.VP1ORZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.VP1ORZ
./.config/dconf/ MOVED_FROM user.VP1ORZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.6G3QRZ
./.config/dconf/ OPEN user.6G3QRZ
./.config/dconf/ MODIFY user.6G3QRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.6G3QRZ
./.config/dconf/ MOVED_FROM user.6G3QRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.4TBQRZ
./.config/dconf/ OPEN user.4TBQRZ
./.config/dconf/ MODIFY user.4TBQRZ
./.config/dconf/ MODIFY user.4TBQRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.4TBQRZ
./.config/dconf/ MOVED_FROM user.4TBQRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.X89RRZ
./.config/dconf/ OPEN user.X89RRZ
./.config/dconf/ MODIFY user.X89RRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.X89RRZ
./.config/dconf/ MOVED_FROM user.X89RRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.URORRZ
./.config/dconf/ OPEN user.URORRZ
./.config/dconf/ MODIFY user.URORRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.URORRZ
./.config/dconf/ MOVED_FROM user.URORRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.8GCURZ
./.config/dconf/ OPEN user.8GCURZ
./.config/dconf/ MODIFY user.8GCURZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.8GCURZ
./.config/dconf/ MOVED_FROM user.8GCURZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.ABHTRZ
./.config/dconf/ OPEN user.ABHTRZ
./.config/dconf/ MODIFY user.ABHTRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.ABHTRZ
./.config/dconf/ MOVED_FROM user.ABHTRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.3G8SRZ
./.config/dconf/ OPEN user.3G8SRZ
./.config/dconf/ MODIFY user.3G8SRZ
./.config/dconf/ MODIFY user.3G8SRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.3G8SRZ
./.config/dconf/ MOVED_FROM user.3G8SRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.9AYJRZ
./.config/dconf/ OPEN user.9AYJRZ
./.config/dconf/ MODIFY user.9AYJRZ
./.config/dconf/ MODIFY user.9AYJRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.9AYJRZ
./.config/dconf/ MOVED_FROM user.9AYJRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.WBPJRZ
./.config/dconf/ OPEN user.WBPJRZ
./.config/dconf/ MODIFY user.WBPJRZ
./.config/dconf/ MODIFY user.WBPJRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.WBPJRZ
./.config/dconf/ MOVED_FROM user.WBPJRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.0RNLRZ
./.config/dconf/ OPEN user.0RNLRZ
./.config/dconf/ MODIFY user.0RNLRZ
./.config/dconf/ MODIFY user.0RNLRZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.0RNLRZ
./.config/dconf/ MOVED_FROM user.0RNLRZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CLOSE_NOWRITE,CLOSE user



Expected results: a lot less disk thrashing


Additional info:

Comment 1 Artem S. Tashkinov 2018-11-02 23:15:48 UTC
The results were obtained by running

$ inotifywait -m -r $HOME

Comment 2 Artem S. Tashkinov 2018-11-05 10:53:08 UTC
Here's what happens when you run Mousepad:

./.config/dconf/ CLOSE_WRITE,CLOSE user.73S9RZ
./.config/dconf/ MOVED_FROM user.73S9RZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.G1DASZ
./.config/dconf/ OPEN user.G1DASZ
./.config/dconf/ MODIFY user.G1DASZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.G1DASZ
./.config/dconf/ MOVED_FROM user.G1DASZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.H1KASZ
./.config/dconf/ OPEN user.H1KASZ
./.config/dconf/ MODIFY user.H1KASZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.H1KASZ
./.config/dconf/ MOVED_FROM user.H1KASZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.53GBSZ
./.config/dconf/ OPEN user.53GBSZ
./.config/dconf/ MODIFY user.53GBSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.53GBSZ
./.config/dconf/ MOVED_FROM user.53GBSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.57NBSZ
./.config/dconf/ OPEN user.57NBSZ
./.config/dconf/ MODIFY user.57NBSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.57NBSZ
./.config/dconf/ MOVED_FROM user.57NBSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.TEKCSZ
./.config/dconf/ OPEN user.TEKCSZ
./.config/dconf/ MODIFY user.TEKCSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.TEKCSZ
./.config/dconf/ MOVED_FROM user.TEKCSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.MNRCSZ
./.config/dconf/ OPEN user.MNRCSZ
./.config/dconf/ MODIFY user.MNRCSZ
./.config/dconf/ MODIFY user.MNRCSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.MNRCSZ
./.config/dconf/ MOVED_FROM user.MNRCSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.MQHDSZ
./.config/dconf/ OPEN user.MQHDSZ
./.config/dconf/ MODIFY user.MQHDSZ
./.config/dconf/ MODIFY user.MQHDSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.MQHDSZ
./.config/dconf/ MOVED_FROM user.MQHDSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.P3JESZ
./.config/dconf/ OPEN user.P3JESZ
./.config/dconf/ MODIFY user.P3JESZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.P3JESZ
./.config/dconf/ MOVED_FROM user.P3JESZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.Q2QESZ
./.config/dconf/ OPEN user.Q2QESZ
./.config/dconf/ MODIFY user.Q2QESZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.Q2QESZ
./.config/dconf/ MOVED_FROM user.Q2QESZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.2JNFSZ
./.config/dconf/ OPEN user.2JNFSZ
./.config/dconf/ MODIFY user.2JNFSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.2JNFSZ
./.config/dconf/ MOVED_FROM user.2JNFSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.4BUFSZ
./.config/dconf/ OPEN user.4BUFSZ
./.config/dconf/ MODIFY user.4BUFSZ
./.config/dconf/ MODIFY user.4BUFSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.4BUFSZ
./.config/dconf/ MOVED_FROM user.4BUFSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.GUQGSZ
./.config/dconf/ OPEN user.GUQGSZ
./.config/dconf/ MODIFY user.GUQGSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.GUQGSZ
./.config/dconf/ MOVED_FROM user.GUQGSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.S0XGSZ
./.config/dconf/ OPEN user.S0XGSZ
./.config/dconf/ MODIFY user.S0XGSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.S0XGSZ
./.config/dconf/ MOVED_FROM user.S0XGSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.0IUHSZ
./.config/dconf/ OPEN user.0IUHSZ
./.config/dconf/ MODIFY user.0IUHSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.0IUHSZ
./.config/dconf/ MOVED_FROM user.0IUHSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.1H1HSZ
./.config/dconf/ OPEN user.1H1HSZ
./.config/dconf/ MODIFY user.1H1HSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.1H1HSZ
./.config/dconf/ MOVED_FROM user.1H1HSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.GLXISZ
./.config/dconf/ OPEN user.GLXISZ
./.config/dconf/ MODIFY user.GLXISZ
./.config/dconf/ MODIFY user.GLXISZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.GLXISZ
./.config/dconf/ MOVED_FROM user.GLXISZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.M3GJSZ
./.config/dconf/ OPEN user.M3GJSZ
./.config/dconf/ MODIFY user.M3GJSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.M3GJSZ
./.config/dconf/ MOVED_FROM user.M3GJSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.CDOJSZ
./.config/dconf/ OPEN user.CDOJSZ
./.config/dconf/ MODIFY user.CDOJSZ
./.config/dconf/ MODIFY user.CDOJSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.CDOJSZ
./.config/dconf/ MOVED_FROM user.CDOJSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ OPEN user
./.config/dconf/ CREATE user.FJKASZ
./.config/dconf/ OPEN user.FJKASZ
./.config/dconf/ MODIFY user.FJKASZ
./.config/dconf/ MODIFY user.FJKASZ
./.config/dconf/ CLOSE_WRITE,CLOSE user.FJKASZ
./.config/dconf/ MOVED_FROM user.FJKASZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.HZGBSZ
./.config/dconf/ OPEN user.HZGBSZ
./.config/dconf/ MODIFY user.HZGBSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.HZGBSZ
./.config/dconf/ MOVED_FROM user.HZGBSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.PUNBSZ
./.config/dconf/ OPEN user.PUNBSZ
./.config/dconf/ MODIFY user.PUNBSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.PUNBSZ
./.config/dconf/ MOVED_FROM user.PUNBSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CREATE user.X0JCSZ
./.config/dconf/ OPEN user.X0JCSZ
./.config/dconf/ MODIFY user.X0JCSZ
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user
./.config/dconf/ CLOSE_WRITE,CLOSE user.X0JCSZ
./.config/dconf/ MOVED_FROM user.X0JCSZ
./.config/dconf/ MOVED_TO user
./.config/dconf/ CLOSE_NOWRITE,CLOSE user
./.config/dconf/ OPEN user

A little bit too many writes I guess.

Comment 3 Artem S. Tashkinov 2018-11-05 10:54:09 UTC
When you resize certain applications windows, there are dozens of files created and deleted every second. That's insanity.

Comment 4 Artem S. Tashkinov 2018-11-05 11:18:17 UTC
Linking to Gnome gitlab is broken, so here's the UPSTREAM bug report: https://gitlab.gnome.org/GNOME/dconf/issues/48

Comment 5 Matthias Clasen 2019-07-25 13:57:39 UTC
This is expected behavior: if applications change settings, dconf writes them to disk. It updates its database with atomic writes.

Comment 6 Artem S. Tashkinov 2019-07-29 15:04:40 UTC
It's not an expected behavior when 

1) the simple act of resizing an app window generates **hundreds** of disk writes
2) application start-up times are severely affected

I suspect since Gnome is primarily developed by RedHat employees, then you simply don't care but I do care as well as other end users.

Configuration changes writes must be coalesced if certain gnome apps are broken.

I'm not in a mood of opening any new bug reports.

Comment 7 Artem S. Tashkinov 2019-07-29 15:05:44 UTC
It's amazing it has taken you 8 months to reply to this bug report in the most unprofessional manner (which is "We don't care and disk thrashing is expected").

Comment 8 Ben Cotton 2019-10-31 19:00:23 UTC
This message is a reminder that Fedora 29 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 29 on 2019-11-26.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '29'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 29 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 9 Ben Cotton 2019-11-27 23:08:05 UTC
Fedora 29 changed to end-of-life (EOL) status on 2019-11-26. Fedora 29 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 10 Ben Cotton 2020-11-03 16:46:53 UTC
This message is a reminder that Fedora 31 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 31 on 2020-11-24.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '31'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 31 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 11 Artem S. Tashkinov 2020-11-03 20:23:50 UTC
Clsing as upstream because it's unlikely that Fedora developers will venture to solve the issue.


Note You need to log in before you can comment on or make changes to this bug.