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(logql): Fix panic in json parsing when using empty array index #14393

Merged
merged 1 commit into from
Oct 4, 2024

Conversation

chaudum
Copy link
Contributor

@chaudum chaudum commented Oct 4, 2024

What this PR does / why we need it:

This PR fixes a panic that occurs with the following json parser expression:

| json keys[""]

when the log line is the following:

{"keys": ["a", "b", "c"]}

screenshot_20241004_144015

Special notes for your reviewer:

Requires grafana/jsonparser#6 and updating the upstream.

Checklist

  • Reviewed the CONTRIBUTING.md guide (required)
  • Documentation added
  • Tests updated
  • Title matches the required conventional commits format, see here
    • Note that Promtail is considered to be feature complete, and future development for logs collection will be in Grafana Alloy. As such, feat PRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.
  • Changes that require user attention or interaction to upgrade are documented in docs/sources/setup/upgrade/_index.md
  • If the change is deprecating or removing a configuration option, update the deprecated-config.yaml and deleted-config.yaml files respectively in the tools/deprecated-config-checker directory. Example PR

@chaudum chaudum marked this pull request as ready for review October 4, 2024 15:36
@chaudum chaudum requested a review from a team as a code owner October 4, 2024 15:36
This PR fixes a panic that occurs with the following json parser
expression:

```
| json keys[""]
```

when the log line is the following:

```json
{"keys": ["a", "b", "c"]}
```

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
@chaudum chaudum force-pushed the chaudum/fix-panic-in-json-parsing branch from 9a83c57 to a116b50 Compare October 4, 2024 15:37
@loki-gh-app
Copy link
Contributor

loki-gh-app bot commented Oct 4, 2024

This PR must be merged before a backport PR will be created.

2 similar comments
@loki-gh-app
Copy link
Contributor

loki-gh-app bot commented Oct 4, 2024

This PR must be merged before a backport PR will be created.

@loki-gh-app
Copy link
Contributor

loki-gh-app bot commented Oct 4, 2024

This PR must be merged before a backport PR will be created.

@chaudum chaudum changed the title fix(logql): Fix panic in json parsing when using invalid array index fix(logql): Fix panic in json parsing when using empty array index Oct 4, 2024
Copy link
Collaborator

@trevorwhitney trevorwhitney left a comment

Choose a reason for hiding this comment

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

lgtm

@chaudum chaudum merged commit 833bf0d into main Oct 4, 2024
66 checks passed
@chaudum chaudum deleted the chaudum/fix-panic-in-json-parsing branch October 4, 2024 15:44
@loki-gh-app
Copy link
Contributor

loki-gh-app bot commented Oct 4, 2024

The backport to release-3.1.x failed:

The process '/usr/bin/git' failed with exit code 1

To backport manually, run these commands in your terminal:

# Fetch latest updates from GitHub
git fetch
# Create a new branch
git switch --create backport-14393-to-release-3.1.x origin/release-3.1.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x 833bf0def6a07e2f58996f54b4b983858750e3e3

When the conflicts are resolved, stage and commit the changes:

git add . && git cherry-pick --continue

If you have the GitHub CLI installed:

# Push the branch to GitHub:
git push --set-upstream origin backport-14393-to-release-3.1.x
# Create the PR body template
PR_BODY=$(gh pr view 14393 --json body --template 'Backport 833bf0def6a07e2f58996f54b4b983858750e3e3 from #14393{{ "\n\n---\n\n" }}{{ index . "body" }}')
# Create the PR on GitHub
echo "${PR_BODY}" | gh pr create --title 'fix(logql): Fix panic in json parsing when using empty array index (backport release-3.1.x)' --body-file - --label 'size/S' --label 'type/bug' --label 'backport' --base release-3.1.x --milestone release-3.1.x --web

Or, if you don't have the GitHub CLI installed (we recommend you install it!):

# Push the branch to GitHub:
git push --set-upstream origin backport-14393-to-release-3.1.x

# Create a pull request where the `base` branch is `release-3.1.x` and the `compare`/`head` branch is `backport-14393-to-release-3.1.x`.

# Remove the local backport branch
git switch main
git branch -D backport-14393-to-release-3.1.x

@loki-gh-app
Copy link
Contributor

loki-gh-app bot commented Oct 4, 2024

The backport to release-3.2.x failed:

The process '/usr/bin/git' failed with exit code 1

To backport manually, run these commands in your terminal:

# Fetch latest updates from GitHub
git fetch
# Create a new branch
git switch --create backport-14393-to-release-3.2.x origin/release-3.2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x 833bf0def6a07e2f58996f54b4b983858750e3e3

When the conflicts are resolved, stage and commit the changes:

git add . && git cherry-pick --continue

If you have the GitHub CLI installed:

# Push the branch to GitHub:
git push --set-upstream origin backport-14393-to-release-3.2.x
# Create the PR body template
PR_BODY=$(gh pr view 14393 --json body --template 'Backport 833bf0def6a07e2f58996f54b4b983858750e3e3 from #14393{{ "\n\n---\n\n" }}{{ index . "body" }}')
# Create the PR on GitHub
echo "${PR_BODY}" | gh pr create --title 'fix(logql): Fix panic in json parsing when using empty array index (backport release-3.2.x)' --body-file - --label 'size/S' --label 'type/bug' --label 'backport' --base release-3.2.x --milestone release-3.2.x --web

Or, if you don't have the GitHub CLI installed (we recommend you install it!):

# Push the branch to GitHub:
git push --set-upstream origin backport-14393-to-release-3.2.x

# Create a pull request where the `base` branch is `release-3.2.x` and the `compare`/`head` branch is `backport-14393-to-release-3.2.x`.

# Remove the local backport branch
git switch main
git branch -D backport-14393-to-release-3.2.x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants