Skip to content

GH-16592 Fix NPE when scoring CoxPH mojo from h2o 3.32.x.x#16591

Merged
valenad1 merged 2 commits intorel-3.46.0from
MR/master/coxPH-backward-compatibility
Apr 10, 2025
Merged

GH-16592 Fix NPE when scoring CoxPH mojo from h2o 3.32.x.x#16591
valenad1 merged 2 commits intorel-3.46.0from
MR/master/coxPH-backward-compatibility

Conversation

@Mathanraj-Sharma
Copy link
Copy Markdown
Member

@Mathanraj-Sharma Mathanraj-Sharma commented Mar 14, 2025

Fixes #16592

CoxPH mojo models generated using 3.32.x.x throws NPE when using with h2o >= 3.42.0.4

stacktrace: 
java.lang.NullPointerException
	at hex.genmodel.algos.coxph.CoxPHMojoReader.readModelData(CoxPHMojoReader.java:31)
	at hex.genmodel.ModelMojoReader.readAll(ModelMojoReader.java:260)
	at hex.genmodel.ModelMojoReader.readFrom(ModelMojoReader.java:66)
	at hex.generic.Generic$MojoDelegatingModelDriver.importMojo(Generic.java:122)
	at hex.generic.Generic$MojoDelegatingModelDriver.computeImpl(Generic.java:107)
	at hex.ModelBuilder$Driver.compute2(ModelBuilder.java:253)
	at hex.generic.Generic$MojoDelegatingModelDriver.compute2(Generic.java:92)
	at water.H2O$H2OCountedCompleter.compute(H2O.java:1689)
	at jsr166y.CountedCompleter.exec(CountedCompleter.java:468)
	at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263)
	at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:976)
	at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1479)
	at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)

The issue mainly occurs since num_numerical_columns and num_offsets are absent in CoxPH mojo from older h2o3 versions.

I am using the -1 as default for num_numerical_columns ( assuming number of numerical columns won't be less than 0 in any cases) and scoring based on it.

ref: https://support.h2o.ai/a/tickets/110207

@Mathanraj-Sharma Mathanraj-Sharma self-assigned this Mar 14, 2025
@Mathanraj-Sharma Mathanraj-Sharma changed the title Fix NPE when scoring CoxPH mojo from h2o 3.32.x.x GH-16592 Fix NPE when scoring CoxPH mojo from h2o 3.32.x.x Mar 17, 2025
@valenad1
Copy link
Copy Markdown
Collaborator

I am using the -1 as default for num_numerical_columns ( assuming number of numerical columns won't be less than 0 in any cases) and scoring based on it.

Hi @Mathanraj-Sharma , just realized.. what if we traing CoxPH model only with categorical columns?

@Mathanraj-Sharma Mathanraj-Sharma force-pushed the MR/master/coxPH-backward-compatibility branch from ea67b29 to 507d6ae Compare April 2, 2025 06:21
@Mathanraj-Sharma
Copy link
Copy Markdown
Member Author

@valenad1 fix works for model trained using categorical features only as well

@valenad1 valenad1 marked this pull request as ready for review April 7, 2025 15:06
@valenad1 valenad1 changed the base branch from master to rel-3.46.0 April 7, 2025 15:41
@valenad1 valenad1 force-pushed the MR/master/coxPH-backward-compatibility branch from 507d6ae to 26cd3ab Compare April 7, 2025 15:42
Copy link
Copy Markdown
Collaborator

@valenad1 valenad1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@valenad1 valenad1 merged commit 3b93dea into rel-3.46.0 Apr 10, 2025
62 of 70 checks passed
@valenad1 valenad1 deleted the MR/master/coxPH-backward-compatibility branch April 10, 2025 10:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CoxPH backward compatibility issue

2 participants