[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] Routing.No_route_to_destination_address running Mirage web server



Hi,

I have a similar problem, please find the code (a revised http-fetch version) in the following repo:
https://github.com/lcoviedo/mirage-http-fetch

The unikernel only works fine when runs as a unix backend using socket network stack, otherwise I get the errors below (DHCP full process is run twice, and crashes after ARP timeout).

Interestingly, packet capture on eth0 shows the gw replying to arp requests. Also, removing ctx from HTTP.get that makes use of default resolver builds and runs but results in "name resolution failed unknown endpoint type", however the arp timeout and twice-dhcp process problems do not persist.

Help is much appreciated.

Â
Parsing config from http-fetch.xl
Xen Minimal OS!
 start_info: 00000000004f6000(VA)
ÂÂÂ nr_pages: 0x10000
 shared_inf: 0x96cf4000(MA)
ÂÂÂÂ pt_base: 00000000004f9000(VA)
nr_pt_frames: 0x7
ÂÂÂ mfn_list: 0000000000476000(VA)
ÂÂ mod_start: 0x0(VA)
ÂÂÂÂ mod_len: 0
ÂÂÂÂÂÂ flags: 0x0
ÂÂÂ cmd_line:
ÂÂÂÂÂÂ stack: 0000000000455780-0000000000475780
MM: Init
ÂÂÂÂÂ _text: 0000000000000000(VA)
ÂÂÂÂ _etext: 000000000025b1ff(VA)
ÂÂ _erodata: 00000000002d3000(VA)
ÂÂÂÂ _edata: 0000000000419460(VA)
stack start: 0000000000455780(VA)
ÂÂÂÂÂÂ _end: 0000000000475780(VA)
 start_pfn: 503
ÂÂÂ max_pfn: 10000
Mapping memory range 0x800000 - 0x10000000
setting 0000000000000000-00000000002d3000 readonly
skipped 1000
MM: Initialise page allocator for 57f000(57f000)-10000000(10000000)
MM: done
Demand map pfns at 10001000-0000002010001000.
Initialising timer interface
Initialising console ... done.
gnttab_table mapped at 0000000010001000.
getenv(OCAMLRUNPARAM) -> null
getenv(CAMLRUNPARAM) -> null
getenv(PATH) -> null
Unsupported function lseek called in Mini-OS kernel
Unsupported function lseek called in Mini-OS kernel
Unsupported function lseek called in Mini-OS kernel
getenv(OCAMLRUNPARAM) -> null
getenv(CAMLRUNPARAM) -> null
getenv(TMPDIR) -> null
getenv(TEMP) -> null
Netif: add resume hook
Netif.connect 0
Netfront.create: id=0 domid=0
MAC: aa:aa:aa:aa:aa:aa
Attempt to open(/dev/urandom)!
Manager: connect
Manager: configuring
DHCP: start discovery

Sending DHCP broadcast (length 552)
DHCP response:
input ciaddr 0.0.0.0 yiaddr 10.0.20.67
siaddr 0.0.0.0 giaddr 0.0.0.0
chaddr aaaaaaaaaaaa00000000000000000000 sname file
DHCP: offer received: 10.0.20.67
DHCP options: Offer : Broadcast(10.0.20.255), DNS servers(10.0.21.232,10.0.21.233,10.0.21.234,10.0.20.29), Routers(10.0.20.1), Subnet mask(255.255.255.0), Lease time(7200), Server identifer(10.0.23.135)
Sending DHCP broadcast (length 552)
DHCP response:
input ciaddr 0.0.0.0 yiaddr 10.0.20.67
siaddr 0.0.0.0 giaddr 0.0.0.0
chaddr aaaaaaaaaaaa00000000000000000000 sname file
DHCP: offer received
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ IPv4: 10.0.20.67
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Netmask: 255.255.255.0
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Gateways: [10.0.20.1]
Âsg:true gso_tcpv4:true rx_copy:true rx_flip:false smart_poll:false
ARP: sending gratuitous from 10.0.20.67
DHCP offer received and bound to 10.0.20.67 nm 255.255.255.0 gw [10.0.20.1]
Manager: configuration done
Attempt to open(/dev/urandom)!
Manager: connect
Manager: configuring
DHCP: start discovery

