[Kimchi-devel] [PATCH] [Kimchi] Change nfs host from localhost to 127.0.0.1

Jose Ricardo Ziviani joserz at linux.vnet.ibm.com
Fri Apr 22 15:12:47 UTC 2016


 - Using localhost was making the feature test too slow, due to use IPv6
   by default in systems that has IPv6 enabled but not properly
   configured. For example, strace shows several attempts to send data
   to a socket, being droped when timed out:
   sendto(4, "W\34\326\267\0\0\0\0\0\0\0\2\0\1\206\240\0\0\0\4\0\0\0\3\0\0\0\0\0\0\0\0"..., 84, 0, {sa_family=AF_INET6, sin6_port=htons(111), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 84
poll([{fd=4, events=POLLIN}], 1, 15000) = 0 (Timeout)
    sendto(4, "W\34\326\267\0\0\0\0\0\0\0\2\0\1\206\240\0\0\0\4\0\0\0\3\0\0\0\0\0\0\0\0"..., 84, 0, {sa_family=AF_INET6, sin6_port=htons(111), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 84
poll([{fd=4, events=POLLIN}], 1, 15000) = 0 (Timeout)
    sendto(4, "W\34\326\267\0\0\0\0\0\0\0\2\0\1\206\240\0\0\0\4\0\0\0\3\0\0\0\0\0\0\0\0"..., 84, 0, {sa_family=AF_INET6, sin6_port=htons(111), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 84
poll([{fd=4, events=POLLIN}], 1, 15000) = 0 (Timeout)
    sendto(4, "W\34\326\267\0\0\0\0\0\0\0\2\0\1\206\240\0\0\0\4\0\0\0\3\0\0\0\0\0\0\0\0"..., 84, 0, {sa_family=AF_INET6, sin6_port=htons(111), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 84
poll([{fd=4, events=POLLIN}], 1, 15000) = 0 (Timeout)

    Both cases are similar:
    * showmount --no-headers --exports localhost
    * showmount --no-headers --exports ::1

    So, passing 127.0.0.1 we are explicitly requiring a IPv4 connection
    and that will speed up the feature test *as well as* return the
    correct result, not a simply timeout:
    sendto(4, "W\37\256\365\0\0\0\0\0\0\0\2\0\1\206\240\0\0\0\2\0\0\0\3\0\0\0\0\0\0\0\0"..., 56, 0, {sa_family=AF_INET, sin_port=htons(111), sin_addr=inet_addr("127.0.0.1")}, 16) = 56
poll([{fd=4, events=POLLIN}], 1, 15000) = 1 ([{fd=4, revents=POLLERR}])
    recvmsg(4, {msg_name(16)={sa_family=AF_INET, sin_port=htons(111), sin_addr=inet_addr("127.0.0.1")}, msg_iov(1)=[{"W\37\256\365\0\0\0\0\0\0\0\2\0\1\206\240\0\0\0\2\0\0\0\3\0\0\0\0\0\0\0\0"..., 56}], msg_controllen=48, [{cmsg_len=48, cmsg_level=SOL_IP, cmsg_type=IP_RECVERR, {ee_errno=111, ee_origin=2, ee_type=3, ee_code=3, ee_info=0, ee_data=0, offender={sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.1")}}}], msg_flags=MSG_ERRQUEUE}, MSG_ERRQUEUE) = 56

Signed-off-by: Jose Ricardo Ziviani <joserz at linux.vnet.ibm.com>
---
 model/featuretests.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/model/featuretests.py b/model/featuretests.py
index 23e7eeb..2b680c3 100644
--- a/model/featuretests.py
+++ b/model/featuretests.py
@@ -148,7 +148,7 @@ class FeatureTests(object):
     @staticmethod
     def libvirt_support_nfs_probe(conn):
         def _get_xml():
-            obj = E.source(E.host(name='localhost'), E.format(type='nfs'))
+            obj = E.source(E.host(name='127.0.0.1'), E.format(type='nfs'))
             xml = ET.tostring(obj)
             return xml
         try:
-- 
1.9.1




More information about the Kimchi-devel mailing list