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

Re: [MirageOS-devel] OPW intern checking in!

Hi Anil,

Just to confirm what I was showing you yesterday. Â

This, along with possibly a few other defects, crept in as part of the changes that were made on Jan 23, "Simplify the listener mechanism to push it into the TCP input handler". ÂThe changes were all good improvements, and necessary, but this bug sneaked in. Â

Mainly, as you say, this points to a lack of good regression tests and test infrastructure. ÂI have tried to make some unit tests but for TCP there are many balls that have to be kept in the air and I could not quite do it in an automated way. ÂThe most successful of this kind of test was one in which a single VM would bring up 2 virtual interfaces and send specific patterns of data in both directions. ÂIt knew what to expect and it could, if necessary, even examine the state machines of the two TCPs. ÂThis was quite fragile - it would often stumble on something simple like bringing up two VIFs. Â

The need of the hour for TCP really is to build a nice reliable networking regression test infrastructure. ÂThe test rig would need to be able to make different kinds of connections, be able to capture a packet trace, pull out the state of the test TCP and then make sense of it all together. ÂBig project but could be fun. ÂProbably also done many times before so if there is a ready made rig that we can adapt then that may be the best place to start.


On Sun, Jun 8, 2014 at 7:13 PM, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
On 2 Jun 2014, at 17:00, Mindy <mindy@xxxxxxxxxxxxxxxxxxx> wrote:

> Hi, folks! ÂHere's a quick summary of what I've been up to
> Late last week: dug more into observed lack of FINs from listening unikernels, found the problem, and submitted a pull request to mirage-tcpip

This had Balraj and me scratching our collective heads about how it regressed, since we're *sure* it used to work (famous last words :-). Balraj, any thoughts about it after your Friday investigations?

This does highlight the importance of getting a regression test infrastructure for networking in place though, since TCPIP in particular is a very interlocked protocol. ÂAny thoughts you may have about this using scapy would be interesting...

Meanwhile, I've released it as tcpip.1.1.3 into OPAM: https://github.com/ocaml/opam-repository/pull/2207

> Today: make blog post on looking into that readable by humans who wish not to be bored to death; finish unit test for upstream error reporting in a `test_net_lwt` module in lib_test; send PR for error condition unit tests to Cohttp upstream; fuzz harder!

I'm still untangling Cohttp and Conduit to push releases out. ÂMy deadline is to have some of the more obvious bugfixes done before the Mirage call on Tuesday...


MirageOS-devel mailing list



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