Skip to content
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

Fixed telemetry queue shorten calculation on reconfigure. #1105

Merged
merged 2 commits into from
Jun 29, 2023

Conversation

danielmorell
Copy link
Contributor

Description of the change

I am working on implementing Telemetry in the PHP SDK and using JS as a reference implementation. I found what looks like bug in the telemetry queue size calculation when telemetry is reconfigured here:

Telemeter.prototype.configure = function(options) {
var oldOptions = this.options;
this.options = _.merge(oldOptions, options);
var maxTelemetryEvents = this.options.maxTelemetryEvents || MAX_EVENTS;
var newMaxEvents = Math.max(0, Math.min(maxTelemetryEvents, MAX_EVENTS));
var deleteCount = 0;
if (this.maxQueueSize > newMaxEvents) {
deleteCount = this.maxQueueSize - newMaxEvents;
}
this.maxQueueSize = newMaxEvents;
this.queue.splice(0, deleteCount);
};

Specifically, deleteCount = this.maxQueueSize - newMaxEvents; looks a little suspicious. If the previous max was 100 and the new max is 80 our delete count would be 20.

We then would remove 20 items from the beginning of the queue without checking the length of the queue. So, if 10 items where in the queue we would effectively empty it. Even thought our new max is 80 and the current length of 10 is well under that.

This PR fixes that by using at the length of the queue instead of the maxQueueSize property.

Type of change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Maintenance
  • New release

Related issues

None

Checklists

Development

  • Lint rules pass locally
  • The code changed/added as part of this pull request has been covered with tests
  • All tests related to the changed code pass in development

Code review

  • This pull request has a descriptive title and information useful to a reviewer. There may be a screenshot or screencast attached
  • "Ready for review" label attached to the PR and reviewers assigned
  • Issue from task tracker has a link to this pull request
  • Changes have been reviewed by at least one other engineer

Copy link
Contributor

@waltjones waltjones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice find, and great explanation.

@waltjones waltjones merged commit dc87bd0 into rollbar:master Jun 29, 2023
5 checks passed
mudetroit pushed a commit that referenced this pull request Mar 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants