Up until this point, our VXQuery tests have been "legal" JUnit tests, in the sense that no test is affected by the results of another test (for contrast, think of Asterix, where one test could potentially ruin the shared cluster instance that the next test will use).
In order to achieve this, we have been creating, starting, and stopping a new cluster for each test case individually. This has worked fine while the number of test cases has remained small, but as GSOC has been rapidly adding new test cases, we have found an issue. Basically, the cleanup process isn't properly closing sockets when the cluster finishes, which leads to a huge number of open files, throwing a Java error. Asterix avoids this problem in two ways: 1) They create a cluster only once for an entire test suite 2) The cc and the client are in the same place, so stopping the cc has a net effect of closing these sockets. As a temporary solution, we are employing (1) from Asterix, which makes our tests no longer "legal" JUnit tests, but allows our test suites to execute (they were currently always failing on most non-mac unix systems). In the long term, we would need to add functionality within Hyracks for manually closing the client sockets (which again wasn't necessary within the Asterix model). The reason we aren't doing this now is that it requires us to catch up to the latest Hyracks builds, which will currently be nontrivial. Please feel free to share your thoughts on this. Steven
