Skip to content

[Bug]: NPE on Java SDK harness startup on Dataflow #35126

@Abacn

Description

@Abacn

What happened?

Seen this several times:

org.apache.beam.vendor.grpc.v1p69p0.io.grpc.StatusRuntimeException: CANCELLED: Failed to read message.
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.Status.asRuntimeException(Status.java:532)
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:481)
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:564)
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:72)
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:729)
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:710)
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException
	at org.apache.beam.fn.harness.status.BeamFnStatusClient.getMemoryUsage(BeamFnStatusClient.java:164)
	at org.apache.beam.fn.harness.status.BeamFnStatusClient$InboundObserver.onNext(BeamFnStatusClient.java:283)
	at org.apache.beam.fn.harness.status.BeamFnStatusClient$InboundObserver.onNext(BeamFnStatusClient.java:279)
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onMessage(ClientCalls.java:468)
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:657)
	at org.apache.beam.vendor.grpc.v1p69p0.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:644)
	... 5 more

It points to here:

it appears memoryMonitor is null. However, it has been setup in constructor. Not sure how this is possible

The error is transient. Happens for some seconds at pipeline start up on worker but the pipeline can evantually run

Issue Priority

Priority: 2 (default / most bugs should be filed as P2)

Issue Components

  • Component: Python SDK
  • Component: Java SDK
  • Component: Go SDK
  • Component: Typescript SDK
  • Component: IO connector
  • Component: Beam YAML
  • Component: Beam examples
  • Component: Beam playground
  • Component: Beam katas
  • Component: Website
  • Component: Infrastructure
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Samza Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions