Skip to content

fix: Handle invalid SENTRY_DEBUG values properly #4400

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 4 commits into from
May 20, 2025

Conversation

szokeasaurusrex
Copy link
Member

Previously, if the environment variable SENTRY_DEBUG would have an invalid value, such as "invalid," we would set rv["debug"] to None. However, since this value should be a boolean, it should instead be set to False.

This change ensures that rv["debug"] always is a boolean. Where we previously would have set the value to None, we now set it to False. Other behavior remains unchanged.

Ref https://github.com/getsentry/sentry-python/pull/4366/files#r2075294825

Depends on:

This commit enables the `keep_alive` option to be set via the `SENTRY_KEEP_ALIVE` environment variable. When both the environment variable and the argument are provided, the argument takes precedence.

Closes #4354
Previously, if the environment variable `SENTRY_DEBUG` would have an invalid value, such as "invalid," we would set `rv["debug"]` to `None`. However, since this value should be a boolean, it should instead be set to `False`.

This change ensures that `rv["debug"]` always is a boolean. Where we previously would have set the value to `None`, we now set it to `False`. Other behavior remains unchanged.

Ref https://github.com/getsentry/sentry-python/pull/4366/files#r2075294825
Copy link

codecov bot commented May 19, 2025

⚠️ Parser warning

The parser emitted a warning. Please review your JUnit XML file:

Warning while parsing testcase attributes: Limit of string is 1000 chars, for name, we got 2301 at 1:2560 in /home/runner/work/sentry-python/sentry-python/.junitxml

❌ 5 Tests Failed:

Tests completed Failed Passed Skipped
24017 5 24012 5866
View the top 3 failed test(s) by shortest run time
tests.integrations.redis.cluster.test_redis_cluster::test_rediscluster_pipeline[False-expected_first_ten0]
Stack Traces | 0.088s run time
.../redis/cluster/test_redis_cluster.py:131: in test_rediscluster_pipeline
    assert span["data"] == ApproxDict(
E   assert {'thread.id': '140210012343168', 'thread.name': 'MainThread', 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379, 'redis.commands': {'count': 0, 'first_ten': []}} == {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' [Filtered]", "SET 'baz' [Filtered]"]}, 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Common items:
E     {'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Differing items:
E     {'redis.commands': {'count': 0, 'first_ten': []}} != {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' [Filtered]", "SET 'baz' [Filtered]"]}}
E     Left contains 2 more items:
E     {'thread.id': '140210012343168', 'thread.name': 'MainThread'}
E     Full diff:
E       {
E        'db.system': 'redis',
E     -  'redis.commands': {'count': 3,
E     ?                              ^
E     +  'redis.commands': {'count': 0,
E     ?                              ^
E     -                     'first_ten': ["GET 'foo'",
E     ?                                   ^^^^^^^^^^^
E     +                     'first_ten': []},
E     ?                                   ^^
E     -                                   "SET 'bar' [Filtered]",
E     -                                   "SET 'baz' [Filtered]"]},
E        'server.address': '127.0.0.1',
E        'server.port': 6379,
E     +  'thread.id': '140210012343168',
E     +  'thread.name': 'MainThread',
E       }
tests.integrations.redis.cluster.test_redis_cluster::test_rediscluster_pipeline[True-expected_first_ten1]
Stack Traces | 0.088s run time
.../redis/cluster/test_redis_cluster.py:131: in test_rediscluster_pipeline
    assert span["data"] == ApproxDict(
E   assert {'thread.id': '140210012343168', 'thread.name': 'MainThread', 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379, 'redis.commands': {'count': 0, 'first_ten': []}} == {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' 1", "SET 'baz' 2"]}, 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Common items:
E     {'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Differing items:
E     {'redis.commands': {'count': 0, 'first_ten': []}} != {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' 1", "SET 'baz' 2"]}}
E     Left contains 2 more items:
E     {'thread.id': '140210012343168', 'thread.name': 'MainThread'}
E     Full diff:
E       {
E        'db.system': 'redis',
E     -  'redis.commands': {'count': 3,
E     ?                              ^
E     +  'redis.commands': {'count': 0,
E     ?                              ^
E     -                     'first_ten': ["GET 'foo'",
E     ?                                   ^^^^^^^^^^^
E     +                     'first_ten': []},
E     ?                                   ^^
E     -                                   "SET 'bar' 1",
E     -                                   "SET 'baz' 2"]},
E        'server.address': '127.0.0.1',
E        'server.port': 6379,
E     +  'thread.id': '140210012343168',
E     +  'thread.name': 'MainThread',
E       }
tests.integrations.redis.cluster.test_redis_cluster::test_rediscluster_pipeline[False-expected_first_ten0]
Stack Traces | 0.094s run time
.../redis/cluster/test_redis_cluster.py:131: in test_rediscluster_pipeline
    assert span["data"] == ApproxDict(
E   assert {'thread.id': '139863045888896', 'thread.name': 'MainThread', 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379, 'redis.commands': {'count': 0, 'first_ten': []}} == {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' [Filtered]", "SET 'baz' [Filtered]"]}, 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Common items:
E     {'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Differing items:
E     {'redis.commands': {'count': 0, 'first_ten': []}} != {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' [Filtered]", "SET 'baz' [Filtered]"]}}
E     Left contains 2 more items:
E     {'thread.id': '139863045888896', 'thread.name': 'MainThread'}
E     Full diff:
E       {
E        'db.system': 'redis',
E     -  'redis.commands': {'count': 3,
E     ?                              ^
E     +  'redis.commands': {'count': 0,
E     ?                              ^
E     -                     'first_ten': ["GET 'foo'",
E     ?                                   ^^^^^^^^^^^
E     +                     'first_ten': []},
E     ?                                   ^^
E     -                                   "SET 'bar' [Filtered]",
E     -                                   "SET 'baz' [Filtered]"]},
E        'server.address': '127.0.0.1',
E        'server.port': 6379,
E     +  'thread.id': '139863045888896',
E     +  'thread.name': 'MainThread',
E       }

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Base automatically changed from szokeasaurusrex/keep-alive-env-var to master May 19, 2025 12:42
Copy link
Member

@antonpirker antonpirker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for fixing!

@szokeasaurusrex szokeasaurusrex enabled auto-merge (squash) May 20, 2025 11:29
@szokeasaurusrex szokeasaurusrex merged commit b2d4400 into master May 20, 2025
133 of 136 checks passed
@szokeasaurusrex szokeasaurusrex deleted the szokeasaurusrex/consistent-env-var-handling branch May 20, 2025 11:36
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants