aws / aws/aws-xray-sdk-python

Upgrade coverage to 5.x

Offen
#196 11 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Python
Sterne
338
Forks
147
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Upgrading Coverage to 5.x breaks Travis CI and causes the following exception to occur at the end of the test:
```
No handlers could be found for logger "aws_xray_sdk.core.context"
Traceback (most recent call last):
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/bin/coverage", line 8, in
sys.exit(main())
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/cmdline.py", line 824, in main
status = CoverageScript().command_line(argv)
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/cmdline.py", line 555, in command_line
return self.do_run(options, args)
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/cmdline.py", line 710, in do_run
self.coverage.save()
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/control.py", line 613, in save
data = self.get_data()
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/control.py", line 667, in get_data
if self._collector and self._collector.flush_data():
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/collector.py", line 429, in flush_data
self.covdata.add_lines(self.mapped_file_dict(self.data))
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/sqldata.py", line 436, in add_lines
self._choose_lines_or_arcs(lines=True)
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/sqldata.py", line 493, in _choose_lines_or_arcs
with self._connect() as con:
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/sqldata.py", line 298, in _connect
self._create_db()
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/sqldata.py", line 247, in _create_db
with db:
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/sqldata.py", line 1008, in __enter__
self._connect()
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/sqldata.py", line 996, in _connect
self.execute("pragma journal_mode=off").close()
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/.tox/py27/lib/python2.7/site-packages/coverage/sqldata.py", line 1025, in execute
return self.con.execute(sql, parameters)
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/aws_xray_sdk/ext/sqlite3/patch.py", line 32, in execute
return self.cursor().execute(*args, **kwargs)
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/aws_xray_sdk/core/models/subsegment.py", line 58, in __call__
meta_processor=None,
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/aws_xray_sdk/core/recorder.py", line 417, in record_subsegment
subsegment = self.begin_subsegment(name, namespace)
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/aws_xray_sdk/core/recorder.py", line 284, in begin_subsegment
segment = self.current_segment()
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/aws_xray_sdk/core/recorder.py", line 267, in current_segment
entity = self.get_trace_entity()
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/aws_xray_sdk/core/recorder.py", line 369, in get_trace_entity
return self.context.get_trace_entity()
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/aws_xray_sdk/core/context.py", line 93, in get_trace_entity
return self.handle_context_missing()
File "/Users/cssaete/PycharmProjects/XRaySDK/aws-xray-sdk-python/aws_xray_sdk/core/context.py", line 118, in handle_context_missing
raise SegmentNotFoundException(MISSING_SEGMENT_MSG)
aws_xray_sdk.core.exceptions.exceptions.SegmentNotFoundException: cannot find the current segment/subsegment, please make sure you have a segment open
```

We will downgrade to 4.5.4 for now but will investigate what was introduced in 5.x that's causing the exception to occur.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, den tox/Travis-Test mit Coverage 5.x zu reproduzieren, und untersuche aws_xray_sdk/ext/sqlite3/patch.py zusammen mit dem Traceback durch aws_xray_sdk/core/models/subsegment.py und aws_xray_sdk/core/recorder.py. Vergleiche das Verhalten mit Coverage 4.5.4; die Arbeit ist abgeschlossen, wenn der Test unter Coverage 5.x ohne die SegmentNotFoundException erfolgreich abgeschlossen wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
ci-cd, testing
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.