Sending DHCP broadcast (length 552)
DHCP response:
input ciaddr 0.0.0.0 yiaddr 10.0.20.67
siaddr 0.0.0.0 giaddr 0.0.0.0
chaddr aaaaaaaaaaaa00000000000000000000 sname file
DHCP: offer received: 10.0.20.67
DHCP options: Offer : Broadcast(10.0.20.255), DNS servers(10.0.21.232), Routers(10.0.20.1), Subnet mask(255.255.255.0), Lease time(7200), Server identifer(10.0.23.135)
Sending DHCP broadcast (length 552)
DHCP response:
input ciaddr 0.0.0.0 yiaddr 10.0.20.67
siaddr 0.0.0.0 giaddr 0.0.0.0
chaddr aaaaaaaaaaaa00000000000000000000 sname file
DHCP: offer received
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ IPv4: 10.0.20.67
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Netmask: 255.255.255.0
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Gateways: [10.0.20.1]
ARP: sending gratuitous from 10.0.20.67
DHCP offer received and bound to 10.0.20.67 nm 255.255.255.0 gw [10.0.20.1]
Manager: configuration done
Resolving in 1s using DNS server 8.8.8.8
Fetching http://anil.recoil.org with Cohttp:
Attempt to open(/dev/urandom)!
ARP: transmitting probe -> 10.0.20.1
ARP: updating 10.0.20.1 -> 00:1b:d5:f4:1d:c4
ARP: transmitting probe -> 10.0.20.1
ARP: updating 10.0.20.1 -> 00:1b:d5:f4:1d:c4
ARP: retrying 10.0.20.1 (n=1)
ARP: transmitting probe -> 10.0.20.1
ARP: updating 10.0.20.1 -> 00:1b:d5:f4:1d:c4
ARP: retrying 10.0.20.1 (n=2)
ARP: transmitting probe -> 10.0.20.1
ARP: updating 10.0.20.1 -> 00:1b:d5:f4:1d:c4
ARP: retrying 10.0.20.1 (n=3)
ARP: transmitting probe -> 10.0.20.1
ARP: updating 10.0.20.1 -> 00:1b:d5:f4:1d:c4
IP.output: arp timeout to gw 5.153.225.51
Fatal error: exception Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
Raised at file "src/core/lwt.ml", line 788, characters 22-23
Called from file "lib/main.ml", line 58, characters 10-20
Called from file "main.ml", line 107, characters 2-77
Mirage exiting with status 2
Do_exit called!
base is 0x46ff10 caller is 0x23e89d
base is 0x418df0 caller is 0x0
base is 0x273c9b caller is 0x5241570000000000
base is 0x65676172696d Page fault at linear address 656761726975, rip 25a747, regs 000000000046fe28, sp 46fed0, our_sp 000000000046fdf0, code 0
RIP: e030:[<000000000025a747>]
RSP: e02b:000000000046fed0Â EFLAGS: 00010002
RAX: 0000000000000017 RBX: 000065676172696d RCX: 00000000000004ba
RDX: 00000000000014bb RSI: 000000000046fd20 RDI: 0000000000000004
RBP: 000000000046ff10 R08: 00000000000014bb R09: 0000000000000020
R10: 0000000000000017 R11: 0000000000000010 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
base is 0x46ff10 caller is 0x23e89d
base is 0x418df0 caller is 0x0
base is 0x273c9b caller is 0x5241570000000000
base is 0x65676172696d Page fault in pagetable walk (access to invalid memory?).


On 29/05/15 04:06, Andrew Stuart wrote:
Hello

I am trying to run a static Mirage web server on a local Xen server.

When I do
curl 192.168.1.111
from dom0 it works fine.

When I try to access 192.168.1.111 from any other device on the network I get the errors below.

