VirtualBox

Opened 6 years ago

#18068 new defect

NAT process infinite loop call `poll` function

Reported by: lu4nx Owned by:
Component: network/NAT Version: VirtualBox 5.2.20
Keywords: Cc:
Guest type: Linux Host type: Linux

Description

Host machine: Fedora 28 Guest machine: Windows 10

My guest system is Windows 10 and using NAT network, and Windows 10 system suddenly unable to access the Internet at some point, but my host machine can access the network normally. I using Wireshark capturing some ARP data flow in Windows 10:

1   0.000000 PcsCompu_7a:1a:df → RealtekU_12:35:02 ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
    2   0.207297 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
    3   3.718693 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
    4   4.500012 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
    5   5.500048 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
    6   6.719889 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
    7  10.721331 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
    8  11.499537 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
    9  12.500007 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   10  15.499582 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   11  16.721794 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   12  17.500389 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   13  18.500008 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   14  21.499517 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   15  22.725696 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   16  23.499997 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   17  24.499501 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   18  27.499508 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   19  27.982749 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   20  28.500004 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   21  29.500001 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   22  34.985277 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   23  35.500502 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   24  36.500023 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   25  38.248133 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   26  42.249642 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   27  42.999528 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   28  43.999519 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   29  47.235338 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   30  48.000015 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15
   31  49.000018 PcsCompu_7a:1a:df → Broadcast    ARP 42 Who has 10.0.2.2? Tell 10.0.2.15

IP 10.0.2.2 is NAT's gateway address, as you see, my Windows system send some ARP broadcast packet to find 10.0.2.2's MAC address, but not recive any response packet.

At the same time, in my host machine, the NAT process occupies a lot of CPU resources. I using strace command tracing NAT process:

