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

Server watchOperation NPE #165

Closed
pcj opened this issue Jun 20, 2018 · 0 comments
Closed

Server watchOperation NPE #165

pcj opened this issue Jun 20, 2018 · 0 comments

Comments

@pcj
Copy link
Member

pcj commented Jun 20, 2018

Have not had time to investigate deeply but have observed this near the end of a build.

Jun 20, 2018 4:39:08 AM io.grpc.internal.SerializingExecutor run
SEVERE: Exception while executing runnable io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed@357c5d0
java.lang.NullPointerException
	at build.buildfarm.instance.memory.MemoryInstance.watchOperation(MemoryInstance.java:347)
	at build.buildfarm.server.WatcherService.watch(WatcherService.java:69)
	at com.google.watcher.v1.WatcherGrpc$MethodHandlers.invoke(WatcherGrpc.java:237)
	at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:171)
	at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:33)
	at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23)
	at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40)
	at io.grpc.util.TransmitStatusRuntimeExceptionInterceptor$1.onHalfClose(TransmitStatusRuntimeExceptionInterceptor.java:74)
	at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:271)
	at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:648)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

werkt added a commit to werkt/bazel-buildfarm that referenced this issue Jun 24, 2018
Protect watchOperation against missing operation requests, watchers
which ignore operation state, and races to operation completions or
expirations. Define watchOperation interface behavior and expectations
for watchers:

watchers will return true if they expect further tests, and false if no
subsequent tests should occur.
watchOperation will return true if the watcher will be tested for all
updates, and false otherwise or if the watcher responds with true in the
terminal cases of missing or done operations.

Fixes bazelbuild#165
werkt added a commit to werkt/bazel-buildfarm that referenced this issue Aug 19, 2018
Protect watchOperation against missing operation requests, watchers
which ignore operation state, and races to operation completions or
expirations. Define watchOperation interface behavior and expectations
for watchers:

watchers will return true if they expect further tests, and false if no
subsequent tests should occur.
watchOperation will return true if the watcher will be tested for all
updates, and false otherwise or if the watcher responds with true in the
terminal cases of missing or done operations.

Fixes bazelbuild#165
werkt added a commit that referenced this issue Aug 19, 2018
Protect watchOperation against missing operation requests, watchers
which ignore operation state, and races to operation completions or
expirations. Define watchOperation interface behavior and expectations
for watchers:

watchers will return true if they expect further tests, and false if no
subsequent tests should occur.
watchOperation will return true if the watcher will be tested for all
updates, and false otherwise or if the watcher responds with true in the
terminal cases of missing or done operations.

Fixes #165
werkt added a commit to werkt/bazel-buildfarm that referenced this issue Nov 5, 2018
Protect watchOperation against missing operation requests, watchers
which ignore operation state, and races to operation completions or
expirations. Define watchOperation interface behavior and expectations
for watchers:

watchers will return true if they expect further tests, and false if no
subsequent tests should occur.
watchOperation will return true if the watcher will be tested for all
updates, and false otherwise or if the watcher responds with true in the
terminal cases of missing or done operations.

Fixes bazelbuild#165
werkt added a commit to werkt/bazel-buildfarm that referenced this issue Nov 6, 2018
Protect watchOperation against missing operation requests, watchers
which ignore operation state, and races to operation completions or
expirations. Define watchOperation interface behavior and expectations
for watchers:

watchers will return true if they expect further tests, and false if no
subsequent tests should occur.
watchOperation will return true if the watcher will be tested for all
updates, and false otherwise or if the watcher responds with true in the
terminal cases of missing or done operations.

Fixes bazelbuild#165
werkt added a commit to werkt/bazel-buildfarm that referenced this issue Sep 24, 2019
Protect watchOperation against missing operation requests, watchers
which ignore operation state, and races to operation completions or
expirations. Define watchOperation interface behavior and expectations
for watchers:

watchers will return true if they expect further tests, and false if no
subsequent tests should occur.
watchOperation will return true if the watcher will be tested for all
updates, and false otherwise or if the watcher responds with true in the
terminal cases of missing or done operations.

Fixes bazelbuild#165
werkt added a commit to werkt/bazel-buildfarm that referenced this issue Sep 24, 2019
Protect watchOperation against missing operation requests, watchers
which ignore operation state, and races to operation completions or
expirations. Define watchOperation interface behavior and expectations
for watchers:

watchers will return true if they expect further tests, and false if no
subsequent tests should occur.
watchOperation will return true if the watcher will be tested for all
updates, and false otherwise or if the watcher responds with true in the
terminal cases of missing or done operations.

Fixes bazelbuild#165
werkt added a commit to werkt/bazel-buildfarm that referenced this issue Mar 30, 2020
Protect watchOperation against missing operation requests, watchers
which ignore operation state, and races to operation completions or
expirations. Define watchOperation interface behavior and expectations
for watchers:

watchers will return true if they expect further tests, and false if no
subsequent tests should occur.
watchOperation will return true if the watcher will be tested for all
updates, and false otherwise or if the watcher responds with true in the
terminal cases of missing or done operations.

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

No branches or pull requests

1 participant