Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ArrayIndexOutofBoundsException Error when model building a GBM model #8480

Closed
exalate-issue-sync bot opened this issue May 12, 2023 · 4 comments
Closed

Comments

@exalate-issue-sync
Copy link

User is getting error when training GBM model:

{quote}User class threw exception: DistributedException from gdoop-worker454.snc1/10.24.34.49:54321: '-3', caused by java.lang.ArrayIndexOutOfBoundsException: -3

Caused by: java.lang.ArrayIndexOutOfBoundsException: -3
at hex.tree.DHistogram.updateHisto(DHistogram.java:460)
at hex.tree.ScoreBuildHistogram2$ComputeHistoThread.computeChunk(ScoreBuildHistogram2.java:336)
at hex.tree.ScoreBuildHistogram2$ComputeHistoThread.map(ScoreBuildHistogram2.java:308)
at water.LocalMR.compute2(LocalMR.java:84)
at water.LocalMR.compute2(LocalMR.java:76)
at water.LocalMR.compute2(LocalMR.java:76)
at water.LocalMR.compute2(LocalMR.java:76)
at water.LocalMR.compute2(LocalMR.java:76)
at water.LocalMR.compute2(LocalMR.java:76)
at water.H2O$H2OCountedCompleter.compute(H2O.java:1443)
at jsr166y.CountedCompleter.exec(CountedCompleter.java:468)
at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263)
at jsr166y.ForkJoinPool$WorkQueue.popAndExecAll(ForkJoinPool.java:904)
at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:977)
at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477)
at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104){quote}

@exalate-issue-sync
Copy link
Author

Neema Mashayekhi commented: Reproduced with assertions enabled on H2O 3.26.0.11. Log error:

{quote}01-03 10:54:13.580 172.16.2.181:54321 30707 FJ-1-5 INFO: Completing model gbmModel_purchase_t5d5.hex
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: java.lang.AssertionError: -1 Ѐ
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at hex.tree.DHistogram.bin(DHistogram.java:272)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at hex.tree.DHistogram.updateHisto(DHistogram.java:459)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at hex.tree.ScoreBuildHistogram2$ComputeHistoThread.computeChunk(ScoreBuildHistogram2.java:336)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at hex.tree.ScoreBuildHistogram2$ComputeHistoThread.map(ScoreBuildHistogram2.java:308)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at water.LocalMR.compute2(LocalMR.java:84)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at water.LocalMR.compute2(LocalMR.java:76)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at water.LocalMR.compute2(LocalMR.java:76)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at water.LocalMR.compute2(LocalMR.java:76)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at water.H2O$H2OCountedCompleter.compute(H2O.java:1443)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at jsr166y.CountedCompleter.exec(CountedCompleter.java:468)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477)
01-03 10:54:13.583 172.16.2.181:54321 30707 FJ-1-5 ERRR: at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104){quote}

User is using:

{code:scala}gbmParams._histogram_type = SharedTreeModel.SharedTreeParameters.HistogramType.QuantilesGlobal{code}

Error does NOT occur if histograms are NOT set to QuantilesGlobal

@exalate-issue-sync
Copy link
Author

Neema Mashayekhi commented: User found that if they round both features to 3 decimal it works with quantiles global.

They think it's a Double precision problem when computing big decimals.

@exalate-issue-sync
Copy link
Author

Neema Mashayekhi commented: Found that negative zeros (-0.0) in dataset are causing error

@h2o-ops
Copy link
Collaborator

h2o-ops commented May 14, 2023

JIRA Issue Migration Info

Jira Issue: PUBDEV-7161
Assignee: Michal Kurka
Reporter: Neema Mashayekhi
State: Resolved
Fix Version: 3.28.0.2
Attachments: N/A
Development PRs: Available

Linked PRs from JIRA

#4197

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant