Opened 9 years ago
Closed 9 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 by , 9 years ago
comment:2 by , 9 years ago
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 by , 9 years ago
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:5 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Looking at the code, we see that poll() returns more than 128 times, because of invalid argument, in loop, so that warning.