-
Notifications
You must be signed in to change notification settings - Fork 528
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
Clone the diff in GRPC streaming to prevent panics #3961
Conversation
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should not this mutex prevent that? the lock is adquired on diff and grpc_final:
tempo/modules/frontend/combiner/common.go
Line 107 in f0b76c4
c.mu.Lock() |
The issue is that the pointers passed out of these functions are eventually passed to the proto marshalling code. These same pointers are also held inside the combiner and modified. The issue occurred when one of the objects was modified as it was being marshalled (we think). |
The backport to
To backport manually, run these commands in your terminal: # Fetch latest updates from GitHub
git fetch
# Create a new branch
git switch --create backport-3961-to-r160 origin/r160
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x 89b8d7d783e7e4c8b2955bd3b39c9e084f75ca4c When the conflicts are resolved, stage and commit the changes:
If you have the GitHub CLI installed: # Push the branch to GitHub:
git push --set-upstream origin backport-3961-to-r160
# Create the PR body template
PR_BODY=$(gh pr view 3961 --json body --template 'Backport 89b8d7d783e7e4c8b2955bd3b39c9e084f75ca4c from #3961{{ "\n\n---\n\n" }}{{ index . "body" }}')
# Create the PR on GitHub
echo "${PR_BODY}" | gh pr create --title '[r160] Clone the diff in GRPC streaming to prevent panics' --body-file - --label 'type/bug' --label 'backport' --base r160 --milestone r160 --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-3961-to-r160
# Create a pull request where the `base` branch is `r160` and the `compare`/`head` branch is `backport-3961-to-r160`.
# Remove the local backport branch
git switch main
git branch -D backport-3961-to-r160 |
The backport to
To backport manually, run these commands in your terminal: # Fetch latest updates from GitHub
git fetch
# Create a new branch
git switch --create backport-3961-to-r161 origin/r161
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x 89b8d7d783e7e4c8b2955bd3b39c9e084f75ca4c When the conflicts are resolved, stage and commit the changes:
If you have the GitHub CLI installed: # Push the branch to GitHub:
git push --set-upstream origin backport-3961-to-r161
# Create the PR body template
PR_BODY=$(gh pr view 3961 --json body --template 'Backport 89b8d7d783e7e4c8b2955bd3b39c9e084f75ca4c from #3961{{ "\n\n---\n\n" }}{{ index . "body" }}')
# Create the PR on GitHub
echo "${PR_BODY}" | gh pr create --title '[r161] Clone the diff in GRPC streaming to prevent panics' --body-file - --label 'type/bug' --label 'backport' --base r161 --milestone r161 --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-3961-to-r161
# Create a pull request where the `base` branch is `r161` and the `compare`/`head` branch is `backport-3961-to-r161`.
# Remove the local backport branch
git switch main
git branch -D backport-3961-to-r161 |
* clone diff Signed-off-by: Joe Elliott <[email protected]> * changelog Signed-off-by: Joe Elliott <[email protected]> * add similar logic to final Signed-off-by: Joe Elliott <[email protected]> --------- Signed-off-by: Joe Elliott <[email protected]> (cherry picked from commit 89b8d7d)
* clone diff Signed-off-by: Joe Elliott <[email protected]> * changelog Signed-off-by: Joe Elliott <[email protected]> * add similar logic to final Signed-off-by: Joe Elliott <[email protected]> --------- Signed-off-by: Joe Elliott <[email protected]> (cherry picked from commit 89b8d7d)
* clone diff Signed-off-by: Joe Elliott <[email protected]> * changelog Signed-off-by: Joe Elliott <[email protected]> * add similar logic to final Signed-off-by: Joe Elliott <[email protected]> --------- Signed-off-by: Joe Elliott <[email protected]> (cherry picked from commit 89b8d7d)
* clone diff Signed-off-by: Joe Elliott <[email protected]> * changelog Signed-off-by: Joe Elliott <[email protected]> * add similar logic to final Signed-off-by: Joe Elliott <[email protected]> --------- Signed-off-by: Joe Elliott <[email protected]> (cherry picked from commit 89b8d7d)
What this PR does:
Clones the diff in GRPC streaming to prevent panics
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]