poll([{fd=46, events=POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=45, events=POLLIN}, {fd=98, events=POLLIN|POLLPRI}, {fd=76, events=POLLIN|POLLPRI}, {fd=229, events=POLLIN|POLLPRI}, {fd=93, events=POLLIN|POLLPRI}, {fd=91, events=POLLIN}, {fd=89, events=POLLIN}, {fd=81, events=POLLIN}, {fd=96, events=POLLIN}, {fd=102, events=POLLIN}, {fd=97, events=POLLIN}, {fd=88, events=POLLIN}, {fd=70, events=POLLIN}, {fd=68, events=POLLIN}], 15, 500) = 1 ([{fd=91, revents=POLLIN}])
poll([{fd=46, events=POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=45, events=POLLIN}, {fd=98, events=POLLIN|POLLPRI}, {fd=76, events=POLLIN|POLLPRI}, {fd=229, events=POLLIN|POLLPRI}, {fd=93, events=POLLIN|POLLPRI}, {fd=91, events=POLLIN}, {fd=89, events=POLLIN}, {fd=81, events=POLLIN}, {fd=96, events=POLLIN}, {fd=102, events=POLLIN}, {fd=97, events=POLLIN}, {fd=88, events=POLLIN}, {fd=70, events=POLLIN}, {fd=68, events=POLLIN}], 15, 500) = 1 ([{fd=91, revents=POLLIN}])
poll([{fd=46, events=POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=45, events=POLLIN}, {fd=98, events=POLLIN|POLLPRI}, {fd=76, events=POLLIN|POLLPRI}, {fd=229, events=POLLIN|POLLPRI}, {fd=93, events=POLLIN|POLLPRI}, {fd=91, events=POLLIN}, {fd=89, events=POLLIN}, {fd=81, events=POLLIN}, {fd=96, events=POLLIN}, {fd=102, events=POLLIN}, {fd=97, events=POLLIN}, {fd=88, events=POLLIN}, {fd=70, events=POLLIN}, {fd=68, events=POLLIN}], 15, 500) = 1 ([{fd=91, revents=POLLIN}])
poll([{fd=46, events=POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=45, events=POLLIN}, {fd=98, events=POLLIN|POLLPRI}, {fd=76, events=POLLIN|POLLPRI}, {fd=229, events=POLLIN|POLLPRI}, {fd=93, events=POLLIN|POLLPRI}, {fd=91, events=POLLIN}, {fd=89, events=POLLIN}, {fd=81, events=POLLIN}, {fd=96, events=POLLIN}, {fd=102, events=POLLIN}, {fd=97, events=POLLIN}, {fd=88, events=POLLIN}, {fd=70, events=POLLIN}, {fd=68, events=POLLIN}], 15, 500) = 1 ([{fd=91, revents=POLLIN}])
poll([{fd=46, events=POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=45, events=POLLIN}, {fd=98, events=POLLIN|POLLPRI}, {fd=76, events=POLLIN|POLLPRI}, {fd=229, events=POLLIN|POLLPRI}, {fd=93, events=POLLIN|POLLPRI}, {fd=91, events=POLLIN}, {fd=89, events=POLLIN}, {fd=81, events=POLLIN}, {fd=96, events=POLLIN}, {fd=102, events=POLLIN}, {fd=97, events=POLLIN}, {fd=88, events=POLLIN}, {fd=70, events=POLLIN}, {fd=68, events=POLLIN}], 15, 500) = 1 ([{fd=91, revents=POLLIN}])
poll([{fd=46, events=POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=45, events=POLLIN}, {fd=98, events=POLLIN|POLLPRI}, {fd=76, events=POLLIN|POLLPRI}, {fd=229, events=POLLIN|POLLPRI}, {fd=93, events=POLLIN|POLLPRI}, {fd=91, events=POLLIN}, {fd=89, events=POLLIN}, {fd=81, events=POLLIN}, {fd=96, events=POLLIN}, {fd=102, events=POLLIN}, {fd=97, events=POLLIN}, {fd=88, events=POLLIN}, {fd=70, events=POLLIN}, {fd=68, events=POLLIN}], 15, 500) = 1 ([{fd=91, revents=POLLIN}])
poll([{fd=46, events=POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=45, events=POLLIN}, {fd=98, events=POLLIN|POLLPRI}, {fd=76, events=POLLIN|POLLPRI}, {fd=229, events=POLLIN|POLLPRI}, {fd=93, events=POLLIN|POLLPRI}, {fd=91, events=POLLIN}, {fd=89, events=POLLIN}, {fd=81, events=POLLIN}, {fd=96, events=POLLIN}, {fd=102, events=POLLIN}, {fd=97, events=POLLIN}, {fd=88, events=POLLIN}, {fd=70, events=POLLIN}, {fd=68, events=POLLIN}], 15, 500) = 1 ([{fd=91, revents=POLLIN}])
poll([{fd=46, events=POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=45, events=POLLIN}, {fd=98, events=POLLIN|POLLPRI}, {fd=76, events=POLLIN|POLLPRI}, {fd=229, events=POLLIN|POLLPRI}, {fd=93, events=POLLIN|POLLPRI}, {fd=91, events=POLLIN}, {fd=89, events=POLLIN}, {fd=81, events=POLLIN}, {fd=96, events=POLLIN}, {fd=102, events=POLLIN}, {fd=97, events=POLLIN}, {fd=88, events=POLLIN}, {fd=70, events=POLLIN}, {fd=68, events=POLLIN}], 15, 500) = 1 ([{fd=91, revents=POLLIN}])
poll([{fd=46, events=POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=45, events=POLLIN}, {fd=98, events=POLLIN|POLLPRI}, {fd=76, events=POLLIN|POLLPRI}, {fd=229, events=POLLIN|POLLPRI}, {fd=93, events=POLLIN|POLLPRI}, {fd=91, events=POLLIN}, {fd=89, events=POLLIN}, {fd=81, events=POLLIN}, {fd=96, events=POLLIN}, {fd=102, events=POLLIN}, {fd=97, events=POLLIN}, {fd=88, events=POLLIN}, {fd=70, events=POLLIN}, {fd=68, events=POLLIN}], 15, 500) = 1 ([{fd=91, revents=POLLIN}])
.......

as you see, NAT process infinite loop call poll function

Attachments (3)

2018-10-22 15-09-17.png (14.8 KB ) - added by lu4nx 6 years ago.
2018-10-22 15-09-37.png (81.5 KB ) - added by lu4nx 6 years ago.
2018-10-22 15-09-48.png (30.4 KB ) - added by lu4nx 6 years ago.

Download all attachments as: .zip

Change History (3)

by lu4nx, 6 years ago

Attachment: 2018-10-22 15-09-17.png added

by lu4nx, 6 years ago

Attachment: 2018-10-22 15-09-37.png added

by lu4nx, 6 years ago

Attachment: 2018-10-22 15-09-48.png added
Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use