google / google/protobuf-gradle-plugin

extractIncludeProto deadlocks

Open
#767 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Groovy
Stars
1.8k
Forks
288
PR merge metrics
No merged PRs in 30d

Description

We are encountering consistent build timeouts in CI related to what appears to be deadlock during parallel execution of the `extractIncludeProto` task. We've cleaned up our usage of the plugin as a result of the errors but we're still seeing a relatively high rate of failures (15%).

Here are the relevant plugin configuration portions from our convention:

```
plugins {
id("com.google.protobuf")
}

protobuf {
protoc {
val protobufVersion = extensionLibs.findLibrary("google.protobuf").orElseThrow().get().version
artifact = "com.google.protobuf:protoc:${protobufVersion}"
}
plugins {
id("grpc") {
val grpcVersion = extensionLibs.findLibrary("grpc.protobuf").orElseThrow().get().version
artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}"
}
}
generateProtoTasks {
all().forEach { task ->
task.builtins {
id("python") { }
}
task.plugins {

id("grpc") {
outputSubDir = "java"
}
}
}
}
}
```

We have 3 projects that appear to get stuck in every build failure (timeout due to no progress):

```
> Task :hummingbird:interfaces:dmz:customer:extractIncludeProto
> Task :hummingbird:interfaces:dmz:quoting:extractIncludeProto
> Task :hummingbird:interfaces:dmz:user:extractIncludeProto
```

Two of the projects do not include any external protos but one does include common google types (`timestamp`, `date`, `money`, etc). There are no dependencies between these projects - each should build independently of the others.

Any insight on what could be happening here and steps to remedy?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.