[prev in list] [next in list] [prev in thread] [next in thread] 

List:       amarok-devel
Subject:    Amarok startup blocks when NFS mounts are not accessible
From:       Bart Cerneels <bart.cerneels () kde ! org>
Date:       2012-08-17 6:08:03
Message-ID: CAMnMsSfH0AiJrVLZRivWAAm39QZ0ohYR-C+Kox80ECKGgfN-EQ () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


first on: NfsDeviceHandlerFactory::canHandle()

NfsDeviceHandler.cpp:153 KMountPoint::Ptr m =
KMountPoint::currentMountPoints().findByPath( access->filePath() );


Then after forcefully unmounting the shares, m is valid and
canHandle() returns true, then it blocks on the next call to
NfsDeviceHandler where exactly the same function is excecuted:

MountPointManager.cpp:503 DeviceHandler *handler =
factory->createHandler( device, udi, m_storage );

This might have been a fluke caused by unmouting while it was blocked
on the previous


Seems MountPointManager is another one of those rotten codebases that
need review and cleanup.


Bart

[Attachment #5 (text/html)]

<pre style="margin-top:0px;margin-bottom:0px"><span \
style="color:#800080"><br></span></pre><pre \
style="margin-top:0px;margin-bottom:0px"><span style="color:#800080">first on: \
</span><span style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;color:rgb(128,0,128)">NfsDeviceHandlerFactory</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">::</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;font-style:italic">canHandle()</span></pre>

<pre style="margin-top:0px;margin-bottom:0px"><span \
style="color:#800080">NfsDeviceHandler.cpp:153 </span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;color:rgb(128,0,128)">KMountPoint</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">::</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;color:rgb(128,0,128)">Ptr</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;color:rgb(192,192,192)"> </span><span \
style="font-family:&#39;Helvetica Neue&#39;,Helvetica,Arial,sans-serif">m</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;color:rgb(192,192,192)"> </span><span \
style="font-family:&#39;Helvetica Neue&#39;,Helvetica,Arial,sans-serif">=</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;color:rgb(192,192,192)"> </span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;color:rgb(128,0,128)">KMountPoint</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">::</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">currentMountPoints</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">().</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">findByPath</span><span \
style="font-family:&#39;Helvetica Neue&#39;,Helvetica,Arial,sans-serif">(</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;color:rgb(192,192,192)"> </span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">access</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">-&gt;</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">filePath</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">()</span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;color:rgb(192,192,192)"> </span><span \
style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">);</span></pre> <pre \
style="margin-top:0px;margin-bottom:0px"><span style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif"><br></span></pre><pre \
style="margin-top:0px;margin-bottom:0px"><span style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">Then after forcefully unmounting the shares, m \
is valid and </span><span style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif;font-style:italic">canHandle()</span><span \
style="font-family:&#39;Helvetica Neue&#39;,Helvetica,Arial,sans-serif"> returns \
true, then it blocks on the next call to NfsDeviceHandler where exactly the same \
function is excecuted:</span></pre>

<pre style="margin-top:0px;margin-bottom:0px"><span \
style="color:#800080">MountPointManager.cpp:503 DeviceHandler</span><span \
style="color:#c0c0c0"> </span>*handler<span style="color:#c0c0c0"> </span>=<span \
style="color:#c0c0c0"> </span>factory-&gt;<span \
style="font-style:italic">createHandler</span>(<span style="color:#c0c0c0"> \
</span>device,<span style="color:#c0c0c0"> </span>udi,<span style="color:#c0c0c0"> \
</span><span style="color:#800000">m_storage</span><span style="color:#c0c0c0"> \
</span>);</pre> <pre style="margin-top:0px;margin-bottom:0px"><pre \
style="margin-top:0px;margin-bottom:0px"><span style="font-family:&#39;Helvetica \
Neue&#39;,Helvetica,Arial,sans-serif">This might have been a fluke caused by \
unmouting while it was blocked on the previous</span></pre> </pre><pre \
style="margin-top:0px;margin-bottom:0px"><br></pre><pre \
style="margin-top:0px;margin-bottom:0px">Seems MountPointManager is another one of \
those rotten codebases that need review and cleanup.</pre><pre \
style="margin-top:0px;margin-bottom:0px"> <br></pre><pre \
style="margin-top:0px;margin-bottom:0px">Bart</pre>



_______________________________________________
Amarok-devel mailing list
Amarok-devel@kde.org
https://mail.kde.org/mailman/listinfo/amarok-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic