Buggy code:
public class GLMTest extends TestUtil { @ BeforeClass public static void setup ( ) { } @ Test public void testGaussianRegression ( ) throws InterruptedException , ExecutionException { } @ Test public void testPoissonRegression ( ) throws InterruptedException , ExecutionException { } @ Test public void testGammaRegression ( ) throws InterruptedException , ExecutionException { } @ Test public void testLineSearchTask ( ) { } @ Test public void testGradientTask ( ) { } @ Test public void testCars ( ) throws InterruptedException , ExecutionException { } @ Test public void testBounds ( ) { } @ Test public void testProximal ( ) { } @ Test public void testAirlines ( ) { } @ Test public void testYmuTsk ( ) { } @ Test public void testProstate ( ) throws InterruptedException , ExecutionException { } @ Test public void testSynthetic ( ) throws Exception { } @ Test public void testArcene ( ) throws InterruptedException , ExecutionException { GLM job = null ; Key parsed = Key . make ( "arcene_parsed" ) ; Key modelKey = Key . make ( "arcene_model" ) ; GLMModel model = null ; Frame fr = parse_test_file ( parsed , "smalldata//glm_test//arcene.csv" ) ; try { Scope . enter ( ) ; GLMParameters params = new GLMParameters ( Family . gaussian ) ; params . _lambda = null ; params . _response_column = fr . _names [ 0 ] ; params . _train = parsed ; params . _lambda_search = true ; params . _nlambdas = 35 ; params . _lambda_min_ratio = 0.18 ; <START_BUG> params . _max_iter = 100000 ; <END_BUG> params . _max_active_predictors = 215 ; params . _alpha = new double [ ] { 1 } ; for ( Solver s : new Solver [ ] { Solver . L_BFGS , Solver . ADMM } ) { params . _solver = s ; job = new GLM ( modelKey , "glm<seq2seq4repair_space>test<seq2seq4repair_space>simple<seq2seq4repair_space>poisson" , params ) ; job . trainModel ( ) . get ( ) ; model = DKV . get ( modelKey ) . get ( ) ; assertEquals ( params . _nlambdas , model . _output . _submodels . length ) ; GLMValidation val = model . validation ( ) ; model . _output . setSubmodelIdx ( ( ( model . _output . _submodels . length ) - 1 ) ) ; Submodel sm = model . _output . _submodels [ model . _output . _best_lambda_idx ] ; double l1norm = 0 ; for ( double d : sm . norm_beta ) l1norm += Math . abs ( d ) ; double objval = ( ( sm . trainVal . residual_deviance ) // ( sm . trainVal . nobs ) ) + ( ( sm . lambda_value ) * l1norm ) ; assertEquals ( 0.32922849120947384 , objval , 0.001 ) ; GLMModel m = new hex . glm . GLMModel . GetScoringModelTask ( null , model . _key , sm . lambda_value ) . invokeTask ( ) . _res ; Frame score = m . score ( fr ) ; MSETsk mse = new MSETsk ( ) . doAll ( score . anyVec ( ) , fr . vec ( m . _output . responseName ( ) ) ) ; assertEquals ( val . residualDeviance ( ) , mse . _resDev , 1.0E-6 ) ; score . remove ( ) ; model . _output . setSubmodelIdx ( ( ( model . _output . _submodels . length ) > > 1 ) ) ; sm = model . _output . _submodels [ model . _output . _best_lambda_idx ] ; val = model . _output . _submodels [ model . _output . _best_lambda_idx ] . trainVal ; m = new hex . glm . GLMModel . GetScoringModelTask ( null , model . _key , sm . lambda_value ) . invokeTask ( ) . _res ; score = m . score ( fr ) ; mse = new MSETsk ( ) . doAll ( score . anyVec ( ) , fr . vec ( m . _output . responseName ( ) ) ) ; assertEquals ( val . residualDeviance ( ) , mse . _resDev , 1.0E-6 ) ; score . remove ( ) ; job . remove ( ) ; } params = new GLMParameters ( Family . gaussian ) ; params . _lambda = null ; params . _response_column = fr . _names [ 0 ] ; params . _train = parsed ; params . _lambda_search = true ; params . _nlambdas = 35 ; params . _lambda_min_ratio = 0.18 ; params . _max_active_predictors = 20 ; params . _alpha = new double [ ] { 1 } ; job = new GLM ( modelKey , "glm<seq2seq4repair_space>test<seq2seq4repair_space>simple<seq2seq4repair_space>poisson" , params ) ; job . trainModel ( ) . get ( ) ; model = DKV . get ( modelKey ) . get ( ) ; assertTrue ( ( ( model . _output . _submodels . length ) > 3 ) ) ; assertTrue ( ( ( model . validation ( ) . residualDeviance ( ) ) <= 93 ) ) ; } finally { fr . delete ( ) ; if ( model != null ) model . delete ( ) ; if ( job != null ) job . remove ( ) ; Scope . exit ( ) ; } } }

Fix:
params . _max_iterations = 100000 ;