<table><tr><td style="">bruns added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D18890">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
color: #6B748C;
font-style: italic;
margin: 4px 0 12px 0;
padding: 8px 12px;
background-color: #F8F9FC;">
<div style="font-style: normal;
padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D18890#410137" style="background-color: #e7e7e7;
border-color: #e7e7e7;
border-radius: 3px;
padding: 0 4px;
font-weight: bold;
color: black;text-decoration: none;">D18890#410137</a>, <a href="https://phabricator.kde.org/p/davidedmundson/" style="
border-color: #f1f7ff;
color: #19558d;
background-color: #f1f7ff;
border: 1px solid transparent;
border-radius: 3px;
font-weight: bold;
padding: 0 4px;">@davidedmundson</a> wrote:</div>
<div style="margin: 0;
padding: 0;
border: 0;
color: rgb(107, 116, 140);"><p>If we know the DB is corrupted, and it's just a cache, why do we need a user facing button?</p></div>
</blockquote>
<p>There are many possible ways of corruption:</p>
<ul class="remarkup-list">
<li class="remarkup-list-item">non-decodable values</li>
<li class="remarkup-list-item">entries with dangling parent IDs</li>
<li class="remarkup-list-item">IDs of no longer existing documents</li>
<li class="remarkup-list-item">....</li>
</ul>
<p>These have different reasons, not all reasons are known and understood, not all corruptions are critical.</p>
<p>There are issues with races in the file system, where items are deleted/created/modified while these are added to the DB. Unfortunately, Qt offers no way to handle it, the only save method is to use the openat/fstatat/... functions. This is possible to fix, but until then, rinse and repeat.</p>
<p>The non-decodable values are hard to handle, this would at least require scrubbing the whole DB or building it from scratch. But until it is known what causes this corruption, we end up in doing it again and again.</p>
<p>Some of these are quite safe to just ignore, but some parts a lacking sanity checks. On the other hand, <a href="https://phabricator.kde.org/D12336" style="background-color: #e7e7e7;
border-color: #e7e7e7;
border-radius: 3px;
padding: 0 4px;
font-weight: bold;
color: black;text-decoration: none;">D12336</a> is waiting for review for 10 months ...</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R119 Plasma Desktop</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D18890">https://phabricator.kde.org/D18890</a></div></div><br /><div><strong>To: </strong>guoyunhe, Plasma, Baloo<br /><strong>Cc: </strong>mart, davidedmundson, bruns, ngraham, plasma-devel, jraleigh, GB_2, ragreen, Pitel, domson, ashaposhnikov, astippich, spoorun, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, abrahams, sebas, apol<br /></div>