gRPC message exceeds maximum size in local environment
- Dominant language
- Java
- Stars
- 808
- Forks
- 188
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 2
Description
**Describe the bug**
I wrote a simple application with Graph API and it failed to run on a relatively large amount of vertices in local environment.
logs:
```
2023-10-09 14:32:38 [main] INFO EnvironmentFactory:106 - loaded IEnvironmentArgsParser implementation com.antgroup.geaflow.env.args.EnvironmentArgumentParser@63e31ee
2023-10-09 14:32:38 [main] INFO EnvironmentFactory:86 - loaded IEnvironment implementation com.antgroup.geaflow.cluster.local.client.LocalEnvironment@21a06946
2023-10-09 14:32:38 [main] WARN MetricGroupRegistry:90 - report list is empty
2023-10-09 14:32:38 [main] WARN HAServiceFactory:55 - unknown ha service type:memory, use default memoryHaService
2023-10-09 14:32:38 [main] INFO ClusterMetaStoreFactory:55 - create memory cluster metastore
2023-10-09 14:32:38 [main] INFO ClusterMetaStore:50 - create ClusterMetaStore, store key framework/cluster/b834e281-64f3-447e-ba3a-e59a5ac7f48d, id 0
2023-10-09 14:32:38 [main] INFO RpcServiceImpl:58 - Server started, listening on: 33913
2023-10-09 14:32:38 [main] INFO DefaultResourceManager:83 - init worker number 16, isRecover false
2023-10-09 14:32:38 [main] INFO AbstractClusterManager:91 - allocate 16 workers in 1 containers[16]
2023-10-09 14:32:38 [main] INFO RpcServiceImpl:58 - Server started, listening on: 33357
2023-10-09 14:32:38 [main] INFO ShuffleConfig:80 - init shuffle config: Configuration{{geaflow.container.heap.size.mb=3276, geaflow.system.state.backend.type=MEMORY, geaflow.job.cluster.id=b834e281-64f3-447e-ba3a-e59a5ac7f48d, geaflow.run.local.mode=true, geaflow.system.offset.backend.type=MEMORY, geaflow.job.unique.id=a666e9bb-809c-4e1e-a84a-7caa6464a72e, geaflow.job.runtime.name=geaflowa666e9bb-809c-4e1e-a84a-7caa6464a72e}}
2023-10-09 14:32:38 [main] INFO NettyClient:65 - Transport type 'auto': using NIO.
2023-10-09 14:32:38 [main] INFO NettyUtils:56 - create a PooledByteBufAllocator: preferDirect=true, allowCache=true
2023-10-09 14:32:38 [main] INFO NettyClient:101 - Successful initialization (took 3 ms).
2023-10-09 14:32:38 [main] INFO NettyUtils:56 - create a PooledByteBufAllocator: preferDirect=true, allowCache=true
2023-10-09 14:32:38 [main] INFO NettyServer:113 - Successful initialization (took 3 ms). Listening on /172.17.0.2:37929. NettyConfig: ShuffleConfig{, connectTimeoutMs=180000, fetchTimeoutMs=600000, serverBacklog=512, serverThreads=4, clientThreads=4, maxSpillSizePerSliceMB=1536}
2023-10-09 14:32:38 [main] INFO HeartbeatClient:47 - register container-1 info:ContainerInfo{id=1, name='container-1', host='172.17.0.2', pid=1299, rpcPort=33357, shufflePort=37929}
2023-10-09 14:32:38 [main] INFO Container:65 - container container-1 init finish
2023-10-09 14:32:38 [main] INFO DefaultResourceManager:90 - init worker manager finish
2023-10-09 14:32:38 [main] INFO LocalClient:38 - init master
2023-10-09 14:32:38 [main] INFO RpcServiceImpl:58 - Server started, listening on: 45101
2023-10-09 14:32:38 [main] INFO HeartbeatClient:47 - register driver-2 info:DriverInfo{id=2, name='driver-2', host='172.17.0.2', pid=1299, rpcPort=45101}
2023-10-09 14:32:38 [main] INFO Driver:82 - driver driver-2 init finish
2023-10-09 14:32:38 [main] INFO LocalClusterManager:73 - call driver start
2023-10-09 14:32:38 [grpc-default-executor-0] INFO AbstractClusterManager:173 - driver is registered:DriverInfo{id=2, name='driver-2', host='172.17.0.2', pid=1299, rpcPort=45101}
2023-10-09 14:32:38 [main] INFO Master:88 - init with info: ClusterInfo{masterAddress=172.17.0.2:33913, driverAddress=172.17.0.2:45101}
2023-10-09 14:32:38 [main] INFO SimpleClusterStartedCallback:25 - start cluster successfully: com.antgroup.geaflow.cluster.client.callback.ClusterStartedCallback$ClusterMeta@9573584
2023-10-09 14:32:38 [main] INFO LocalClusterClient:52 - cluster info: ClusterInfo{masterAddress=172.17.0.2:33913, driverAddress=172.17.0.2:45101}
2023-10-09 14:32:38 [main] INFO DriverEndpointRef:54 - send pipeline to driver, driver host:172.17.0.2, port:45101. com.antgroup.geaflow.pipeline.Pipeline@4f6f416f
2023-10-09 14:32:38 [rpc-executor-0] INFO HeartbeatClient:57 - driver-2 registered success:true
2023-10-09 14:32:38 [rpc-executor-0] INFO HeartbeatClient:69 - start driver-2 heartbeat
2023-10-09 14:32:38 [grpc-default-executor-0] INFO Container:83 - open container container-1 with 16 executors
2023-10-09 14:32:38 [rpc-executor-1] INFO HeartbeatClient:57 - container-1 registered success:true
2023-10-09 14:32:38 [rpc-executor-1] INFO HeartbeatClient:69 - start container-1 heartbeat
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 0, pending 15
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 1, pending 14
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 2, pending 13
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 3, pending 12
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 4, pending 11
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 5, pending 10
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 6, pending 9
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 7, pending 8
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 8, pending 7
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 9, pending 6
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 10, pending 5
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 11, pending 4
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 12, pending 3
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 13, pending 2
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 14, pending 1
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:228 - allocate 16 worker from cluster manager container container-1, host 172.17.0.2, processId 1299, workerIndex 15, pending 0
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:246 - register worker over, available/used : 16/0, pending 0
2023-10-09 14:32:38 [rpc-executor-0] INFO DefaultResourceManager:289 - persist 16/0 workers costs 0ms
Oct 09, 2023 2:32:38 PM io.grpc.netty.NettyServerStream$TransportState deframeFailed
WARNING: Exception processing message
io.grpc.StatusRuntimeException: RESOURCE_EXHAUSTED: gRPC message exceeds maximum size 4194304: 5484045
at io.grpc.Status.asRuntimeException(Status.java:517)
at io.grpc.internal.MessageDeframer.processHeader(MessageDeframer.java:387)
at io.grpc.internal.MessageDeframer.deliver(MessageDeframer.java:267)
at io.grpc.internal.MessageDeframer.deframe(MessageDeframer.java:177)
at io.grpc.internal.AbstractStream$TransportState.deframe(AbstractStream.java:193)
at io.grpc.internal.AbstractServerStream$TransportState.inboundDataReceived(AbstractServerStream.java:266)
at io.grpc.netty.NettyServerStream$TransportState.inboundDataReceived(NettyServerStream.java:198)
at io.grpc.netty.NettyServerHandler.onDataRead(NettyServerHandler.java:464)
at io.grpc.netty.NettyServerHandler.access$800(NettyServerHandler.java:98)
at io.grpc.netty.NettyServerHandler$FrameListener.onDataRead(NettyServerHandler.java:724)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onDataRead(DefaultHttp2ConnectionDecoder.java:236)
at io.netty.handler.codec.http2.Http2InboundFrameLogger$1.onDataRead(Http2InboundFrameLogger.java:48)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readDataFrame(DefaultHttp2FrameReader.java:421)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:251)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:160)
at io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:41)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:118)
at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:390)
at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:450)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:750)
Oct 09, 2023 2:32:38 PM io.grpc.netty.NettyServerHandler onStreamError
WARNING: Stream Error
io.netty.handler.codec.http2.Http2Exception$StreamException: Received DATA frame for an unknown stream 3
at io.netty.handler.codec.http2.Http2Exception.streamError(Http2Exception.java:129)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.shouldIgnoreHeadersOrDataFrame(DefaultHttp2ConnectionDecoder.java:531)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onDataRead(DefaultHttp2ConnectionDecoder.java:183)
at io.netty.handler.codec.http2.Http2InboundFrameLogger$1.onDataRead(Http2InboundFrameLogger.java:48)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readDataFrame(DefaultHttp2FrameReader.java:421)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:251)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:160)
at io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:41)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:118)
at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:390)
at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:450)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:750)
Exception in thread "main" io.grpc.StatusRuntimeException: CANCELLED: HTTP/2 error code: CANCEL
Received Rst Stream
at io.grpc.Status.asRuntimeException(Status.java:526)
at io.grpc.stub.ClientCalls$BlockingResponseStream.hasNext(ClientCalls.java:576)
at com.antgroup.geaflow.cluster.rpc.impl.DriverEndpointRef.executePipeline(DriverEndpointRef.java:61)
at com.antgroup.geaflow.cluster.client.PipelineClient.submit(PipelineClient.java:35)
at com.antgroup.geaflow.cluster.client.GeaFlowClient.submit(GeaFlowClient.java:37)
at com.antgroup.geaflow.cluster.client.AbstractEnvironment.submit(AbstractEnvironment.java:34)
at com.antgroup.geaflow.pipeline.Pipeline.execute(Pipeline.java:74)
at com.github.wzzzzd.tugraph.playground.Main.main(Main.java:40)
Oct 09, 2023 2:32:38 PM io.grpc.netty.NettyServerHandler onStreamError
WARNING: Stream Error
io.netty.handler.codec.http2.Http2Exception$StreamException: Received DATA frame for an unknown stream 3
at io.netty.handler.codec.http2.Http2Exception.streamError(Http2Exception.java:129)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.shouldIgnoreHeadersOrDataFrame(DefaultHttp2ConnectionDecoder.java:531)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onDataRead(DefaultHttp2ConnectionDecoder.java:183)
at io.netty.handler.codec.http2.Http2InboundFrameLogger$1.onDataRead(Http2InboundFrameLogger.java:48)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readDataFrame(DefaultHttp2FrameReader.java:421)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:251)
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:160)
at io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:41)
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:118)
at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:390)
at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:450)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:750)
2023-10-09 14:32:38 [Thread-1] WARN RpcServiceImpl:63 - *** shutting down gRPC server since JVM is shutting down
2023-10-09 14:32:38 [Thread-3] WARN RpcServiceImpl:63 - *** shutting down gRPC server since JVM is shutting down
2023-10-09 14:32:38 [Thread-2] WARN RpcServiceImpl:63 - *** shutting down gRPC server since JVM is shutting down
2023-10-09 14:32:38 [Thread-1] WARN RpcServiceImpl:65 - *** server shut down
2023-10-09 14:32:38 [Thread-2] WARN RpcServiceImpl:65 - *** server shut down
2023-10-09 14:32:38 [Thread-3] WARN RpcServiceImpl:65 - *** server shut down
[ERROR] Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404)
at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:166)
at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:1000)
at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:947)
at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:471)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
```
**Expected behavior**
The application should run without throwing any exceptions.
**Additional context**
application code
```java
public class Main {
public static void main(String[] args) {
Environment environment = EnvironmentFactory.onLocalEnvironment();
Pipeline pipeline = PipelineFactory.buildPipeline(environment);
List> vertices = IntStream
.range(0, 500000)
.boxed()
.map(n -> new ValueVertex(n, n))
.collect(Collectors.toList());
List> edges = new ArrayList<>();
PipelineTask pipelineTask = buildPipelineTask(vertices, edges);
pipeline.submit(pipelineTask);
IPipelineResult result = pipeline.execute();
if (!result.isSuccess()) {
throw new RuntimeException("pipeline task failed");
}
result.get();
environment.shutdown();
}
static PipelineTask buildPipelineTask(
List> vertices,
List> edges) {
return pipelineTask -> {
PWindowSource> vertexSource = pipelineTask
.buildSource(new CollectionSource<>(vertices), WindowFactory.allWindow())
.withParallelism(1);
PWindowSource> edgeSource = pipelineTask
.buildSource(new CollectionSource<>(edges), WindowFactory.allWindow())
.withParallelism(1);
GraphViewDesc graphViewDesc = GraphViewBuilder
.createGraphView(GraphViewBuilder.DEFAULT_GRAPH)
.withShardNum(1)
.withBackend(BackendType.Memory)
.build();
PGraphWindow graphWindow = pipelineTask
.buildWindowStreamGraph(vertexSource, edgeSource, graphViewDesc);
SinkFunction> vertexSink = vertex -> {
System.out.println(vertex.toString());
};
graphWindow
.getVertices()
.filter(v -> v.getId() % 10000 == 0)
.sink(vertexSink)
.withParallelism(1);
};
}
}
```
Contributor guide
Research direction
Start by reproducing the Graph API application in local mode with a graph large enough to trigger the reported RESOURCE_EXHAUSTED error, then trace the gRPC server and client configuration involved in that request. Done means the same workload completes without exceeding the 4194304-byte message limit, with coverage for the relevant local RPC path if an existing test entry point is found.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, java
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100