Skip to content

Commit ee01369

Browse files
authored
Remove eventlet support (#4584)
1 parent b6bc03e commit ee01369

File tree

4 files changed

+5
-41
lines changed

4 files changed

+5
-41
lines changed

MIGRATION_GUIDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ Looking to upgrade from Sentry SDK 2.x to 3.x? Here's a comprehensive list of wh
177177
- Dropped support for Django versions below 2.0.
178178
- Dropped support for trytond versions below 5.0.
179179
- Dropped support for Falcon versions below 3.0.
180+
- Dropped support for eventlet completely.
180181

181182
### Deprecated
182183

sentry_sdk/_queue.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@
1010
https://bugs.python.org/issue14976
1111
https://github.com/sqlalchemy/sqlalchemy/blob/4eb747b61f0c1b1c25bdee3856d7195d10a0c227/lib/sqlalchemy/queue.py#L1
1212
13-
We also vendor the code to evade eventlet's broken monkeypatching, see
14-
https://github.com/getsentry/sentry-python/pull/484
15-
1613
1714
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
1815
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Python Software Foundation;

sentry_sdk/utils.py

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,7 +1240,7 @@ def parse_version(version: str) -> Optional[Tuple[int, ...]]:
12401240

12411241
def _is_contextvars_broken() -> bool:
12421242
"""
1243-
Returns whether gevent/eventlet have patched the stdlib in a way where thread locals are now more "correct" than contextvars.
1243+
Returns whether gevent has patched the stdlib in a way where thread locals are now more "correct" than contextvars.
12441244
"""
12451245
try:
12461246
import gevent
@@ -1269,23 +1269,6 @@ def _is_contextvars_broken() -> bool:
12691269
except ImportError:
12701270
pass
12711271

1272-
try:
1273-
import greenlet
1274-
from eventlet.patcher import is_monkey_patched # type: ignore
1275-
1276-
greenlet_version = parse_version(greenlet.__version__)
1277-
1278-
if greenlet_version is None:
1279-
logger.error(
1280-
"Internal error in Sentry SDK: Could not parse Greenlet version from greenlet.__version__."
1281-
)
1282-
return False
1283-
1284-
if is_monkey_patched("thread") and greenlet_version < (0, 5):
1285-
return True
1286-
except ImportError:
1287-
pass
1288-
12891272
return False
12901273

12911274

tests/conftest.py

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@
2020
except ImportError:
2121
gevent = None
2222

23-
try:
24-
import eventlet
25-
except ImportError:
26-
eventlet = None
27-
2823
import sentry_sdk
2924
import sentry_sdk.utils
3025
from sentry_sdk.envelope import Envelope
@@ -334,23 +329,11 @@ def read_flush(self):
334329
# scope=session ensures that fixture is run earlier
335330
@pytest.fixture(
336331
scope="session",
337-
params=[None, "eventlet", "gevent"],
338-
ids=("threads", "eventlet", "greenlet"),
332+
params=[None, "gevent"],
333+
ids=("threads", "greenlet"),
339334
)
340335
def maybe_monkeypatched_threading(request):
341-
if request.param == "eventlet":
342-
if eventlet is None:
343-
pytest.skip("no eventlet installed")
344-
345-
try:
346-
eventlet.monkey_patch()
347-
except AttributeError as e:
348-
if "'thread.RLock' object has no attribute" in str(e):
349-
# https://bitbucket.org/pypy/pypy/issues/2962/gevent-cannot-patch-rlock-under-pypy-27-7
350-
pytest.skip("https://github.com/eventlet/eventlet/issues/546")
351-
else:
352-
raise
353-
elif request.param == "gevent":
336+
if request.param == "gevent":
354337
if gevent is None:
355338
pytest.skip("no gevent installed")
356339
try:

0 commit comments

Comments
 (0)