Skip to content

Fix BatchSpanProcessor context done tests#1863

Merged
MrAlias merged 2 commits intoopen-telemetry:mainfrom
MrAlias:bsp-ctx-flush
Apr 29, 2021
Merged

Fix BatchSpanProcessor context done tests#1863
MrAlias merged 2 commits intoopen-telemetry:mainfrom
MrAlias:bsp-ctx-flush

Conversation

@MrAlias
Copy link
Copy Markdown
Contributor

@MrAlias MrAlias commented Apr 29, 2021

#1860 added support for the BatchSpanProcessor to return export failures. This was added using a select statement.

select {
case err = <-wait:
case <-ctx.Done():
err = ctx.Err()
}

In Go select statements are random when multiple cases can be satisfied. This means that if the exporter is shutdown fast enough and the context has ended there is a chance that the exporter error value will be returned instead of the context error, causing test failures.

This updates the tests to have the exporter return the same context error, which a valid exporter should be doing, and resolves the bug.

@MrAlias MrAlias added bug Something isn't working pkg:SDK Related to an SDK package area:trace Part of OpenTelemetry tracing labels Apr 29, 2021
@Sawmi Sawmi mentioned this pull request Apr 29, 2021
@MrAlias MrAlias added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Apr 29, 2021
@MrAlias
Copy link
Copy Markdown
Contributor Author

MrAlias commented Apr 29, 2021

Merging prior to 1 business day to avoid other test failures.

@MrAlias MrAlias merged commit ec75390 into open-telemetry:main Apr 29, 2021
@MrAlias MrAlias deleted the bsp-ctx-flush branch April 29, 2021 18:01
@pellared pellared added this to the untracked milestone Nov 8, 2024
pellared added a commit that referenced this pull request Mar 26, 2025
- Generate `semconv/v1.31.0`
- Stop generating deprecated metric semconv similar to all other
generation
- Fix acronyms:
  - `ReplicationController`
  - `ResourceQuota`

## [`v1.31.0` semantic convention release
notes](https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.31.0):

<h3>🛑 Breaking changes 🛑</h3>
<ul>
<li>
<p><code>code</code>: <code>code.function.name</code> value should
contain the fully qualified function name, <code>code.namespace</code>
is now deprecated (<a
href="open-telemetry/semantic-conventions#1677"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1677/hovercard">#1677</a>)</p>
</li>
<li>
<p><code>gen-ai</code>: Introduce <code>gen_ai.output.type</code>and
deprecate <code>gen_ai.openai.request.response_format</code> (<a
href="open-telemetry/semantic-conventions#1757"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1757/hovercard">#1757</a>)</p>
</li>
<li>
<p><code>mobile</code>: Rework <code>device.app.lifecycle</code> mobile
event. (<a
href="open-telemetry/semantic-conventions#1880"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1880/hovercard">#1880</a>)<br>
The <code>device.app.lifecycle</code> event has been reworked to use
attributes instead<br>
of event body fields. The <code>ios.app.state</code> and
<code>android.app.state</code> attributes<br>
have been reintroduced to the attribute registry.</p>
</li>
<li>
<p><code>system</code>: Move CPU-related system.cpu.* metrics to CPU
namespace (<a
href="open-telemetry/semantic-conventions#1873"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1873/hovercard">#1873</a>)</p>
</li>
<li>
<p><code>k8s</code>: Change k8s.replication_controller metrics to
k8s.replicationcontroller (<a
href="open-telemetry/semantic-conventions#1848"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1848/hovercard">#1848</a>)</p>
</li>
<li>
<p><code>db</code>: Rename <code>db.system</code> to
<code>db.system.name</code> in database metrics, and update the values
to be consistent with database spans. (<a
href="open-telemetry/semantic-conventions#1581"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1581/hovercard">#1581</a>)</p>
</li>
<li>
<p><code>session</code>: Move <code>session.id</code> and
<code>session.previous_id</code> from body fields to event attributes,
and yamlize <code>session.start</code> and <code>session.end</code>
events. (<a
href="open-telemetry/semantic-conventions#1845"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1845/hovercard">#1845</a>)<br>
As part of the ongoing migration of event fields from LogRecord body to
extended/complex attributes, the <code>session.start</code> and
<code>session.end</code> events have been redefined.</p>
</li>
</ul>
<h3>💡 Enhancements 💡</h3>
<ul>
<li>
<p><code>code</code>: Mark <code>code.*</code> semantic conventions as
release candidate (<a
href="open-telemetry/semantic-conventions#1377"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1377/hovercard">#1377</a>)</p>
</li>
<li>
<p><code>gen-ai</code>: Added AI Agent Semantic Convention (<a
href="open-telemetry/semantic-conventions#1732"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1732/hovercard">#1732</a>,
<a
href="open-telemetry/semantic-conventions#1739"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1739/hovercard">#1739</a>)</p>
</li>
<li>
<p><code>db</code>: Add database-specific notes on db.operation.name and
db.collection.name for Cassandra, Cosmos DB, HBase, MongoDB, and Redis,
covering their batch/bulk terms and lack of cross-table queries. (<a
href="open-telemetry/semantic-conventions#1863"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1863/hovercard">#1863</a>,
<a
href="open-telemetry/semantic-conventions#1573"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1573/hovercard">#1573</a>)</p>
</li>
<li>
<p><code>gen-ai</code>: Adds <code>gen_ai.request.choice.count</code>
span attribute (<a
href="open-telemetry/semantic-conventions#1888"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1888/hovercard">#1888</a>)<br>
Enables recording target number of completions to generate</p>
</li>
<li>
<p><code>enduser</code>: Undeprecate 'enduser.id' and introduce new
attribute <code>enduser.pseudo.id</code> (<a
href="open-telemetry/semantic-conventions#1104"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1104/hovercard">#1104</a>)<br>
The new attribute <code>enduser.pseudo.id</code> is intended to provide
a unique identifier of a pseudonymous enduser.</p>
</li>
<li>
<p><code>k8s</code>: Add <code>k8s.hpa</code>,
<code>k8s.resourcequota</code> and
<code>k8s.replicationcontroller</code> attributes and resources (<a
href="open-telemetry/semantic-conventions#1656"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1656/hovercard">#1656</a>)</p>
</li>
<li>
<p><code>k8s</code>: How to populate resource attributes based on
attributes, labels and transformation (<a
href="open-telemetry/semantic-conventions#236"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/236/hovercard">#236</a>)</p>
</li>
<li>
<p><code>process</code>: Adjust the semantic expectations for
<code>process.executable.name</code> (<a
href="open-telemetry/semantic-conventions#1736"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1736/hovercard">#1736</a>)</p>
</li>
<li>
<p><code>otel</code>: Adds SDK self-monitoring metrics for span
processing (<a
href="open-telemetry/semantic-conventions#1631"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1631/hovercard">#1631</a>)</p>
</li>
<li>
<p><code>cicd</code>: Adds a new attribute
<code>cicd.pipeline.run.url.full</code> and corrects the attribute
description of <code>cicd.pipeline.task.run.url.full</code> (<a
href="open-telemetry/semantic-conventions#1796"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1796/hovercard">#1796</a>)</p>
</li>
<li>
<p><code>user-agent</code>: Add <code>user_agent.os.name</code> and
<code>user_agent.os.version</code> attributes (<a
href="open-telemetry/semantic-conventions#1433"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1433/hovercard">#1433</a>)</p>
</li>
</ul>
<h3>🧰 Bug fixes 🧰</h3>
<ul>
<li><code>process</code>: Fix units of
process.open_file_descriptor.count and process.context_switches (<a
href="open-telemetry/semantic-conventions#1662"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1662/hovercard">#1662</a>)</li>
</ul>

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:trace Part of OpenTelemetry tracing bug Something isn't working pkg:SDK Related to an SDK package Skip Changelog PRs that do not require a CHANGELOG.md entry

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants