Windows/XenServer agent builds an invalid route command

Bug #993344 reported by Rodney Girod
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
openstack-guest-agents
New
Undecided
Unassigned

Bug Description

A Windows 2008 R2 deployed image is unable to communicate over the private network.

When a resetnetwork command is processed, gateway information is not included in the route command passed to Windows.

Agentlog info follows:

2012-05-02 01:48:18,813 [4] INFO AgentService [(null)] - Processing Command: C:\Program Files (X86)\Citrix\XenTools\xenstore_client.exe dir data/host
2012-05-02 01:48:18,813 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output=8e46a30a-d9d1-4050-b957-6a6c973c6c88

Error=
2012-05-02 01:48:18,813 [4] INFO AgentService [(null)] - Processing Command: C:\Program Files (X86)\Citrix\XenTools\xenstore_client.exe read data/host/8e46a30a-d9d1-4050-b957-6a6c973c6c88
2012-05-02 01:48:18,828 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output={"name": "resetnetwork", "value": ""}

Error=
2012-05-02 01:48:18,828 [4] INFO AgentService [(null)] - Processing Command: C:\Program Files (X86)\Citrix\XenTools\xenstore_client.exe dir vm-data/networking
2012-05-02 01:48:18,844 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output=fa163e64e887

Error=
2012-05-02 01:48:18,844 [4] INFO AgentService [(null)] - Processing Command: C:\Program Files (X86)\Citrix\XenTools\xenstore_client.exe read vm-data/networking/fa163e64e887
2012-05-02 01:48:18,844 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output={"rxtx_cap": 0, "should_create_bridge": true, "dns": ["8.8.4.4"], "ip6s": [], "label": "private", "broadcast": "10.0.0.255", "ips": [{"ip": "10.0.0.2", "netmask": "255.255.255.0", "enabled": "1", "gateway": "10.0.0.1"}], "mac": "fa:16:3e:64:e8:87", "vif_uuid": "40949d52-a466-49da-9d10-8db6e29711ea", "should_create_vlan": false, "gateway_v6": null, "dhcp_server": "10.0.0.1", "gateway": "10.0.0.1"}

Error=
2012-05-02 01:48:19,109 [4] INFO AgentService [(null)] - Network Interfaces found locally:
2012-05-02 01:48:19,109 [4] INFO AgentService [(null)] - Local Area Connection (FA:16:3E:64:E8:87)
2012-05-02 01:48:19,125 [4] INFO AgentService [(null)] - Processing Command: netsh interface ip set address name="Local Area Connection" source=dhcp
2012-05-02 01:48:19,203 [4] INFO AgentService [(null)] - Command Result:
ExitCode=1
Output=DHCP is already enabled on this interface.

Error=
2012-05-02 01:48:19,203 [4] INFO AgentService [(null)] - Processing Command: netsh interface ip add address name="Local Area Connection" addr=10.0.0.2 mask=255.255.255.0 gateway=10.0.0.1 gwmetric=2
2012-05-02 01:48:19,265 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output=
Error=
2012-05-02 01:48:19,265 [4] INFO AgentService [(null)] - Processing Command: netsh interface ip set dns name="Local Area Connection" source=dhcp
2012-05-02 01:48:19,312 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output=
Error=
2012-05-02 01:48:19,312 [4] INFO AgentService [(null)] - Processing Command: netsh interface ip add dns name="Local Area Connection" addr=8.8.4.4 index=1
2012-05-02 01:48:23,493 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output=
Error=
2012-05-02 01:48:23,493 [4] INFO AgentService [(null)] - Processing Command: netsh interface set interface name="Local Area Connection" newname="private"
2012-05-02 01:48:23,711 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output=
Error=
2012-05-02 01:48:23,727 [4] INFO AgentService [(null)] - Routes Found: 0
2012-05-02 01:48:23,742 [4] INFO AgentService [(null)] - Processing Command: route delete 0.0.0.0
2012-05-02 01:48:23,789 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output= OK!

Error=
2012-05-02 01:48:23,789 [4] INFO AgentService [(null)] - Processing Command: route -p add 0.0.0.0 mask 0.0.0.0 metric 2
2012-05-02 01:48:23,789 [4] INFO AgentService [(null)] - Command Result:
ExitCode=1
Output=
Error=Manipulates network routing tables.
ROUTE [-f] [-p] [-4|-6] command [destination]
                  [MASK netmask] [gateway] [METRIC metric] [IF interface]
  -f Clears the routing tables of all gateway entries. If this is
               used in conjunction with one of the commands, the tables are
               cleared prior to running the command.

  -p When used with the ADD command, makes a route persistent across
               boots of the system. By default, routes are not preserved
               when the system is restarted. Ignored for all other commands,
               which always affect the appropriate persistent routes. This
               option is not supported in Windows 95.

  -4 Force using IPv4.
  -6 Force using IPv6.

  command One of these:
                 PRINT Prints a route
                 ADD Adds a route
                 DELETE Deletes a route
                 CHANGE Modifies an existing route
  destination Specifies the host.
  MASK Specifies that the next parameter is the 'netmask' value.
  netmask Specifies a subnet mask value for this route entry.
               If not specified, it defaults to 255.255.255.255.
  gateway Specifies gateway.
  interface the interface number for the specified route.
  METRIC specifies the metric, ie. cost for the destination.
