Skip to content

Commit a3983fa

Browse files
authored
fix(jaeger-remote-sampler): Catch errors retrieving remote config (#4976)
1 parent 9d474e3 commit a3983fa

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

experimental/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ All notable changes to experimental packages in this project will be documented
1111

1212
### :bug: (Bug Fix)
1313

14+
* fix(sampler-jaeger-remote): fixes an issue where package could emit unhandled promise rejections @Just-Sieb
15+
1416
### :books: (Refine Doc)
1517

1618
### :house: (Internal)

experimental/packages/sampler-jaeger-remote/src/JaegerRemoteSampler.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ export class JaegerRemoteSampler implements Sampler {
5858
this._syncingConfig = true;
5959
try {
6060
await this.getAndUpdateSampler();
61+
} catch (err) {
62+
diag.warn('Could not update sampler', err);
6163
} finally {
6264
this._syncingConfig = false;
6365
}

experimental/packages/sampler-jaeger-remote/test/JaegerRemoteSampler.test.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,28 @@ describe('JaegerRemoteSampler', () => {
8080
);
8181
new JaegerRemoteSampler({
8282
endpoint,
83-
serviceName,
8483
poolingInterval,
84+
serviceName,
8585
initialSampler: alwaysOnSampler,
8686
});
8787
await clock.tickAsync(poolingInterval * 2);
8888
sinon.assert.callCount(getAndUpdateSamplerStub, 1);
8989
});
90+
91+
it('Doesnt throw unhandled promise rejection when failing to get remote config', async () => {
92+
getAndUpdateSamplerStub.rejects();
93+
const unhandledRejectionListener = sinon.fake();
94+
process.once('unhandledRejection', unhandledRejectionListener);
95+
new JaegerRemoteSampler({
96+
endpoint,
97+
serviceName,
98+
poolingInterval,
99+
initialSampler: alwaysOnSampler,
100+
});
101+
await clock.tickAsync(poolingInterval * 2);
102+
sinon.assert.callCount(getAndUpdateSamplerStub, 2);
103+
sinon.assert.callCount(unhandledRejectionListener, 0);
104+
});
90105
});
91106

92107
describe('shouldSample', () => {

0 commit comments

Comments
 (0)