java.lang.ArrayIndexOutOfBoundsException

There are no available Samebug tips for this exception. Do you have an idea how to solve this issue? A short tip would help users who saw this issue last week.

  • UPDATE; I updated the test to have fully legal ast, but this was my original mail the test still fails with the changes cd h2o-dev/py2/testdir_single_jvm python test_xl_aioobe.py the test is short it init's 3 keys, and then does this: { "ast": "(= ([ $c1 #1 #0) (+ ([ $a1 #2 #0) ([ $b1 #2 #0)))" } got exception: "java.lang.ArrayIndexOutOfBoundsException: 0 <= 2 < 1" here's the sequence of asts. Looks like I have a problem with the ## which made the keys smaller than I expected. I'll have to fix that. Seems like the problem is the last one is refering to row 2 which doesn't exist I did these in this order: ast: (= !a1 (is.na (c {#0}))) ast: (= !b1 (is.na (c {#0}))) ast: (= !c1 (is.na (c {#0}))) ast: (= !a1 {##0;#0})}; ast: (= !a1 (c {#0})) ast: (= !b1 {##0;#0})}; ast: (= !b1 (c {#0})) ast: (= !c1 {##0;#0})}; ast: (= !c1 (c {#0})) ast: (= ([ $c1 #1 #0) (+ ([ $a1 #2 #0) ([ $b1 #2 #0))) 12-06 20:03:50.226 192.168.0.34:54321 25520 # Session ERRR: java.lang.ArrayIndexOutOfBoundsException: 0 <= 2 < 1 java.lang.ArrayIndexOutOfBoundsException: 0 <= 2 < 1 at water.fvec.Vec.elem2ChunkIdx(Vec.java:584) at water.fvec.Vec.chunkForRow_impl(Vec.java:699) at water.fvec.Vec.chunkForRow(Vec.java:709) at water.fvec.Vec.at(Vec.java:721) at water.rapids.ASTSlice.exec(AST.java:1036) at water.rapids.AST.treeWalk(AST.java:99) at water.rapids.AST.treeWalk(AST.java:31) at water.rapids.AST.treeWalk(AST.java:65) at water.rapids.Exec.exec(Exec.java:74) at water.api.RapidsHandler.exec(RapidsHandler.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at water.api.Handler.handle(Handler.java:55) at water.api.RequestServer.handle(RequestServer.java:479) at water.api.RequestServer.serve(RequestServer.java:457) at water.NanoHTTPD$HTTPSession.run(NanoHTTPD.java:432) at java.lang.Thread.run(Thread.java:745)
    via by Kevin Normoyle,
  • it's not necessarily a good thing to do, but we should support it [load a dataset; call it d] d$col2000 <- min(d$col2000) Error in .h2o.__remoteSend(client, .h2o.__PAGE_EXEC2, str = expr) : http://127.0.0.1:54321/2/Exec2.json returned the following error: 2 better yet… once you've done this, stuff breaks everywhere > d$col2000 <- min(d$col2000) + d$col2000 Error in .h2o.__remoteSend(client, .h2o.__PAGE_EXEC2, str = expr) : http://127.0.0.1:54321/2/Exec2.json returned the following error: Dataset Last.value.4 is already in use. Unable to use it now. Consider using a different destination name. > head(d) Error in data.frame(col1 = 0.542521227151155, col2 = 0.267292166827247, : arguments imply differing number of rows: 1, 0 > 04:23:10.668 # Session INFO HTTPD: POST /2/Exec2.json str=Last.value.8 = bad_2k.hex[,2000] = c(0.000574313336983323) 04:23:10.747 # Session ERRR WATER:▫ + java.lang.ArrayIndexOutOfBoundsException: 2 + ▸ at water.fvec.Vec.elem2ChunkIdx(Vec.java:407) + ▸ at water.fvec.Vec.chunk(Vec.java:505) + ▸ at water.fvec.Vec.at(Vec.java:513) + ▸ at water.fvec.Frame.toString(Frame.java:475) + ▸ at water.api.Exec2.serve(Exec2.java:50) + ▸ at water.api.Request.serveGrid(Request.java:129) + ▸ at water.Request2.superServeGrid(Request2.java:472) + ▸ at water.api.Exec2.serveGrid(Exec2.java:71) + ▸ at water.api.Request.serve(Request.java:108) + ▸ at water.api.RequestServer.serve(RequestServer.java:315) + ▸ at water.NanoHTTPD$HTTPSession.run(NanoHTTPD.java:421) + ▸ at java.lang.Thread.run(Thread.java:724) 04:23:10.748 # Session ERRR WATER:▫ + java.lang.ArrayIndexOutOfBoundsException: 2 + ▸ at water.fvec.Vec.elem2ChunkIdx(Vec.java:407) + ▸ at water.fvec.Vec.chunk(Vec.java:505) + ▸ at water.fvec.Vec.at(Vec.java:513) + ▸ at water.fvec.Frame.toString(Frame.java:475) + ▸ at water.api.Exec2.serve(Exec2.java:50) + ▸ at water.api.Request.serveGrid(Request.java:129) + ▸ at water.Request2.superServeGrid(Request2.java:472) + ▸ at water.api.Exec2.serveGrid(Exec2.java:71) + ▸ at water.api.Request.serve(Request.java:108) + ▸ at water.api.RequestServer.serve(RequestServer.java:315) + ▸ at water.NanoHTTPD$HTTPSession.run(NanoHTTPD.java:421) + ▸ at java.lang.Thread.run(Thread.java:724) 04:23:51.514 # Session INFO HTTPD: POST /Inspect.json key=bad_2k.hex 04:23:51.633 # Session INFO HTTPD: POST /Inspect.json key=bad_2k.hex max_column_display=2147483647 04:23:51.753 # Session INFO HTTPD: POST /2/Exec2.json str=Last.value.9 = bad_2k.hex[,2000] 04:23:51.768 # Session ERRR WATER:▫ + java.lang.IllegalArgumentException: Dataset Last.value.4 is already in use. Unable to use it now. Consider using a different destination name. + ▸ at water.Lockable$PriorWriteLock.atomic(Lockable.java:84) + ▸ at water.Lockable$PriorWriteLock.atomic(Lockable.java:73) + ▸ at water.TAtomic.atomic(TAtomic.java:19) + ▸ at water.Atomic.compute2(Atomic.java:57) + ▸ at water.Atomic.fork(Atomic.java:42) + ▸ at water.Atomic.invoke(Atomic.java:34) + ▸ at water.Lockable.write_lock(Lockable.java:59) + ▸ at water.exec.Env.remove_and_unlock(Env.java:326) + ▸ at water.api.Exec2.serve(Exec2.java:62) + ▸ at water.api.Request.serveGrid(Request.java:129) + ▸ at water.Request2.superServeGrid(Request2.java:472) + ▸ at water.api.Exec2.serveGrid(Exec2.java:71) + ▸ at water.api.Request.serve(Request.java:108) + ▸ at water.api.RequestServer.serve(RequestServer.java:315) + ▸ at water.NanoHTTPD$HTTPSession.run(NanoHTTPD.java:421) + ▸ at java.lang.Thread.run(Thread.java:724)
    via by Earl Hathaway,
  • UPDATE; I updated the test to have fully legal ast, but this was my original mail the test still fails with the changes cd h2o-dev/py2/testdir_single_jvm python test_xl_aioobe.py the test is short it init's 3 keys, and then does this: { "ast": "(= ([ $c1 #1 #0) (+ ([ $a1 #2 #0) ([ $b1 #2 #0)))" } got exception: "java.lang.ArrayIndexOutOfBoundsException: 0 <= 2 < 1" here's the sequence of asts. Looks like I have a problem with the ## which made the keys smaller than I expected. I'll have to fix that. Seems like the problem is the last one is refering to row 2 which doesn't exist I did these in this order: ast: (= !a1 (is.na (c {#0}))) ast: (= !b1 (is.na (c {#0}))) ast: (= !c1 (is.na (c {#0}))) ast: (= !a1 {##0;#0})}; ast: (= !a1 (c {#0})) ast: (= !b1 {##0;#0})}; ast: (= !b1 (c {#0})) ast: (= !c1 {##0;#0})}; ast: (= !c1 (c {#0})) ast: (= ([ $c1 #1 #0) (+ ([ $a1 #2 #0) ([ $b1 #2 #0))) 12-06 20:03:50.226 192.168.0.34:54321 25520 # Session ERRR: java.lang.ArrayIndexOutOfBoundsException: 0 <= 2 < 1 java.lang.ArrayIndexOutOfBoundsException: 0 <= 2 < 1 at water.fvec.Vec.elem2ChunkIdx(Vec.java:584) at water.fvec.Vec.chunkForRow_impl(Vec.java:699) at water.fvec.Vec.chunkForRow(Vec.java:709) at water.fvec.Vec.at(Vec.java:721) at water.rapids.ASTSlice.exec(AST.java:1036) at water.rapids.AST.treeWalk(AST.java:99) at water.rapids.AST.treeWalk(AST.java:31) at water.rapids.AST.treeWalk(AST.java:65) at water.rapids.Exec.exec(Exec.java:74) at water.api.RapidsHandler.exec(RapidsHandler.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at water.api.Handler.handle(Handler.java:55) at water.api.RequestServer.handle(RequestServer.java:479) at water.api.RequestServer.serve(RequestServer.java:457) at water.NanoHTTPD$HTTPSession.run(NanoHTTPD.java:432) at java.lang.Thread.run(Thread.java:745)
    via by Kevin Normoyle,
  • it's not necessarily a good thing to do, but we should support it [load a dataset; call it d] d$col2000 <- min(d$col2000) Error in .h2o.__remoteSend(client, .h2o.__PAGE_EXEC2, str = expr) : http://127.0.0.1:54321/2/Exec2.json returned the following error: 2 better yet… once you've done this, stuff breaks everywhere > d$col2000 <- min(d$col2000) + d$col2000 Error in .h2o.__remoteSend(client, .h2o.__PAGE_EXEC2, str = expr) : http://127.0.0.1:54321/2/Exec2.json returned the following error: Dataset Last.value.4 is already in use. Unable to use it now. Consider using a different destination name. > head(d) Error in data.frame(col1 = 0.542521227151155, col2 = 0.267292166827247, : arguments imply differing number of rows: 1, 0 > 04:23:10.668 # Session INFO HTTPD: POST /2/Exec2.json str=Last.value.8 = bad_2k.hex[,2000] = c(0.000574313336983323) 04:23:10.747 # Session ERRR WATER:▫ + java.lang.ArrayIndexOutOfBoundsException: 2 + ▸ at water.fvec.Vec.elem2ChunkIdx(Vec.java:407) + ▸ at water.fvec.Vec.chunk(Vec.java:505) + ▸ at water.fvec.Vec.at(Vec.java:513) + ▸ at water.fvec.Frame.toString(Frame.java:475) + ▸ at water.api.Exec2.serve(Exec2.java:50) + ▸ at water.api.Request.serveGrid(Request.java:129) + ▸ at water.Request2.superServeGrid(Request2.java:472) + ▸ at water.api.Exec2.serveGrid(Exec2.java:71) + ▸ at water.api.Request.serve(Request.java:108) + ▸ at water.api.RequestServer.serve(RequestServer.java:315) + ▸ at water.NanoHTTPD$HTTPSession.run(NanoHTTPD.java:421) + ▸ at java.lang.Thread.run(Thread.java:724) 04:23:10.748 # Session ERRR WATER:▫ + java.lang.ArrayIndexOutOfBoundsException: 2 + ▸ at water.fvec.Vec.elem2ChunkIdx(Vec.java:407) + ▸ at water.fvec.Vec.chunk(Vec.java:505) + ▸ at water.fvec.Vec.at(Vec.java:513) + ▸ at water.fvec.Frame.toString(Frame.java:475) + ▸ at water.api.Exec2.serve(Exec2.java:50) + ▸ at water.api.Request.serveGrid(Request.java:129) + ▸ at water.Request2.superServeGrid(Request2.java:472) + ▸ at water.api.Exec2.serveGrid(Exec2.java:71) + ▸ at water.api.Request.serve(Request.java:108) + ▸ at water.api.RequestServer.serve(RequestServer.java:315) + ▸ at water.NanoHTTPD$HTTPSession.run(NanoHTTPD.java:421) + ▸ at java.lang.Thread.run(Thread.java:724) 04:23:51.514 # Session INFO HTTPD: POST /Inspect.json key=bad_2k.hex 04:23:51.633 # Session INFO HTTPD: POST /Inspect.json key=bad_2k.hex max_column_display=2147483647 04:23:51.753 # Session INFO HTTPD: POST /2/Exec2.json str=Last.value.9 = bad_2k.hex[,2000] 04:23:51.768 # Session ERRR WATER:▫ + java.lang.IllegalArgumentException: Dataset Last.value.4 is already in use. Unable to use it now. Consider using a different destination name. + ▸ at water.Lockable$PriorWriteLock.atomic(Lockable.java:84) + ▸ at water.Lockable$PriorWriteLock.atomic(Lockable.java:73) + ▸ at water.TAtomic.atomic(TAtomic.java:19) + ▸ at water.Atomic.compute2(Atomic.java:57) + ▸ at water.Atomic.fork(Atomic.java:42) + ▸ at water.Atomic.invoke(Atomic.java:34) + ▸ at water.Lockable.write_lock(Lockable.java:59) + ▸ at water.exec.Env.remove_and_unlock(Env.java:326) + ▸ at water.api.Exec2.serve(Exec2.java:62) + ▸ at water.api.Request.serveGrid(Request.java:129) + ▸ at water.Request2.superServeGrid(Request2.java:472) + ▸ at water.api.Exec2.serveGrid(Exec2.java:71) + ▸ at water.api.Request.serve(Request.java:108) + ▸ at water.api.RequestServer.serve(RequestServer.java:315) + ▸ at water.NanoHTTPD$HTTPSession.run(NanoHTTPD.java:421) + ▸ at java.lang.Thread.run(Thread.java:724)
    via by Earl Hathaway,
    • java.lang.ArrayIndexOutOfBoundsException: 1 at water.fvec.Vec.elem2ChunkIdx(Vec.java:504) at water.fvec.Frame$Slice.map(Frame.java:773) at water.MRTask2.compute2(MRTask2.java:391) at water.H2O$H2OCountedCompleter.compute(H2O.java:732) at jsr166y.CountedCompleter.exec(CountedCompleter.java:429) at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263) at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974) at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477) at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
    No Bugmate found.