Skip to content

Commit 6619e6b

Browse files
committed
Add patch for h2o
1 parent 7a0a55f commit 6619e6b

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
diff --git a/h2o/backend/server.py b/h2o/backend/server.py
2+
index d9a166f..c9063f2 100644
3+
--- a/h2o/backend/server.py
4+
+++ b/h2o/backend/server.py
5+
@@ -340,9 +340,8 @@ class H2OLocalServer(object):
6+
# Launch the process
7+
win32 = sys.platform == "win32"
8+
flags = getattr(subprocess, "CREATE_NEW_PROCESS_GROUP", 0) if win32 else 0
9+
- prex = os.setsid if not win32 else None
10+
try:
11+
- proc = subprocess.Popen(args=cmd, stdout=out, stderr=err, cwd=cwd, creationflags=flags, preexec_fn=prex)
12+
+ proc = subprocess.Popen(args=cmd, stdout=out, stderr=err, cwd=cwd, creationflags=flags, start_new_session=True)
13+
except OSError as e:
14+
traceback = getattr(e, "child_traceback", None)
15+
raise H2OServerError("Unable to start server: %s" % e, traceback)
16+
diff --git a/h2o/expr.py b/h2o/expr.py
17+
index 6c6a4c3..6d73046 100644
18+
--- a/h2o/expr.py
19+
+++ b/h2o/expr.py
20+
@@ -158,14 +158,16 @@ class ExprNode(object):
21+
# However, keeping it if this scope refers to an H2OFrame (has `_ex` entry)
22+
return isinstance(ref, dict) and '_ex' not in ref
23+
24+
- referrers = gc.get_referrers(self)
25+
+ # GraalVM change: we don't have referers, assume everything has multiple referers
26+
+ # referrers = gc.get_referrers(self)
27+
# removing frames from the referrers to get a consistent behaviour accross Py versions
28+
# as stack frames don't appear in the referrers from Py 3.7.
29+
# also removing the AST expressions built in astfun.py
30+
# as they keep a reference to self if the lambda itself is using a free variable.
31+
- proper_ref = [r for r in referrers if not (inspect.isframe(r) or is_ast_expr(r) or is_debug_ref(r))]
32+
- ref_cnt = len(proper_ref)
33+
- del referrers, proper_ref
34+
+ # proper_ref = [r for r in referrers if not (inspect.isframe(r) or is_ast_expr(r) or is_debug_ref(r))]
35+
+ # ref_cnt = len(proper_ref)
36+
+ # del referrers, proper_ref
37+
+ ref_cnt = 2
38+
# if this self node is referenced by at least one other node (nested expr), then create a tmp frame
39+
if top == 'frame' or (not top and ref_cnt > 1):
40+
self._cache._id = _py_tmp_key(append=h2o.connection().session_id)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[[rules]]
2+
patch = 'h2o.patch'

0 commit comments

Comments
 (0)