Opened 9 years ago

Closed 8 years ago

#18 closed defect (fixed)

NAT: Poll returns (Invalid argument) suppressed 130

Reported by: Valery V. Sedletski Owned by: Valery V. Sedletski
Priority: major Milestone: VBox driver
Component: Common Tasks Keywords:
Cc:

Description

When enabled the network (namely, the NAT), got a lot of messages in the VM log about incorrect return from poll() (a log can grow up to tens of megabytes):

00:00:50.680202 Changing the VM state from 'CREATED' to 'POWERING_ON'
00:00:50.704983 NAT: Poll returns (Invalid argument) suppressed 130
00:00:50.705224 NAT: Poll returns (Invalid argument) suppressed 130
00:00:50.705441 NAT: Poll returns (Invalid argument) suppressed 130
00:00:50.705671 NAT: Poll returns (Invalid argument) suppressed 130
00:00:50.705887 NAT: Poll returns (Invalid argument) suppressed 130
00:00:50.706103 NAT: Poll returns (Invalid argument) suppressed 130
00:00:50.706319 NAT: Poll returns (Invalid argument) suppressed 130

The poll() emulation on top of select() is taken from *BSD.

Change History (5)

comment:1 Changed 9 years ago by Valery V. Sedletski

Looking at the code, we see that poll() returns more than 128 times, because of invalid argument, in loop, so that warning.

comment:2 Changed 9 years ago by Valery V. Sedletski

Hm, "Socket operation on non-socket" :( It appears that here poll() is used for sockets + management pipe. So, need special handling on OS/2...

comment:3 Changed 9 years ago by Valery V. Sedletski

Like the problem in #20, this is hopefully, fixed with changing pipe() to socketpair() -- the cause is attempting to poll() the management pipe in src\VBox\Devices\Network\DrvNAT.cpp. The same case is in DrvTAP.cpp and DrvVDE.cpp. In the DrvTAP.cpp, poll() is used for two FD's, one for pipe, the second is for /dev/tapX. No idea for working around the poll/select on character devices in oS/2, yet.

comment:4 Changed 8 years ago by Valery V. Sedletski

This was solved by work on ticket #34. Closing.

comment:5 Changed 8 years ago by Valery V. Sedletski

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.