-
Notifications
You must be signed in to change notification settings - Fork 188
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mirage3 #262
Mirage3 #262
Conversation
188527e
to
5487366
Compare
|
It needs the dev version of |
b002878
to
854b6d4
Compare
Hum, it seems that some of the tests in mirage-tcpip do not work on windows:
And the vpnkit tests are failing on macOS (I can reproduce this locally, and @djs55 identified the error message to come from here):
|
I'll try to fix the routing problem by switching to DHCP in the test case. This requires: mirage/charrua#65 |
I can produce a different failure for |
There are 2 failing tests on windows:
I will follow up on mirage/mirage-tcpip |
One of the
(probably intermittent) |
yes sorry I have changed the default test flags in my tcpip branch, I will create a more stable dev branch ... |
I've pushed a new Git url for tcpip dev package, where only quick tests are running. Not sure why the slow test is failing, but this is probably due to a timeout/slow machine. |
src/hostnet/mux.ml
Outdated
Lwt.return r >|= lift_error | ||
Lwt.async | ||
(fun () -> | ||
Netif.listen netif @@ callback t >>= function |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you can write this as:
Netif.listen netif @@ callback t >|= function
| Ok () -> ()
| Error _ -> Log.err (fun f -> ... )
src/hostnet/slirp.ml
Outdated
~gateway:None | ||
~network:Ipaddr.V4.(Prefix.of_addr unspecified) | ||
~network:Ipaddr.V4.Prefix.global |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good catch! I wasn't really sure what to use there :-)
@djs55 it now seems that we have genuine test errors on both windows and macOS:
|
Tests are still failing in CI but I've not managed to reproduce it locally yet. I've pushed some patches to improve the debug logging to see if that helps. I'll see if I can make myself a more exact replica of the CI environment. |
OK it reproduced for me when I ran |
The new errors are related to missing license files, which means the tests passed, yay!! I'll fix the licenses :-) |
ALL GREEN! The last worrying (or not) bit are the failing TCPIP tests on windows. Probably not really severe, but would be great to check that we understand what happens. I'll have a look tomorrow if I find some time. |
Was it only the IPv6 tests? If so that's not too bad, as we don't use IPv6 (yet). Since I'm paranoid, I'll put this |
yea, the ipv6 test is failing but also using an unsuported protocol over a socket: mirage/mirage-tcpip#331 |
Docker Windows tests all passed but Mac tests all failed -- I'll investigate tomorrow. It's probably a startup issue somehow related to the |
Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
Remove the ones which have been released and add new ones Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
Signed-off-by: David Scott <dave@recoil.org>
- use the `connect ~ip` argument rather than `set_ip` to set the stack's IP - set the network to `global` (i.e. "all addresses are on my local network) instead of `unspecified` (i.e. "no addresses are on my local network). Signed-off-by: David Scott <dave@recoil.org>
Previously the test cases were using an (unspecified?) static IP when talking to the loopback vpnkit server. This patch makes the client use DHCP which is - more realistic: this is what we expect real clients to do - more likely to work: previously the client's IP address appeared to be undefined Signed-off-by: David Scott <dave@recoil.org>
Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
because of mirage/mirage-tcpip#330 and mirage/mirage-tcpip#331 Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
Signed-off-by: David Scott <dave.scott@docker.com>
Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
Recall that `listen` can be called multiple times with a "last-callback-wins" semantic. Previously we would start additional copies of the packet receive loop() which can lead to I/O problems on the channel. This patch starts at most one receive loop; other `listen` calls block until disconnect. Signed-off-by: David Scott <dave.scott@docker.com>
Although this is a "Point to Point Protocol" it is not *the* "Point to Point Protocol" so call it "Vmnet" instead (which at least matches the module name, but it's still not ideal) Signed-off-by: David Scott <dave.scott@docker.com>
Previously we would fail the thread with `Too_many_connections` but this meant that the SYN was never responed to. With this change, we send explicit RST packets to the caller. This makes the `test_max_connections` test pass -- previously the TCP `connect` call would resend SYNs for a long time. Signed-off-by: David Scott <dave.scott@docker.com>
It's useful to know what the connection limit is supposed to be. Signed-off-by: David Scott <dave.scott@docker.com>
When debugging traces from the test cases it's useful to know whether a `Vmnet.listen` call is from the client end or the server. This patch adds a logging prefix and sets this to either `Vmnet.Client` or `Vmnet.Server`. Signed-off-by: David Scott <dave.scott@docker.com>
When tests time out in CI it's useful to see where the time was spent. Signed-off-by: David Scott <dave.scott@docker.com>
Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
The mirage-http package depends on mirage-conduit which depends on tls which depends on libgmp etc. We only need the definitions of `read_line` `read` `write` and `flush` so include them directly. Signed-off-by: David Scott <dave.scott@docker.com>
Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
Signed-off-by: David Scott <dave.scott@docker.com>
…pnkit Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
@samoht sorry I force pushed this and lost 2 of your patches. I've re-applied them, hopefully it's ok now. |
Signed-off-by: David Scott <dave@recoil.org>
Signed-off-by: David Scott <dave@recoil.org>
OK, the Docker Mac tests are passing now. I think we are safe to merge this. Any objections? (@samoht?) |
This is built on top of the major cleanup that I've pushed in #259
Everything compiles but it seems that there are 3 missing functions in the tcpip stack:
Stack_ipv4.set_ip_netmask
Stack_ipv4.set_ip_gateways
Stack_tcp_wire.src_of_id
(e.g. there is no way to get the source IP)Also the tests are compiling but not passing, either because of my very flaky connection or because I broke something with the
dns
ref that I modified to beNone
by default. I will investigate more next week.