Ticket #182 (new defect)

Opened 6 years ago

Last modified 6 years ago

RAT & VIC Crash on Vista laptop

Reported by: piers Owned by: piers
Priority: major Milestone:
Component: common Version: 1.2.18
Keywords: Cc:

Description

Reported by Tobias at AGSC on 4 July: "The problems with the vic and rat under Windows Vista Business, from VIC I get a message telling me

IP_ADD_MEMBERSHIP: A socket operation was attempted to an unreachable host.

whereas RAT crashes immediately.

I got PAG including vic and rat working through a CISCO VPN client over wireless networking, and it continued working on wired networking without the VPN client once it worked."

On 21 July: "This version seems to have the same problem, after some more investigations we can pin the problem down to Network interfaces which don't have any IP address assigned. vic and rat seem to connect to the first Network interface they find. To reproduce the problem I switched on the bluetooth interface and the wireless networking. This explains the strange behaviour I had befor when starting the VPN client seemed to fix the problem. It wasn't the VPN itself but the assigning of an IP address to the Wireless network card. For the moment we can use the old version of vic and rat. We will document the problem and recommend switching off all network devices which have no IP address assigned."

Change History

Changed 6 years ago by piers

  • version changed from 4.4.00 to 1.2.18
  • component changed from rat to common

This problem doesn't seem to be present on all other machines - the Vista test machine at UCL has 5 interfaces and additional wireless ones but these did not lead to the same crash.

However I have tracked it down to misbehaviour of the GetBestRoute on Vista - in the common's net_udp.c:814: find_win32_interface() function.

GetBestRoute() doesn't always appear to work - with multicast addresses (unicast seems ok) - most of the time it returns an error 2 (using FormatMessage this decodes to: "The system cannot find the file specified") - which doesn't make a lot of sense really?!

According to this link:  http://www.codeproject.com/KB/IP/IPHelper.aspx?fid=32450&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2545157

There's a bug (1778132) with GetBestRoute?() on Vista.

I tried alternate approaches using GetBestInterface/Ex?() but they didn't seem to work either.

However another approach using GetIpForwardTable?() seems to show better promise. It is currently in testing.

Changed 6 years ago by piers

Tests confirm that new approach seems to fix the problem on RAT. Still testing on VIC. Will add to codebase once tests confirm correct operation.

Note: See TracTickets for help on using tickets.