-
-
Notifications
You must be signed in to change notification settings - Fork 645
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
Use forked version of grpcio #6344
Use forked version of grpcio #6344
Conversation
This includes tikv/grpc-rs#211 which stops us seeing RpcFinished errors when the server responds very quickly to requests. Unfortunately, this will slow down building pants, as you'll need to checkout the git repository, but that should be a once-per-machine cost.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks.
src/rust/engine/fs/Cargo.toml
Outdated
@@ -13,7 +13,7 @@ digest = "0.6.2" | |||
futures = "^0.1.16" | |||
futures-cpupool = "0.1" | |||
glob = "0.2.11" | |||
grpcio = { version = "0.3", features = ["secure"] } | |||
grpcio = { git = "https://github.com/illicitonion/grpc-rs.git", rev = "d106c615bc0c289ba6d1ce6871786266d109c31c", features = ["secure"] } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comments indicating why we're forked would be good, but I guess not strictly necessary as long as we're able to look at the merge base.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks!
commit f239399 Author: Eric Arellano <[email protected]> Date: Thu Aug 16 22:34:25 2018 -0700 Remove stray pdb import commit 3babfb9 Author: Eric Arellano <[email protected]> Date: Thu Aug 16 22:23:19 2018 -0700 Add back Py3 tests that now work commit a46b827 Author: Eric Arellano <[email protected]> Date: Thu Aug 16 22:22:52 2018 -0700 Fix backend python issues commit 88fa18a Author: Eric Arellano <[email protected]> Date: Thu Aug 16 20:08:42 2018 -0700 Fix backend project_info issues commit f4d4a2d Author: Eric Arellano <[email protected]> Date: Thu Aug 16 19:54:39 2018 -0700 Actually fix console separator issues commit d0c83aa Author: Eric Arellano <[email protected]> Date: Thu Aug 16 19:38:39 2018 -0700 Fix issues with backend native commit 9a1b3b7 Author: Eric Arellano <[email protected]> Date: Thu Aug 16 19:33:48 2018 -0700 Fix most issues with backend jvm commit 62bc2a4 Author: Eric Arellano <[email protected]> Date: Thu Aug 16 14:47:42 2018 -0700 Fix logging issue with passing object to format() commit a4bf759 Author: Eric Arellano <[email protected]> Date: Thu Aug 16 08:05:07 2018 -0700 Decode test's execute_task() output commit b81cd24 Author: Eric Arellano <[email protected]> Date: Thu Aug 16 08:03:57 2018 -0700 Fix issues with backend graph_info commit 5d28b9a Author: Eric Arellano <[email protected]> Date: Sun Aug 12 23:13:06 2018 -0700 Fix console_task's console_separator unicode issues commit a8674f9 Author: Eric Arellano <[email protected]> Date: Sun Aug 12 22:48:42 2018 -0700 Fix backend codegen unicode vs bytes issues commit c893f8c Author: Eric Arellano <[email protected]> Date: Sun Aug 12 22:47:04 2018 -0700 Return unicode from stdout in pants integration test commit f4ab07c Author: Benjy Weinberger <[email protected]> Date: Thu Aug 16 19:43:41 2018 -0600 Make requirements on codegen products optional. (pantsbuild#6357) We declare product requirements in various places to force codegen to run before, e.g., dependency resolution. However currently these requirements are mandatory, so deregistering all codegen backends will cause the round engine to find no producers of these products, and fail. This commit changes these requirements to optional, so that if there are no codegen backends, we don't attempt to depend on their products. Also, minor unrelated documentation nits that weren't worth a separate pull request. commit b0a2469 Author: Eric Arellano <[email protected]> Date: Thu Aug 16 12:08:29 2018 -0700 Python 3 - fixes to get green contrib (pantsbuild#6340) All contrib folders should now be green on Python 2 and Python 3, excluding `googlejavaformat` and `python`. This fixes multiple issues causing Py3 failures + adds Py3 to Travis. commit 070a5c5 Author: Daniel Wagner-Hall <[email protected]> Date: Wed Aug 15 19:30:15 2018 -0700 Run clippy with nightly rust on CI (pantsbuild#6347) This enables all default lints, and a selection of pedantic ones. It also fixes all code to be clean with respect to those lints. Each commit is independently reviewable. It's a shame that the lint selecting can't be shared across creates in some way. commit 8ce6297 Author: Daniel Wagner-Hall <[email protected]> Date: Tue Aug 14 20:04:02 2018 -0700 Use --entry-point not -c when building pex (pantsbuild#6349) I deterministically get this error: RuntimeError: Ambiguous script specification pants matches multiple entry points:pants = pants.bin.pants_loader:main pants = pants.bin.pants_loader:main when building with -c. pantsbuild#6267 changed this behaviour, but seems broken - this commit allows me to successfully build pexes. commit 30878d8 Author: Daniel Wagner-Hall <[email protected]> Date: Tue Aug 14 19:11:19 2018 -0700 Fix formatting of store.rs (pantsbuild#6350) It looks like pantsbuild#6336 merged with bad formatting. commit 5f2ad63 Author: Daniel Wagner-Hall <[email protected]> Date: Tue Aug 14 18:40:32 2018 -0700 Allow pex download path to be overridden (pantsbuild#6348) commit b7c607f Author: Stu Hood <[email protected]> Date: Tue Aug 14 17:40:34 2018 -0700 Recover from cancelled remote execution RPCs (pantsbuild#6188) ### Problem It's possible for an individual RPC to be cancelled while an entire Operation continues, but this is not currently handled. See the problem description on pantsbuild#6100. ### Solution Recover from `RpcStatus::Cancelled` by retrying the same operation. ### Result Without the Fixes pantsbuild#6100. commit a96001e Author: Ity Kaul <[email protected]> Date: Tue Aug 14 16:19:31 2018 -0700 Download Directory recursively from remote CAS (pantsbuild#6336) ### Problem We dont currently have the ability to download a `Directory`, and its contents, recursively. ### Solution Add `ensure_local_has_recursive_directory()` to be able to download a `Directory`, and its contents, recursively. commit e391cd1 Author: Daniel Wagner-Hall <[email protected]> Date: Tue Aug 14 16:11:22 2018 -0700 Process execution: Create symlink to JDK on demand (pantsbuild#6346) This creates a symlink `.jdk` pointing at the passed JDK, if one was passed. This is a hack to allow for a remote execution platform to provide a pointer at its pre-installed JDK without needing to pollute absolute paths into the action definition. Long-term, we want the JDK to be part of the input directory for the action, but that's a lot of work, and we want to experiment with pre-installed JDKs in the mean time. commit d79b7c3 Author: Daniel Wagner-Hall <[email protected]> Date: Mon Aug 13 21:26:08 2018 -0700 Simplify ExecuteProcessRequest construction (pantsbuild#6345) Remove create_from_snapshot and create_with_empty_snapshot - they don't pull their weight. Allow default values for all defaultable values. commit 33674ce Author: Daniel Wagner-Hall <[email protected]> Date: Mon Aug 13 18:57:20 2018 -0700 Use forked version of grpcio (pantsbuild#6344) This includes tikv/grpc-rs#211 which stops us seeing RpcFinished errors when the server responds very quickly to requests. Unfortunately, this will slow down building pants, as you'll need to checkout the git repository, but that should be a once-per-machine cost. commit ccdf523 Author: Daniel Wagner-Hall <[email protected]> Date: Mon Aug 13 18:36:28 2018 -0700 ci.sh uses positive rather than negative flags (pantsbuild#6342) This makes it much easier to reason about what's happening, and keeps .travis.yml more concise. commit 68f4b59 Author: Daniel Wagner-Hall <[email protected]> Date: Mon Aug 13 16:12:44 2018 -0700 Merge directories with identical files (pantsbuild#6343) This is useful for merging Snapshots for Targets if multiple targets own the same file. This should be rare, but does happen (e.g. multiple overlapping resource targets). commit e189acd Author: Daniel Wagner-Hall <[email protected]> Date: Mon Aug 13 09:50:23 2018 -0700 Set chunk size in process_executor (pantsbuild#6337) commit 20d267f Author: Paul <[email protected]> Date: Sun Aug 12 14:41:26 2018 -0700 added fullpath to fix path concat issue with files when not in git root (pantsbuild#6331) ### Problem As described in pantsbuild#6301 , when the git root and the build root is not the same, `changed` functionalities can be messed up because `git` returns path relative to the working directory, which produces bad paths when it is [concatenated with the git root](https://github.com/pantsbuild/pants/blob/c9f3af460a7504e082931a4b5a668b66f0cd4ed0/src/python/pants/scm/git.py#L161). ### Solution By adding the `--full-name` tag to [`git ls-files`](https://github.com/pantsbuild/pants/blob/c9f3af460a7504e082931a4b5a668b66f0cd4ed0/src/python/pants/scm/git.py#L178), the file concatenation is done properly ### Result Doing `./pants list --changed...` will concatenate file names correctly when it is not run from the git root.
This reverts commit 33674ce.
This reverts commit 33674ce.
This includes tikv/grpc-rs#211 which stops us seeing RpcFinished errors when the server responds very quickly to requests. Unfortunately, this will slow down building pants, as you'll need to checkout the git repository, but that should be a once-per-machine cost.
…ted early (#7422) ### Problem When using remotely executed scala compiles by setting `--execution-strategy=hermetic` with zinc compiles and pointing the `--remote-execution-server` and `--remote-store-server`s at an internal instance of https://github.com/twitter/scoot to compile scala in https://github.com/twitter/util, we are seeing some [`RpcFinished(None)` errors](https://docs.rs/grpcio/0.4.2/grpcio/enum.Error.html) causing upload digest requests to fail after a few retries. In #6344 we see a case of a spurious `RpcFinished(None)` which caused us to fork grpcio. We believe this is similarly a spurious failure caused by a non-erroneous race condition, as in logs from Scoot we are seeing that the digests reporting a failure have successfully been uploaded to the remote store. In testing, we have found that this occurs with files which are large and are used by multiple process requests (e.g. `scala-reflect.jar` in zinc compilations). We believe the `RpcFinished(None)` we are converting into an `Ok(None)` here occurs when pants has multiple concurrent write requests against the remote store, and the remote store cancels the others after it successfully receives the first write request. ### Solution - Pass through an [`RpcFinished(None)`](https://docs.rs/grpcio/0.4.2/grpcio/enum.Error.html) in `store.rs`. ### Result Pants no longer considers it a failure to receive an `RpcFinished(None)` response. The discussion is ongoing as to whether this should be an accepted part of the remote execution API at https://groups.google.com/forum/#!topic/remote-execution-apis/NXUe3ItCw68/discussion.
…ted early (#7422) ### Problem When using remotely executed scala compiles by setting `--execution-strategy=hermetic` with zinc compiles and pointing the `--remote-execution-server` and `--remote-store-server`s at an internal instance of https://github.com/twitter/scoot to compile scala in https://github.com/twitter/util, we are seeing some [`RpcFinished(None)` errors](https://docs.rs/grpcio/0.4.2/grpcio/enum.Error.html) causing upload digest requests to fail after a few retries. In #6344 we see a case of a spurious `RpcFinished(None)` which caused us to fork grpcio. We believe this is similarly a spurious failure caused by a non-erroneous race condition, as in logs from Scoot we are seeing that the digests reporting a failure have successfully been uploaded to the remote store. In testing, we have found that this occurs with files which are large and are used by multiple process requests (e.g. `scala-reflect.jar` in zinc compilations). We believe the `RpcFinished(None)` we are converting into an `Ok(None)` here occurs when pants has multiple concurrent write requests against the remote store, and the remote store cancels the others after it successfully receives the first write request. ### Solution - Pass through an [`RpcFinished(None)`](https://docs.rs/grpcio/0.4.2/grpcio/enum.Error.html) in `store.rs`. ### Result Pants no longer considers it a failure to receive an `RpcFinished(None)` response. The discussion is ongoing as to whether this should be an accepted part of the remote execution API at https://groups.google.com/forum/#!topic/remote-execution-apis/NXUe3ItCw68/discussion.
This includes tikv/grpc-rs#211 which stops us
seeing RpcFinished errors when the server responds very quickly to
requests.
Unfortunately, this will slow down building pants, as you'll need to
checkout the git repository, but that should be a once-per-machine cost.