group_by raises "Operation not allowed on string vector"

Description

```r
library(h2o)
h2o.init()

#H2O cluster version: 3.30.0.3
df = data.frame(id1 = c("id046", "id041"), id2 = c("id007", "id026"), id3 = c("id0000043878", "id0000068300"), id4 = c(51L, 12L), id5 = c(10L, 58L), id6 = c(59276L, 78315L), v1 = c(1L, 4L), v2 = c(1L, 1L), v3 = c(96.8126, 83.5654), stringsAsFactors=FALSE)
hf = as.h2o(df)
ans = h2o.group_by(hf, by="id1", sum("v1"))
ans
```
```
ERROR: Unexpected HTTP Status code: 500 Server Error (url = http://localhost:54321/99/Rapids)

water.util.DistributedException
[1] "DistributedException from localhost/127.0.0.1:54321: 'Operation not allowed on string vector.', caused by java.lang.IllegalArgumentException: Operation not allowed on string vector."
[2] " water.MRTask.getResult(MRTask.java:494)"
[3] " water.MRTask.getResult(MRTask.java:502)"
[4] " water.MRTask.doAll(MRTask.java:397)"
[5] " water.MRTask.doAll(MRTask.java:392)"
[6] " water.rapids.ast.prims.mungers.AstGroup.doGroups(AstGroup.java:453)"
[7] " water.rapids.ast.prims.mungers.AstGroup.performGroupingWithAggregations(AstGroup.java:292)"
[8] " water.rapids.ast.prims.mungers.AstGroup.apply(AstGroup.java:287)"
[9] " water.rapids.ast.prims.mungers.AstGroup.apply(AstGroup.java:35)"
[10] " water.rapids.ast.AstExec.exec(AstExec.java:63)"
[11] " water.rapids.ast.prims.assign.AstTmpAssign.apply(AstTmpAssign.java:48)"
[12] " water.rapids.ast.prims.assign.AstTmpAssign.apply(AstTmpAssign.java:17)"
[13] " water.rapids.ast.AstExec.exec(AstExec.java:63)"
[14] " water.rapids.Session.exec(Session.java:85)"
[15] " water.rapids.Rapids.exec(Rapids.java:94)"
[16] " water.api.RapidsHandler.exec(RapidsHandler.java:38)"
[17] " sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)"
[18] " sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)"
[19] " sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)"
[20] " java.lang.reflect.Method.invoke(Method.java:498)"
[21] " water.api.Handler.handle(Handler.java:60)"
[22] " water.api.RequestServer.serve(RequestServer.java:470)"
[23] " water.api.RequestServer.doGeneric(RequestServer.java:301)"
[24] " water.api.RequestServer.doPost(RequestServer.java:227)"
[25] " javax.servlet.http.HttpServlet.service(HttpServlet.java:755)"
[26] " javax.servlet.http.HttpServlet.service(HttpServlet.java:848)"
[27] " org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)"
[28] " org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)"
[29] " org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)"
[30] " org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:427)"
[31] " org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)"
[32] " org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)"
[33] " org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)"
[34] " org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)"
[35] " water.webserver.jetty8.Jetty8ServerAdapter$LoginHandler.handle(Jetty8ServerAdapter.java:119)"
[36] " org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)"
[37] " org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)"
[38] " org.eclipse.jetty.server.Server.handle(Server.java:370)"
[39] " org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)"
[40] " org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)"
[41] " org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:984)"
[42] " org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1045)"
[43] " org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)"
[44] " org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:236)"
[45] " org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)"
[46] " org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)"
[47] " org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)"
[48] " org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)"
[49] " java.lang.Thread.run(Thread.java:748)"
[50] "Caused by:java.lang.IllegalArgumentException: Operation not allowed on string vector."
[51] " water.fvec.CStrChunk.atd_impl(CStrChunk.java:90)"
[52] " water.fvec.Chunk.atd(Chunk.java:260)"
[53] " water.rapids.ast.prims.mungers.AstGroup$G.fill(AstGroup.java:764)"
[54] " water.rapids.ast.prims.mungers.AstGroup$GBTaskAggsPerNode.map(AstGroup.java:571)"
[55] " water.MRTask.compute2(MRTask.java:658)"
[56] " water.H2O$H2OCountedCompleter.compute1(H2O.java:1560)"
[57] " water.rapids.ast.prims.mungers.AstGroup$GBTaskAggsPerNode$Icer.compute1(AstGroup$GBTaskAggsPerNode$Icer.java)"
[58] " water.H2O$H2OCountedCompleter.compute(H2O.java:1556)"
[59] " jsr166y.CountedCompleter.exec(CountedCompleter.java:468)"
[60] " jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263)"
[61] " jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974)"
[62] " jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477)"
[63] " jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)"
Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page, :
ERROR MESSAGE:
DistributedException from localhost/127.0.0.1:54321: 'Operation not allowed on string vector.'
```

Assignee

New H2O Bugs

Fix versions

None

Reporter

Jan Gorecki

Support ticket URL

None

Labels

None

Affected Spark version

None

Customer Request Type

None

Task progress

None

CustomerVisible

No

Priority

Major
Configure