You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by ju...@apache.org on 2022/07/10 18:53:33 UTC

[buildstream] branch juerg/grpc updated (c6ce35d54 -> 269b4912d)

This is an automated email from the ASF dual-hosted git repository.

juergbi pushed a change to branch juerg/grpc
in repository https://gitbox.apache.org/repos/asf/buildstream.git


 discard c6ce35d54 tox.ini: Set GRPC_ENABLE_FORK_SUPPORT=0
     add 98b58e72c _platform: add RISC-V to the list of supported platforms
     add 0fdbd7a6f Merge pull request #1670 from apache/abderrahim/riscv
     add eaa800149 _messenger.py: Record the date and buildstream version in every log
     add fbf02317b Merge pull request #1672 from apache/tristan/log-bst-version
     add 496856557 _protos: Update protos from remote-apis
     add b29c6a48e _sandboxreapi.py: Use `output_paths` (REAPI v2.1)
     add e994a75b3 _sandboxreapi.py: Set `platform` in `Action` message (REAPI v2.2)
     add 5710882ab Merge pull request #1676 from apache/juerg/reapi-2.2
     add ab5b1d1e3 buildelement.py: Don't mark layout locations as read-write directories
     add 0dafa5a4e scriptelement.py: Don't mark layout locations as read-write directories
     add 7b1c66462 Merge pull request #1678 from apache/juerg/layout-directories
     new 269b4912d setup.py, setup.cfg: Disable gRPC fork support

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (c6ce35d54)
            \
             N -- N -- N   refs/heads/juerg/grpc (269b4912d)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 setup.cfg                                          |   1 +
 setup.py                                           |   2 +
 src/buildstream/_cas/casserver.py                  |   2 +-
 src/buildstream/_messenger.py                      |  12 +
 src/buildstream/_platform/platform.py              |   4 +
 .../build/bazel/remote/asset/v1/remote_asset.proto |   4 +-
 .../bazel/remote/asset/v1/remote_asset_pb2.py      |   4 +-
 .../bazel/remote/asset/v1/remote_asset_pb2_grpc.py |   2 +-
 .../remote/execution/v2/remote_execution.proto     | 334 +++++++++++++++---
 .../remote/execution/v2/remote_execution_pb2.py    | 250 ++++++-------
 .../execution/v2/remote_execution_pb2_grpc.py      | 387 +++++++++++++++------
 src/buildstream/buildelement.py                    |   4 -
 src/buildstream/sandbox/_sandboxreapi.py           |  31 +-
 src/buildstream/scriptelement.py                   |   4 -
 tox.ini                                            |   1 -
 15 files changed, 749 insertions(+), 293 deletions(-)


[buildstream] 01/01: setup.py, setup.cfg: Disable gRPC fork support

Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

juergbi pushed a commit to branch juerg/grpc
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit 269b4912dfe76dbd621181dd199a3601a0093a41
Author: Jürg Billeter <j...@bitron.ch>
AuthorDate: Sun Jul 10 20:43:25 2022 +0200

    setup.py, setup.cfg: Disable gRPC fork support
    
    gRPC fork support is not compatible with the default polling engine on
    modern Linux systems (epollex) and it also does not work if another
    thread is calling into gRPC.
    
    As BuildStream, after gRPC initialization, uses `fork()` only to
    `exec()` subprocesses, the gRPC fork support (`atfork` handler) is not
    needed. Setting `GRPC_ENABLE_FORK_SUPPORT=0` disables gRPC fork support,
    fixing Python segmentation faults and error messages caused by the
    `atfork` handler.
    
    https://github.com/grpc/grpc/issues/29044
---
 setup.cfg | 1 +
 setup.py  | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/setup.cfg b/setup.cfg
index 283d78099..aea4bdcc8 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -13,6 +13,7 @@ norecursedirs = src tests/integration/project tests/plugins/loading tests/plugin
 python_files = tests/*/*.py
 env =
     D:BST_TEST_SUITE=True
+    D:GRPC_ENABLE_FORK_SUPPORT=0
 
 markers =
     datafiles: data files for tests
diff --git a/setup.py b/setup.py
index 61abd1e9e..5c09fbc91 100755
--- a/setup.py
+++ b/setup.py
@@ -114,11 +114,13 @@ def list_testing_datafiles():
 # which we believe was also inspired from the code from `setuptools` project.
 TEMPLATE = """\
 # -*- coding: utf-8 -*-
+import os
 import sys
 
 from {0} import {1}
 
 if __name__ == '__main__':
+    os.environ['GRPC_ENABLE_FORK_SUPPORT'] = '0'
     sys.exit({2}())"""