[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
On 1 June 2015 at 18:02, Carlos Oviedo <psxlco@xxxxxxxxxxxxxxxx> wrote: > 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) It looks like you're running two instances of the TCP/IP stack. One is working and the other is failing. This is probably a bug in the mirage tool, because you only created a single stack in your config.ml, but check the generated main.ml to see what it actually did... As a work-around, you could just pass the stack to your unikernel and have it create conduit and the resolver. > 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 > -- Dr Thomas Leonard http://roscidus.com/blog/ GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA _______________________________________________ MirageOS-devel mailing list MirageOS-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |