Skip to content

Commit c2f2a67

Browse files
committed
reserve some time for grpc_init
1 parent 12f5511 commit c2f2a67

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

recipe/patches/0017-break-out-init-for-grpc-abseil-logging-into-separate.patch

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
From ffbb901ece5e2117ceb4a4193c5eb4728b654050 Mon Sep 17 00:00:00 2001
1+
From a1154449e1c42fb324c0c00a37c8007ab682365a Mon Sep 17 00:00:00 2001
22
From: "H. Vetinari" <h.vetinari@gmx.com>
33
Date: Sat, 21 Feb 2026 14:29:28 +1100
44
Subject: [PATCH 17/17] break out init for grpc & abseil logging into separate
55
cython module
66

77
---
8-
setup.py | 3 ++-
9-
src/python/grpcio/grpc/__init__.py | 3 +++
10-
src/python/grpcio/grpc/_cython/cygrpc.pxd | 2 --
11-
src/python/grpcio/grpc/_cython/cygrpc.pyx | 1 -
12-
.../{_cygrpc/absl.pxd.pxi => cygrpc_static_init.pxd} | 3 +++
13-
.../{_cygrpc/absl.pyx.pxi => cygrpc_static_init.pyx} | 10 ++++++++++
14-
6 files changed, 18 insertions(+), 4 deletions(-)
15-
rename src/python/grpcio/grpc/_cython/{_cygrpc/absl.pxd.pxi => cygrpc_static_init.pxd} (92%)
16-
rename src/python/grpcio/grpc/_cython/{_cygrpc/absl.pyx.pxi => cygrpc_static_init.pyx} (76%)
8+
setup.py | 3 ++-
9+
src/python/grpcio/grpc/__init__.py | 3 +++
10+
src/python/grpcio/grpc/_cython/cygrpc.pxd | 2 --
11+
src/python/grpcio/grpc/_cython/cygrpc.pyx | 1 -
12+
.../absl.pxd.pxi => cygrpc_static_init.pxd} | 4 ++++
13+
.../absl.pyx.pxi => cygrpc_static_init.pyx} | 18 ++++++++++++++++++
14+
6 files changed, 27 insertions(+), 4 deletions(-)
15+
rename src/python/grpcio/grpc/_cython/{_cygrpc/absl.pxd.pxi => cygrpc_static_init.pxd} (88%)
16+
rename src/python/grpcio/grpc/_cython/{_cygrpc/absl.pyx.pxi => cygrpc_static_init.pyx} (64%)
1717

1818
diff --git a/setup.py b/setup.py
1919
index 33734daf7b..a8c58eae93 100644
@@ -76,38 +76,40 @@ index 64e7c12b9a..cb0113e574 100644
7676
include "_cygrpc/call.pyx.pxi"
7777
include "_cygrpc/channel.pyx.pxi"
7878
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/absl.pxd.pxi b/src/python/grpcio/grpc/_cython/cygrpc_static_init.pxd
79-
similarity index 92%
79+
similarity index 88%
8080
rename from src/python/grpcio/grpc/_cython/_cygrpc/absl.pxd.pxi
8181
rename to src/python/grpcio/grpc/_cython/cygrpc_static_init.pxd
82-
index 867d27df22..4e0c7f77f5 100644
82+
index 867d27df22..9d4c83753a 100644
8383
--- a/src/python/grpcio/grpc/_cython/_cygrpc/absl.pxd.pxi
8484
+++ b/src/python/grpcio/grpc/_cython/cygrpc_static_init.pxd
85-
@@ -16,3 +16,6 @@
85+
@@ -16,3 +16,7 @@
8686

8787
cdef extern from "absl/log/initialize.h" namespace "absl":
8888
void InitializeLog() nogil
8989
+
9090
+cdef extern from "grpc/grpc.h":
9191
+ void grpc_init() nogil
92+
+ void grpc_is_initialized() nogil
9293
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/absl.pyx.pxi b/src/python/grpcio/grpc/_cython/cygrpc_static_init.pyx
93-
similarity index 76%
94+
similarity index 64%
9495
rename from src/python/grpcio/grpc/_cython/_cygrpc/absl.pyx.pxi
9596
rename to src/python/grpcio/grpc/_cython/cygrpc_static_init.pyx
96-
index fe60e17c71..dd7e033bf5 100644
97+
index fe60e17c71..424ba8b320 100644
9798
--- a/src/python/grpcio/grpc/_cython/_cygrpc/absl.pyx.pxi
9899
+++ b/src/python/grpcio/grpc/_cython/cygrpc_static_init.pyx
99-
@@ -12,8 +12,10 @@
100+
@@ -12,8 +12,11 @@
100101
# See the License for the specific language governing permissions and
101102
# limitations under the License.
102103

103104
+import os
105+
+import time
104106

105107
cdef bint _disable_absl_init_log = os.environ.get("GRPC_PYTHON_DISABLE_ABSL_INIT_LOG", "") in {"1", "t", "true", "y", "yes"}
106108
+cdef bint _disable_eager_grpc_init = os.environ.get("GRPC_PYTHON_DISABLE_EAGER_GRPC_INIT", "") in {"1", "t", "true", "y", "yes"}
107109

108110
#
109111
# initialize absl
110-
@@ -22,4 +24,12 @@ cdef _initialize_absl():
112+
@@ -22,4 +25,19 @@ cdef _initialize_absl():
111113
if not _disable_absl_init_log:
112114
InitializeLog()
113115

@@ -117,6 +119,13 @@ index fe60e17c71..dd7e033bf5 100644
117119
+cdef _initialize_grpc():
118120
+ if not _disable_eager_grpc_init:
119121
+ grpc_init()
122+
+ # Give ~2s to init
123+
+ wait_ms = 10
124+
+ while wait_ms < 1500:
125+
+ if grpc_is_initialized() == 0:
126+
+ return
127+
+ time.sleep(wait_ms / 1000)
128+
+ wait_ms = wait_ms * 2
120129
+
121130
_initialize_absl()
122131
+_initialize_grpc()

0 commit comments

Comments
 (0)