Merge pull request #101 from broadinstitute/dr_fix_failing_parallel_tests
Fix more tests that fail when run in parallel on the farm
This commit is contained in:
commit
b3f67899b5
|
|
@ -78,17 +78,11 @@ public class GATKRunReport {
|
||||||
|
|
||||||
private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH.mm.ss");
|
private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH.mm.ss");
|
||||||
|
|
||||||
/**
|
|
||||||
* number of milliseconds before the S3 put operation is timed-out:
|
|
||||||
*/
|
|
||||||
private static final long S3_PUT_TIME_OUT = 30 * 1000;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The root file system directory where we keep common report data
|
* The root file system directory where we keep common report data
|
||||||
*/
|
*/
|
||||||
private final static File REPORT_DIR = new File("/humgen/gsa-hpprojects/GATK/reports");
|
private final static File REPORT_DIR = new File("/humgen/gsa-hpprojects/GATK/reports");
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The full path to the direct where submitted (and uncharacterized) report files are written
|
* The full path to the direct where submitted (and uncharacterized) report files are written
|
||||||
*/
|
*/
|
||||||
|
|
@ -105,6 +99,17 @@ public class GATKRunReport {
|
||||||
*/
|
*/
|
||||||
protected static final Logger logger = Logger.getLogger(GATKRunReport.class);
|
protected static final Logger logger = Logger.getLogger(GATKRunReport.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default value for the number of milliseconds before an S3 put operation is timed-out.
|
||||||
|
* Can be overridden via a constructor argument.
|
||||||
|
*/
|
||||||
|
private static final long S3_DEFAULT_PUT_TIME_OUT_IN_MILLISECONDS = 30 * 1000;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Number of milliseconds before an S3 put operation is timed-out.
|
||||||
|
*/
|
||||||
|
private long s3PutTimeOutInMilliseconds = S3_DEFAULT_PUT_TIME_OUT_IN_MILLISECONDS;
|
||||||
|
|
||||||
// -----------------------------------------------------------------
|
// -----------------------------------------------------------------
|
||||||
// elements captured for the report
|
// elements captured for the report
|
||||||
// -----------------------------------------------------------------
|
// -----------------------------------------------------------------
|
||||||
|
|
@ -230,13 +235,31 @@ public class GATKRunReport {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new RunReport and population all of the fields with values from the walker and engine
|
* Create a new RunReport and population all of the fields with values from the walker and engine.
|
||||||
|
* Allows the S3 put timeout to be explicitly set.
|
||||||
*
|
*
|
||||||
* @param walker the GATK walker that we ran
|
* @param walker the GATK walker that we ran
|
||||||
* @param e the exception caused by running this walker, or null if we completed successfully
|
* @param e the exception caused by running this walker, or null if we completed successfully
|
||||||
* @param engine the GAE we used to run the walker, so we can fetch runtime, args, etc
|
* @param engine the GAE we used to run the walker, so we can fetch runtime, args, etc
|
||||||
|
* @param type the GATK phone home setting
|
||||||
|
* @param s3PutTimeOutInMilliseconds number of milliseconds to wait before timing out an S3 put operation
|
||||||
*/
|
*/
|
||||||
public GATKRunReport(Walker<?,?> walker, Exception e, GenomeAnalysisEngine engine, PhoneHomeOption type) {
|
public GATKRunReport(final Walker<?,?> walker, final Exception e, final GenomeAnalysisEngine engine, final PhoneHomeOption type,
|
||||||
|
final long s3PutTimeOutInMilliseconds) {
|
||||||
|
this(walker, e, engine, type);
|
||||||
|
this.s3PutTimeOutInMilliseconds = s3PutTimeOutInMilliseconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new RunReport and population all of the fields with values from the walker and engine.
|
||||||
|
* Leaves the S3 put timeout set to the default value of S3_DEFAULT_PUT_TIME_OUT_IN_MILLISECONDS.
|
||||||
|
*
|
||||||
|
* @param walker the GATK walker that we ran
|
||||||
|
* @param e the exception caused by running this walker, or null if we completed successfully
|
||||||
|
* @param engine the GAE we used to run the walker, so we can fetch runtime, args, etc
|
||||||
|
* @param type the GATK phone home setting
|
||||||
|
*/
|
||||||
|
public GATKRunReport(final Walker<?,?> walker, final Exception e, final GenomeAnalysisEngine engine, final PhoneHomeOption type) {
|
||||||
if ( type == PhoneHomeOption.NO_ET )
|
if ( type == PhoneHomeOption.NO_ET )
|
||||||
throw new ReviewedStingException("Trying to create a run report when type is NO_ET!");
|
throw new ReviewedStingException("Trying to create a run report when type is NO_ET!");
|
||||||
|
|
||||||
|
|
@ -563,7 +586,7 @@ public class GATKRunReport {
|
||||||
throw new IllegalStateException("We are throwing an exception for testing purposes");
|
throw new IllegalStateException("We are throwing an exception for testing purposes");
|
||||||
case TIMEOUT:
|
case TIMEOUT:
|
||||||
try {
|
try {
|
||||||
Thread.sleep(S3_PUT_TIME_OUT * 100);
|
Thread.sleep(s3PutTimeOutInMilliseconds * 100);
|
||||||
} catch ( InterruptedException e ) {
|
} catch ( InterruptedException e ) {
|
||||||
// supposed to be empty
|
// supposed to be empty
|
||||||
}
|
}
|
||||||
|
|
@ -625,7 +648,7 @@ public class GATKRunReport {
|
||||||
s3thread.setName("S3Put-Thread");
|
s3thread.setName("S3Put-Thread");
|
||||||
s3thread.start();
|
s3thread.start();
|
||||||
|
|
||||||
s3thread.join(S3_PUT_TIME_OUT);
|
s3thread.join(s3PutTimeOutInMilliseconds);
|
||||||
|
|
||||||
if(s3thread.isAlive()){
|
if(s3thread.isAlive()){
|
||||||
s3thread.interrupt();
|
s3thread.interrupt();
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,8 @@ import java.util.concurrent.TimeUnit;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class MaxRuntimeIntegrationTest extends WalkerTest {
|
public class MaxRuntimeIntegrationTest extends WalkerTest {
|
||||||
private static final long STARTUP_TIME = TimeUnit.NANOSECONDS.convert(120, TimeUnit.SECONDS);
|
// Assume a ridiculous amount of startup overhead to allow for running these tests on slow farm nodes
|
||||||
|
private static final long STARTUP_TIME = TimeUnit.NANOSECONDS.convert(300, TimeUnit.SECONDS);
|
||||||
|
|
||||||
private class MaxRuntimeTestProvider extends TestDataProvider {
|
private class MaxRuntimeTestProvider extends TestDataProvider {
|
||||||
final long maxRuntime;
|
final long maxRuntime;
|
||||||
|
|
@ -68,7 +69,7 @@ public class MaxRuntimeIntegrationTest extends WalkerTest {
|
||||||
//
|
//
|
||||||
// Loop over errors to throw, make sure they are the errors we get back from the engine, regardless of NT type
|
// Loop over errors to throw, make sure they are the errors we get back from the engine, regardless of NT type
|
||||||
//
|
//
|
||||||
@Test(enabled = true, dataProvider = "MaxRuntimeProvider", timeOut = 300 * 1000)
|
@Test(enabled = true, dataProvider = "MaxRuntimeProvider", timeOut = 600 * 1000)
|
||||||
public void testMaxRuntime(final MaxRuntimeTestProvider cfg) {
|
public void testMaxRuntime(final MaxRuntimeTestProvider cfg) {
|
||||||
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
|
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
|
||||||
"-T PrintReads -R " + hg18Reference
|
"-T PrintReads -R " + hg18Reference
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ import org.testng.annotations.Test;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class JnaSessionIntegrationTest extends BaseTest {
|
public class JnaSessionPipelineTest extends BaseTest {
|
||||||
private String implementation = null;
|
private String implementation = null;
|
||||||
private static final SessionFactory factory = new JnaSessionFactory();
|
private static final SessionFactory factory = new JnaSessionFactory();
|
||||||
|
|
||||||
|
|
@ -40,7 +40,7 @@ import java.io.File;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class LibDrmaaIntegrationTest extends BaseTest {
|
public class LibDrmaaPipelineTest extends BaseTest {
|
||||||
private String implementation = null;
|
private String implementation = null;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -40,7 +40,7 @@ import java.io.File;
|
||||||
/**
|
/**
|
||||||
* Really unit tests, but these test will only run on systems with LSF setup.
|
* Really unit tests, but these test will only run on systems with LSF setup.
|
||||||
*/
|
*/
|
||||||
public class LibBatIntegrationTest extends BaseTest {
|
public class LibBatPipelineTest extends BaseTest {
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public void initLibBat() {
|
public void initLibBat() {
|
||||||
Assert.assertFalse(LibBat.lsb_init("LibBatIntegrationTest") < 0, LibBat.lsb_sperror("lsb_init() failed"));
|
Assert.assertFalse(LibBat.lsb_init("LibBatIntegrationTest") < 0, LibBat.lsb_sperror("lsb_init() failed"));
|
||||||
Loading…
Reference in New Issue