Recently I was experiencing very slow dns resolution (due to other problems with network-manager leaving in work dns servers in /etc/resolv.conf even though I was at home). I repeatedly saw that if I used /dns then the UI was unresponsive until the operation completed -- 5 to 10 seconds during this period of slow dns resolution.
Looks like /dns' name resolving code is currently synchronous rather than asynchronous indeed. Fixing this is going to take a bit longer than one might think because a really good fix will need some refactoring in the framework it's implemented in. (For the record: Name resolving when making a new IRC server connection is not affected; that's done asynchronously.)
Git commit 1f8ae8dbbaa64cf25910656a85be3014d47b1074 by Eike Hein. Committed on 14/04/2011 at 22:07. Pushed by hein into branch 'master'. Make /dns non-blocking. BUG:268702 M +4 -0 ChangeLog M +1 -0 src/CMakeLists.txt M +4 -48 src/irc/outputfilter.cpp A +84 -0 src/irc/outputfilterresolvejob.cpp [License: GPL (v2/3)] A +51 -0 src/irc/outputfilterresolvejob.h [License: GPL (v2/3)] http://commits.kde.org/konversation/1f8ae8dbbaa64cf25910656a85be3014d47b1074