The cfg file includes this:
vif		= [ 'mac=c0:ff:ee:aa:ff:ee,bridge=xenbr0â ]

I have also tried
vif		= [ 'bridge=xenbr0â ]

I have various other domu machines including an Ubuntu web server that have no problem responding to network requests from other devices on the network.

Any hints valued.


setting 0000000000000000-00000000001a4000 readonly
skipped 1000
MM: Initialise page allocator for 43f000(43f000)-10000000(10000000)
MM: done
Demand map pfns at 10001000-0000002010001000.
Initialising timer interface
Initialising console ... done.
gnttab_table mapped at 0000000010001000.
getenv(OCAMLRUNPARAM) -> null
getenv(CAMLRUNPARAM) -> null
getenv(PATH) -> null
Unsupported function lseek called in Mini-OS kernel
Unsupported function lseek called in Mini-OS kernel
Unsupported function lseek called in Mini-OS kernel
getenv(OCAMLRUNPARAM) -> null
getenv(CAMLRUNPARAM) -> null
getenv(TMPDIR) -> null
getenv(TEMP) -> null
Netif: add resume hook
Netif.connect 0
Netfront.create: id=0 domid=0
MAC: 00:16:3e:5f:6c:04
Attempt to open(/dev/urandom)!
Manager: connect
Manager: configuring
DHCP: start discovery

Sending DHCP broadcast (length 552)
DHCP response:
input ciaddr 0.0.0.0 yiaddr 192.168.1.111
siaddr 192.168.1.254 giaddr 0.0.0.0
chaddr 00163e5f6c0400000000000000000000 sname  file
DHCP: offer received: 192.168.1.111
DHCP options: Offer : DNS servers(192.168.1.254), Routers(192.168.1.254), Subnet mask(255.255.255.0), Lease time(43200), Server identifer(192.168.1.254)
Sending DHCP broadcast (length 552)
DHCP response:
input ciaddr 0.0.0.0 yiaddr 192.168.1.111
siaddr 192.168.1.254 giaddr 0.0.0.0
chaddr 00163e5f6c0400000000000000000000 sname  file
DHCP: offer received
                    IPv4: 192.168.1.111
                                       Netmask: 255.255.255.0
                                                             Gateways: [192.168.1.254]
 sg:true gso_tcpv4:true rx_copy:true rx_flip:false smart_poll:false
ARP: sending gratuitous from 192.168.1.111
DHCP offer received and bound to 192.168.1.111 nm 255.255.255.0 gw [192.168.1.254]
Manager: configuration done
ARP: transmitting probe -> 192.168.1.254
ARP: updating 192.168.1.254 -> 00:04:ed:b2:9d:0e
ARP responding to: who-has 192.168.1.111?
ARP: transmitting probe -> 192.168.1.103
ARP: retrying 192.168.1.103 (n=1)
ARP: transmitting probe -> 192.168.1.103
TCP retransmission on timer seq = 452886466
ARP: retrying 192.168.1.103 (n=2)
ARP: transmitting probe -> 192.168.1.103
TCP retransmission on timer seq = 452903536
TCP retransmission on timer seq = 452871534
TCP retransmission on timer seq = 452867352
TCP retransmission on timer seq = 452878388
ARP: retrying 192.168.1.103 (n=3)
ARP: transmitting probe -> 192.168.1.103
TCP retransmission on timer seq = 452893808
TCP retransmission on timer seq = 452896509
TCP retransmission on timer seq = 452866620
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
RX exn Ipv4.Make(Ethif)(Clock)(Time).Routing.No_route_to_destination_address(_)
TCP retransmission on timer seq = 452914625
ARP: transmitting probe -> 192.168.1.103
TCP retransmission on timer seq = 452873343
TCP retransmission on timer seq = 452913759
TCP retransmission on timer seq = 452889447
TCP retransmission on timer seq = 452882133
TCP retransmission on timer seq = 452884019
ARP: retrying 192.168.1.103 (n=1)
ARP: transmitting probe -> 192.168.1.103
TCP retransmission on timer seq = 452869874
TCP retransmission on timer seq = 452874495
TCP retransmission on timer seq = 452886432
TCP retransmission on timer seq = 452886466
ARP: retrying 192.168.1.103 (n=2)
ARP: transmitting probe -> 192.168.1.103
TCP retransmission on timer seq = 452903536
TCP retransmission on timer seq = 452871534
TCP retransmission on timer seq = 452867352
TCP retransmission on timer seq = 452887477
TCP retransmission on timer seq = 452869821
TCP retransmission on timer seq = 452878388
TCP retransmission on timer seq = 452859305
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--
Carlos Oviedo
PhD student
Network Systems Group
University of Nottingham


This message and any attachment are intended solely for the addressee
and may contain confidential information. If you have received this
message in error, please send it back to me, and immediately delete it.

Please do not use, copy or disclose the information contained in this
message or in any attachment.  Any views or opinions expressed by the
author of this email do not necessarily reflect the views of the
University of Nottingham.

This message has been checked for viruses but the contents of an
attachment may still contain software viruses which could damage your
computer system, you are advised to perform your own checks. Email
communications with the University of Nottingham may be monitored as
permitted by UK legislation.
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.