<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/D13869">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/D13869#286746" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D13869#286746</a>, <a href="https://phabricator.kde.org/p/broulik/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@broulik</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>Sure, but the device isn't "removed", so emitting a remove signal for something that is still there, is wrong, isn't it? Perhaps we could signal a removal if the device lost *all* its interfaces? But it probably doesn't in the unmount case.</p></div>
</blockquote>

<p>a valid device/dbus object has at least the <tt style="background: #ebebeb; font-size: 13px;">org.freedesktop.DBus.Properties</tt> interface, so this signal is already emitted when the device is removed (== last interface removed).</p>

<p>I think the code needs some overhauling - AFAIK it was written when UDisks2 had a much more simplistic interface. The whole properties cache is quite broken ("something has changed - throw away the cache - fetch everything again" , "we don't know the property - lets fetch it again"), we are doing to many roundtrips.</p>

<p>The list of properties is announced in the DBus introspection data for each interface. There is no need for the "negative" cache. We are mixing properties from different interfaces (e.g. size, a filesystem size may differ from the partition size).</p>

<p>While the intention of the patch is right, I don't think its the right way to do it. I would favor a solution which signals changes in the <tt style="background: #ebebeb; font-size: 13px;">Predicate</tt> matches. This is definitely more work, but otherwise we are papering over one issue after the other.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R245 Solid</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D13869">https://phabricator.kde.org/D13869</a></div></div><br /><div><strong>To: </strong>anthonyfieroni, broulik, cfeck, dfaure<br /><strong>Cc: </strong>bruns, kde-frameworks-devel, michaelh, ngraham<br /></div>