Skip to content

fix(logql): Fix panic in json parsing when using empty array index - #14393

Merged
chaudum merged 1 commit into
mainfrom
chaudum/fix-panic-in-json-parsing
Oct 4, 2024
Merged

fix(logql): Fix panic in json parsing when using empty array index#14393
chaudum merged 1 commit into
mainfrom
chaudum/fix-panic-in-json-parsing

Conversation

@chaudum

@chaudum chaudum commented Oct 4, 2024

Copy link
Copy Markdown
Contributor

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

loki-gh-app Bot commented Oct 4, 2024

Copy link
Copy Markdown
Contributor

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

2 similar comments
@loki-gh-app

loki-gh-app Bot commented Oct 4, 2024

Copy link
Copy Markdown
Contributor

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

@loki-gh-app

loki-gh-app Bot commented Oct 4, 2024

Copy link
Copy Markdown
Contributor

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 Oct 4, 2024

@trevorwhitney trevorwhitney left a comment

Copy link
Copy Markdown
Collaborator

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
@chaudum
chaudum deleted the chaudum/fix-panic-in-json-parsing branch October 4, 2024 15:44
@loki-gh-app

loki-gh-app Bot commented Oct 4, 2024

Copy link
Copy Markdown
Contributor

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

loki-gh-app Bot commented Oct 4, 2024

Copy link
Copy Markdown
Contributor

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