All symbolic names used for destination are looked up in the network database
file NETWORKS. The symbolic names for gateway are looked up in the host name
database file HOSTS.
If the command is PRINT or DELETE. Destination or gateway can be a wildcard,
(wildcard is specified as a star '*'), or the gateway argument may be omitted.
If Dest contains a * or ?, it is treated as a shell pattern, and only
matching destination routes are printed. The '*' matches any string,
and '?' matches any one char. Examples: 157.*.1, 157.*, 127.*, *224*.
Pattern match is only allowed in PRINT command.
Diagnostic Notes:
    Invalid MASK generates an error, that is when (DEST & MASK) != DEST.
    Example> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1
             The route addition failed: The specified mask parameter is invalid. (Destination & Mask) != Destination.
Examples:
    > route PRINT
    > route PRINT -4
    > route PRINT -6
    > route PRINT 157* .... Only prints those matching 157*

    > route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2
             destination^ ^mask ^gateway metric^ ^
                                                         Interface^
      If IF is not given, it tries to find the best interface for a given
      gateway.
    > route ADD 3ffe::/32 3ffe::1

    > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2

      CHANGE is used to modify gateway and/or metric only.

    > route DELETE 157.0.0.0
    > route DELETE 3ffe::/32

2012-05-02 01:48:23,805 [4] INFO AgentService [(null)] - Processing Command: C:\Program Files (X86)\Citrix\XenTools\xenstore_client.exe write data/guest/8e46a30a-d9d1-4050-b957-6a6c973c6c88 {\""returncode\"":\""1\"",\""message\"":\""Command Failed. , Error:Manipulates network routing tables.\r\nROUTE [-f] [-p] [-4|-6] command [destination]\r\n [MASK netmask] [gateway] [METRIC metric] [IF interface]\r\n -f Clears the routing tables of all gateway entries. If this is\r\n used in conjunction with one of the commands, the tables are\r\n cleared prior to running the command.\r\n \r\n -p When used with the ADD command, makes a route persistent across\r\n boots of the system. By default, routes are not preserved\r\n when the system is restarted. Ignored for all other commands, \r\n which always affect the appropriate persistent routes. This \r\n option is not supported in Windows 95.\r\n \r\n -4\t Force using IPv4.\r\n -6 Force using IPv6. \r\n \r\n command One of these:\r\n PRINT Prints a route\r\n ADD Adds a route\r\n DELETE Deletes a route\r\n CHANGE Modifies an existing route\t\r\n destination Specifies the host.\r\n MASK Specifies that the next parameter is the \u0027netmask\u0027 value.\r\n netmask Specifies a subnet mask value for this route entry.\r\n If not specified, it defaults to 255.255.255.255.\r\n gateway Specifies gateway.\r\n interface the interface number for the specified route.\r\n METRIC specifies the metric, ie. cost for the destination.\r\nAll symbolic names used for destination are looked up in the network database\r\nfile NETWORKS. The symbolic names for gateway are looked up in the host name\r\ndatabase file HOSTS.\r\nIf the command is PRINT or DELETE. Destination or gateway can be a wildcard,\r\n(wildcard is specified as a star \u0027*\u0027), or the gateway argument may be omitted.\r\nIf Dest contains a * or ?, it is treated as a shell pattern, and only\r\nmatching destination routes are printed. The \u0027*\u0027 matches any string,\r\nand \u0027?\u0027 matches any one char. Examples: 157.*.1, 157.*, 127.*, *224*.\r\nPattern match is only allowed in PRINT command.\r\nDiagnostic Notes:\r\n Invalid MASK generates an error, that is when (DEST & MASK) != DEST.\r\n Example\u003e route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1\r\n The route addition failed: The specified mask parameter is invalid. (Destination & Mask) != Destination.\r\nExamples:\r\n \u003e route PRINT\r\n \u003e route PRINT -4\r\n \u003e route PRINT -6\r\n \u003e route PRINT 157* .... Only prints those matching 157*\r\n\t\r\n \u003e route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2\r\n destination^ ^mask ^gateway metric^ ^\r\n Interface^\r\n If IF is not given, it tries to find the best interface for a given \r\n gateway.\r\n \u003e route ADD 3ffe::/32 3ffe::1\r\n \r\n \u003e route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2\r\n \r\n CHANGE is used to modify gateway and/or metric only.\r\n \r\n \u003e route DELETE 157.0.0.0\r\n \u003e route DELETE 3ffe::/32\r\n\""}
2012-05-02 01:48:23,805 [4] INFO AgentService [(null)] - Command Result:
ExitCode=1
Output=writing to data/guest/8e46a30a-d9d1-4050-b957-6a6c973c6c88: There is not enough space on the disk.

Error=
2012-05-02 01:48:23,805 [4] INFO AgentService [(null)] - Processing Command: C:\Program Files (X86)\Citrix\XenTools\xenstore_client.exe remove data/host/8e46a30a-d9d1-4050-b957-6a6c973c6c88
2012-05-02 01:48:23,820 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output=
Error=
2012-05-02 01:48:29,826 [4] INFO AgentService [(null)] - Processing Command: C:\Program Files (X86)\Citrix\XenTools\xenstore_client.exe dir data/host
2012-05-02 01:48:29,826 [4] INFO AgentService [(null)] - Command Result:
ExitCode=0
Output=
Error=

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.