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

fix(inputs.win_perf_counter): Do not rely on returned buffer size #14241

Merged
merged 5 commits into from
Nov 7, 2023

Conversation

srebhan
Copy link
Member

@srebhan srebhan commented Nov 2, 2023

resolves #14097
might resolve #9809

In the current implementation we rely on the buffer-size returned by the Microsoft API in e.g. GetCounterPath(). However, as stated in the API documentation we should not rely on this returned value to allocate the buffer as the data might for example grow while querying.

This PR fixes the instances that currently relies on the returned size by preallocate a buffer with a start size (currently 1KiB) and grow exponentially until the data fits or the maximum size is reached. The "maximum size" can be specified by a new MaxBufferSize config option (default 4MiB). As an optimization we short-cut some iterations by jumping to the size returned by the API in case it is bigger that the current buffer length...

@telegraf-tiger telegraf-tiger bot added fix pr to fix corresponding bug plugin/input 1. Request for new input plugins 2. Issues/PRs that are related to input plugins labels Nov 2, 2023
@telegraf-tiger
Copy link
Contributor

telegraf-tiger bot commented Nov 3, 2023

Copy link
Contributor

@powersj powersj left a comment

Choose a reason for hiding this comment

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

Thank you!

@powersj powersj merged commit 0e2203d into influxdata:master Nov 7, 2023
24 checks passed
@github-actions github-actions bot added this to the v1.28.4 milestone Nov 7, 2023
Hipska added a commit to Super-Visions/telegraf that referenced this pull request Nov 7, 2023
* master:
  fix(inputs.win_perf_counter): Do not rely on returned buffer size (influxdata#14241)
  feat(inputs.modbus): Add support for string-fields (influxdata#14145)
  chore(deps): Bump cloud.google.com/go/storage from 1.30.1 to 1.34.1 (influxdata#14253)
  chore(deps): Bump github.com/rabbitmq/amqp091-go from 1.8.1 to 1.9.0 (influxdata#14252)
  chore(deps): Bump github.com/hashicorp/consul/api from 1.25.1 to 1.26.1 (influxdata#14251)
  chore(deps): Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.23.5 to 1.26.0 (influxdata#14249)
  fix(config): Fix comment removal in TOML files (influxdata#14240)
  feat(outputs.prometheus_client): Support listen on vsock (influxdata#14108)
  fix(inputs.mqtt_consumer): Resolve could not mark message delivered (influxdata#14243)
  chore(linters): Fix findings found by testifylint for Windows and enable it. (influxdata#14238)
  feat(migrations): Add option migration for inputs.nats_consumer (influxdata#14234)
  feat(migrations): Add option migration for inputs.mqtt_consumer (influxdata#14233)
  test(inputs.jolokia2_agent): Sort metrics as order is not consistent (influxdata#14227)
powersj pushed a commit that referenced this pull request Nov 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix pr to fix corresponding bug plugin/input 1. Request for new input plugins 2. Issues/PRs that are related to input plugins
Projects
None yet
2 participants