summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2018-06-15 01:42:17 +0200
committerGitHub <noreply@github.com>2018-06-15 01:42:17 +0200
commit03559bb05fd963e2be96372ae89fb0bce751d26d (patch)
tree5b0d1c424c6e8acedb77e14ec392d74d4d0c986a
parent96d9c812c24d45d431bffc57d75bc0b9d29dae71 (diff)
downloadraven-03559bb05fd963e2be96372ae89fb0bce751d26d.tar.gz
fix: Fix stacktraces in some situations being the wong way round (#1261)
-rw-r--r--CHANGELOG.md5
-rw-r--r--raven/utils/stacks.py2
-rw-r--r--tests/base/tests.py2
-rw-r--r--tests/handlers/logging/tests.py2
4 files changed, 8 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d893559..25e410b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,11 @@ Changelog
All notable changes to this project will be documented in this file.
Project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+6.10.0
+------
+
+* [Core] Fixed stackframes in some situations being in inverse order.
+
6.9.0 (2018-05-30)
------------------
* [Core] Switched from culprit to transaction for automatic transaction reporting.
diff --git a/raven/utils/stacks.py b/raven/utils/stacks.py
index c87a64c..487eae3 100644
--- a/raven/utils/stacks.py
+++ b/raven/utils/stacks.py
@@ -134,7 +134,7 @@ def iter_stack_frames(frames=None):
if not frames:
frames = inspect.stack()[1:]
- for frame, lineno in ((f[0], f[2]) for f in frames):
+ for frame, lineno in ((f[0], f[2]) for f in reversed(frames)):
f_locals = getattr(frame, 'f_locals', {})
if not _getitem_from_frame(f_locals, '__traceback_hide__'):
yield frame, lineno
diff --git a/tests/base/tests.py b/tests/base/tests.py
index 5644db0..df03278 100644
--- a/tests/base/tests.py
+++ b/tests/base/tests.py
@@ -491,7 +491,7 @@ class ClientTest(TestCase):
self.assertEquals(event['message'], 'test')
assert 'stacktrace' in event
self.assertEquals(len(frames), len(event['stacktrace']['frames']))
- for frame, frame_i in zip(frames, event['stacktrace']['frames']):
+ for frame, frame_i in zip(frames[::-1], event['stacktrace']['frames']):
self.assertEquals(frame[0].f_code.co_filename, frame_i['abs_path'])
self.assertEquals(frame[0].f_code.co_name, frame_i['function'])
diff --git a/tests/handlers/logging/tests.py b/tests/handlers/logging/tests.py
index 7f24f78..f291021 100644
--- a/tests/handlers/logging/tests.py
+++ b/tests/handlers/logging/tests.py
@@ -171,7 +171,7 @@ class LoggingIntegrationTest(TestCase):
self.assertTrue('stacktrace' in event)
frames = event['stacktrace']['frames']
self.assertNotEquals(len(frames), 1)
- frame = frames[0]
+ frame = frames[-1]
self.assertEqual(frame['module'], 'raven.handlers.logging')
assert 'exception' not in event
self.assertTrue('sentry.interfaces.Message' in event)