Bug 1641563
Summary: | jwhois freeze on some requests | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Frantisek Hanzlik <franta> | ||||
Component: | jwhois | Assignee: | Vitezslav Crhonek <vcrhonek> | ||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | unspecified | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | 28 | CC: | redhat-bugzilla, vcrhonek | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | i686 | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | jwhois-4.0-52.fc28 | Doc Type: | If docs needed, set a value | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2019-03-15 03:34:59 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Description
Frantisek Hanzlik
2018-10-22 08:33:50 UTC
Unable to reproduce on f27.x86_64: jwhois 204.45.103.35 [Querying whois.arin.net] [Unable to connect to remote host] There is a configurable timeout - see the tail of /etc/jwhois.conf configuration file. By default, the timeout is 75 seconds. I'll try to get f28.i686 machine and test it there, but no change's been done between f27 and f28 in jwhois package. Hi, Your output differs from mine - it seems as after WHOIS response from whois.arin.net your whois do not continue with RWHOIS request on rwhois.fdcservers.net:4321 - maybe You have blocked (SELinux, netfilter) TCP port 4321? Or, WHOIS response from whois.arin.net different IPs (has 3 IPv4 and 3 IPv6): # host whois.arin.net whois.arin.net has address 199.71.0.46 whois.arin.net has address 199.5.26.46 whois.arin.net has address 199.212.0.46 whois.arin.net has IPv6 address 2001:500:31::46 whois.arin.net has IPv6 address 2001:500:13::46 whois.arin.net has IPv6 address 2001:500:a9::46 give different results? Perhaps more tells this jwhois strace output: # strace -o /var/tmp/jwhois.lst -s 400 -t jwhois 204.45.103.35 [Querying whois.arin.net] [Redirected to rwhois.fdcservers.net:4321] [Querying rwhois.fdcservers.net] ^C # cat /var/tmp/jwhois.lst ... 04:32:33 socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 3 04:32:33 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) 04:32:33 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 04:32:33 connect(3, {sa_family=AF_INET, sin_port=htons(43), sin_addr=inet_addr("199.71.0.46")}, 16) = -1 EINPROGRESS (Operation now in progress) 04:32:33 select(1024, NULL, [3], NULL, {tv_sec=75, tv_usec=0}) = 1 (out [3], left {tv_sec=74, tv_usec=807700}) 04:32:34 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 04:32:34 write(3, "z + 204.45.103.35\r\n", 19) = 19 04:32:34 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) 04:32:34 read(3, "\n#\n# ARIN WHOIS data and services are subject to the Terms of Use\n# available at: https://www.arin.net/whois_tou.html\n#\n# If you see inaccuracies in the results, please report at\n# https://www.arin.net/ resources/whois_reporting/index.html\n#\n# Copyright 1997-2018, American Registry for Internet Numbers, Ltd.\n#\n\n\n", 1023) = 313 04:32:34 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) 04:32:34 read(3, "\n# start\n\nNetRange: 204.45.0.0 - 204.45.255.255\nCIDR: 204.45.0.0/16\nNetName: FDCSERVERS\nNetHandle: NET-204-45-0-0-1\nParent: NET204 (NET-204-0-0-0-0)\nNetType: Direct Allocation\nOriginAS: AS174, AS30058\nOrganization: FDCservers.net (FDCSE)\nRegDate: 2009-07-20\nUpdated: 2018-10-12\nRef: https://rdap.arin.net/registry/ip/204.45."..., 1023) = 1023 04:32:34 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) 04:32:34 read(3, "hPhone: +1-312-423-6675 \nOrgTechEmail: abuse\nOrgTechRef: https://rdap.arin.net/registry/entity/ABUSE438-ARIN\n\nOrgNOCHandle: ABUSE438-ARIN\nOrgNOCName: ABUSE department\nOrgNOCPhone: +1-312-423-6675 \nOrgNOCEmail: abuse\nOrgNOCRef: https://rdap.arin.net/registry/entity/ABUSE438-ARIN\n\n# end\n\n\n# start\n\nNetRange: 204.45.0.0 - 204.45.25", 1023) = 377 04:32:34 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) 04:32:34 read(3, "5.255\nCIDR: 204.45.0.0/16\nNetName: FDCSERVERS-DENVER\nNetHandle: NET-204-45-0-0-2\nParent: FDCSERVERS (NET-204-45-0-0-1)\nNetType: Reallocated\nOriginAS: AS30058\n Organization: FDCservers.net (FDCSE-2)\nRegDate: 2012-03-28\nUpdated: 2012-03-28\nRef: https://rdap.arin.net/registry/ip/204.45.0.0\n\n\nOrgName: FDCservers.net\nOrgId: "..., 1023) = 1023 04:32:34 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) 04:32:34 read(3, "cservers.net\nOrgTechRef: https://rdap.arin.net/registry/entity/ABUSE438-ARIN\n\nOrgNOCHandle: ABUSE438-ARIN\nOrgNOCName: ABUSE department\nOrgNOCPhone: +1-312-423-6675 \nOrgNOCEmail: abuse@fdcservers. net\nOrgNOCRef: https://rdap.arin.net/registry/entity/ABUSE438-ARIN\n\n# end\n\n\n# start\n\nNetRange: 204.45.103.0 - 204.45.103.255\nCIDR: 204.45.103.0/24\nNetName: ", 1023) = 377 04:32:34 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) 04:32:34 read(3, " DEN1-204-45-103-0-24\nNetHandle: NET-204-45-103-0-1\nParent: FDCSERVERS-DENVER (NET-204-45-0-0-2)\nNetType: Reallocated\nOriginAS: AS174, AS30058\nOrganization: Nexeon Techn ologies, Inc. (NT-64)\nRegDate: 2016-02-22\nUpdated: 2016-03-23\nRef: https://rdap.arin.net/registry/ip/204.45.103.0\n\n\nOrgName: Nexeon Technologies, Inc.\nOrgId: "..., 1023) = 1023 04:32:34 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) 04:32:34 read(3, "sh Ln Ste 101\nComment: Stafford, TX 77477\nComment: United States\nRef: https://rdap.arin.net/registry/entity/NT-64\n\n\nOrgNOCHandle: NETWO3628-ARIN\nOrgNOCName: Network Operation s\nOrgNOCPhone: +1-877-639-3660 \nOrgNOCEmail: noc\nOrgNOCRef: https://rdap.arin.net/registry/entity/NETWO3628-ARIN\n\nOrgAbuseHandle: ABUSE2544-ARIN\nOrgAbuseName: Abuse Department\nO"..., 1023) = 1023 04:32:34 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) 04:32:34 read(3, "ble at: https://www.arin.net/whois_tou.html\n#\n# If you see inaccuracies in the results, please report at\n# https://www.arin.net/resources/whois_reporting/index.html\n#\n# Copyright 1997-2018, American Regi stry for Internet Numbers, Ltd.\n#\n\n", 1023) = 238 04:32:34 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) 04:32:34 read(3, "", 1023) = 0 04:32:34 brk(NULL) = 0x55605d28e000 04:32:34 brk(0x55605d2af000) = 0x55605d2af000 04:32:34 write(1, "[Redirected to rwhois.fdcservers.net:4321]\n", 43) = 43 04:32:34 write(1, "[Querying rwhois.fdcservers.net]\n", 33) = 33 04:32:34 stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=114, ...}) = 0 04:32:34 openat(AT_FDCWD, "/etc/hosts", O_RDONLY|O_CLOEXEC) = 4 04:32:34 fstat(4, {st_mode=S_IFREG|0644, st_size=283, ...}) = 0 04:32:34 read(4, "127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4\n#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6\n90.178.49.32\tdsl.tezap.home wan.tezap.home dsl wan\n192.168.1.254\tven.tezap.home ven\n10.0.0.254\trolnicka.tezap.home rolnicka\n", 4096) = 283 04:32:34 read(4, "", 4096) = 0 04:32:34 close(4) = 0 04:32:34 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 4 04:32:34 connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, 16) = 0 04:32:34 poll([{fd=4, events=POLLOUT}], 1, 0) = 1 ([{fd=4, revents=POLLOUT}]) 04:32:34 sendmmsg(4, [{msg_hdr={msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="d9\1\0\0\1\0\0\0\0\0\0\6rwhois\nfdcservers\3net\0\0\1\0\1", iov_len=39}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, msg_len=39}, {msg_hdr={msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="`K\1\0\0\1\0\0\0\0\0\0\6rwhois\nfdcservers\3net\0\0\34\0\1", iov_len=39}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, msg_len=39}], 2, MSG_NOSIGNAL) = 2 04:32:34 poll([{fd=4, events=POLLIN}], 1, 5000) = 1 ([{fd=4, revents=POLLIN}]) 04:32:34 ioctl(4, FIONREAD, [85]) = 0 04:32:34 recvfrom(4, "`K\201\200\0\1\0\0\0\1\0\0\6rwhois\nfdcservers\3net\0\0\34\0\1\300\23\0\6\0\1\0\0\5\n\0\"\3ns1\300\23\5abuse\300\23xH\264\333\0\0\16\20\0\0\2X\0$\352\0\0\0\16\20", 2048, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [28->16]) = 85 04:32:34 poll([{fd=4, events=POLLIN}], 1, 4999) = 1 ([{fd=4, revents=POLLIN}]) 04:32:34 ioctl(4, FIONREAD, [123]) = 0 04:32:34 recvfrom(4, "d9\201\200\0\1\0\1\0\2\0\2\6rwhois\nfdcservers\3net\0\0\1\0\1\300\f\0\1\0\1\0\0/:\0\0042\7\0_\300\23\0\2\0\1\0\0027\25\0\6\3ns2\300\23\300\23\0\2\0\1\0\0027\25\0\6\3ns1\300\23\300U\0\1\0\1\0\0027\25\0\0042\7\0p\300C\0\1\0\1\0\0027\25\0\0042\7\0l", 65536, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [28->16]) = 123 04:32:34 close(4) = 0 04:32:34 socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 4 04:32:34 fcntl(4, F_GETFL) = 0x2 (flags O_RDWR) 04:32:34 fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0 04:32:34 connect(4, {sa_family=AF_INET, sin_port=htons(4321), sin_addr=inet_addr("50.7.0.95")}, 16) = -1 EINPROGRESS (Operation now in progress) 04:32:34 select(1024, NULL, [4], NULL, {tv_sec=75, tv_usec=0}) = 1 (out [4], left {tv_sec=74, tv_usec=855838}) 04:32:34 getsockopt(4, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 04:32:34 write(4, "204.45.103.35\r\n", 15) = 15 04:32:34 select(5, [4], NULL, NULL, NULL) = 1 (in [4]) 04:32:35 read(4, "%rwhois V-1.5:003fff:00 rwhois.fdcservers.net (by Network Solutions, Inc. V-1.5.9.6)\n", 1023) = 85 04:32:35 select(5, [4], NULL, NULL, NULL) = 1 (in [4]) 04:32:35 read(4, "network:Auth-Area:204.45.0.0/16", 1023) = 31 04:32:35 select(5, [4], NULL, NULL, NULL) = ? ERESTARTNOHAND (To be restarted if no handler) 06:01:54 --- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL} --- 06:01:54 +++ killed by SIGINT +++ I'm not programmer, but I see that select() call with timeout (75 sec) specif. is used only for it's first use after connect(), but in consequent select() calls is timeout unspecified (NULL) - and this may be reason for never ending operation (in this case I CTRL/C break jwhois after ~ 1.5 hours). Thanks for additional info. By the way, have you considered using 'whois' instead of 'jwhois'? The upstream development of whois is much more active compared to jwhois. Reproduced with IPv6 disabled. Created attachment 1536620 [details]
proposed patch
You're right, there's one select without timeout causing the freeze. Attached patch fixes the issue.
jwhois-4.0-55.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-aacff1eb0a jwhois-4.0-52.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2019-068d063880 jwhois-4.0-52.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-068d063880 jwhois-4.0-55.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-aacff1eb0a jwhois-4.0-55.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report. jwhois-4.0-52.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report. |