-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tracing: spans are unconditionally set to a status of OK even after setting to ERROR after invoking with trace_call
and that fails due to unconditional overriding because OpenTelemetry-Python can change the status after ERROR to OK
#1246
Labels
api: spanner
Issues related to the googleapis/python-spanner API.
Comments
product-auto-label
bot
added
the
api: spanner
Issues related to the googleapis/python-spanner API.
label
Dec 3, 2024
I have a fix for it. |
odeke-em
added a commit
to odeke-em/python-spanner
that referenced
this issue
Dec 3, 2024
Also while here, fixed googleapis#1246
odeke-em
added a commit
to odeke-em/python-spanner
that referenced
this issue
Dec 3, 2024
In modernized OpenTelemetry-Python, if the SpanStatus was not already set to OK, it can be changed and the code for trace_call was accidentally unconditionally setting the status to OK if there was no exception. This change fixes that and adds tests to lock this behavior in. Fixes googleapis#1246
odeke-em
added a commit
to odeke-em/python-spanner
that referenced
this issue
Dec 3, 2024
Also while here, fixed googleapis#1246
odeke-em
added a commit
to odeke-em/python-spanner
that referenced
this issue
Dec 4, 2024
This change adds more descriptive and value adding spans to replace the generic CloudSpanner.ReadWriteTransaction. With this change, we add new spans: * CloudSpanner.Database.run_in_transaction * CloudSpanner.execute_pdml * CloudSpanner.execute_sql * CloudSpanner.execute_update Reduce edit changes Propagate db_name when session is None Update system tests + test_session Database.execute_pdml: add events for before and after BeginTransaction Database.run_in_transaction: add span_events for using Transaction and aborted fix tests Trace (FixedSizePool, PingingPool).BatchCreateSessions in bind Add another form of tracing with explicit .close() invocation General touch-ups for every better fine-grained spans and events Use add_event_on_current_span helper more Make updates and fix up tests Wring up passthrough context manager Address updates from running transaction aborting All add much deeper tests to check for span statuses plus retries+abort Also while here, fixed googleapis#1246 More upates for test span results Updates from self review
odeke-em
added a commit
to odeke-em/python-spanner
that referenced
this issue
Dec 4, 2024
In modernized OpenTelemetry-Python, if the SpanStatus was not already set to OK, it can be changed and the code for trace_call was accidentally unconditionally setting the status to OK if there was no exception. This change fixes that and adds tests to lock this behavior in. Fixes googleapis#1246
odeke-em
added a commit
to odeke-em/python-spanner
that referenced
this issue
Dec 5, 2024
In modernized OpenTelemetry-Python, if the SpanStatus was not already set to OK, it can be changed and the code for trace_call was accidentally unconditionally setting the status to OK if there was no exception. This change fixes that and adds tests to lock this behavior in. Fixes googleapis#1246
odeke-em
added a commit
to odeke-em/python-spanner
that referenced
this issue
Dec 5, 2024
Also while here, fixed googleapis#1246
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Noticed while writing extensive tests for modernized tracing functionality that we've got this code
python-spanner/google/cloud/spanner_v1/_opentelemetry_tracing.py
Lines 98 to 108 in ccae6e0
which doesn't do exactly what you expect with OpenTelemetry
Once
yield span
is invoked, if no exception was encountered, we unconditionally set the span's value to OK even if it previously were set to ERROR and here is a testReproduction
which would fail with
Fix
/cc @harshachinta
The text was updated successfully, but these errors were encountered: