Fix UTF-8 handling in incremental trace update API
What does this MR do?
This MR fixes invalid UTF-8 handling in incremental trace update API (used by GitLab Runner).
Why was this MR needed?
Current version is using .length
method to determine current trace size where Runner is using the trace size in bytes. Also this byte size is used in headers and file operations to agree the trace part to send. This is a problem when build trace contains any multi-byte UTF-8 characters. This MR is fixing this situation so all parts are using the same size in bytes.
Runner -> API communication before fix:
Checking for builds... received runner=_token_
gitlab-ci-multi-runner 1.3.0~beta.26.gcfd63b9 (cfd63b9) build=25 runner=_token_
Using Docker executor with image debian:jessie ... build=25 runner=_token_
Pulling docker image debian:jessie ... build=25 runner=_token_
25 Submitting build to coordinator... ok runner=_token_
25 Appending trace to coordinator... ok RemoteRange=0-158 RemoteState=running ResponseMessage=202 Accepted ResponseStatusCode=202 SentRange=0-158 runner=_token_
25 Appending trace to coordinator... ok RemoteRange=0-491 RemoteState=running ResponseMessage=202 Accepted ResponseStatusCode=202 SentRange=158-505 runner=_token_
WARNING: 25 Appending trace to coordinator... range missmatch RemoteRange=0-491 RemoteState= ResponseMessage=416 Requested Range Not Satisfiable ResponseStatusCode=416 SentRange=505-584 runner=_token_
WARNING: 25 Resending trace patch due to range missmatch runner=_token_
25 Appending trace to coordinator... ok RemoteRange=0-556 RemoteState=running ResponseMessage=202 Accepted ResponseStatusCode=202 SentRange=491-584 runner=_token_
WARNING: 25 Appending trace to coordinator... range missmatch RemoteRange=0-556 RemoteState= ResponseMessage=416 Requested Range Not Satisfiable ResponseStatusCode=416 SentRange=584-663 runner=_token_
WARNING: 25 Resending trace patch due to range missmatch runner=_token_
25 Appending trace to coordinator... ok RemoteRange=0-621 RemoteState=running ResponseMessage=202 Accepted ResponseStatusCode=202 SentRange=556-663 runner=_token_
Build succeeded build=25 runner=_token_
WARNING: 25 Appending trace to coordinator... range missmatch RemoteRange=0-621 RemoteState= ResponseMessage=416 Requested Range Not Satisfiable ResponseStatusCode=416 SentRange=663-797 runner=_token_
WARNING: 25 Resending trace patch due to range missmatch runner=_token_
25 Appending trace to coordinator... ok RemoteRange=0-741 RemoteState=running ResponseMessage=202 Accepted ResponseStatusCode=202 SentRange=621-797 runner=_token_
25 Submitting build to coordinator... ok runner=_token_
Runner -> API communication after fix:
Checking for builds... received runner=_token_
gitlab-ci-multi-runner 1.3.0~beta.26.gcfd63b9 (cfd63b9) build=26 runner=_token_
Using Docker executor with image debian:jessie ... build=26 runner=_token_
Pulling docker image debian:jessie ... build=26 runner=_token_
26 Submitting build to coordinator... ok runner=_token_
26 Appending trace to coordinator... ok RemoteRange=0-158 RemoteState=running ResponseMessage=202 Accepted ResponseStatusCode=202 SentRange=0-158 runner=_token_
26 Appending trace to coordinator... ok RemoteRange=0-505 RemoteState=running ResponseMessage=202 Accepted ResponseStatusCode=202 SentRange=158-505 runner=_token_
26 Appending trace to coordinator... ok RemoteRange=0-584 RemoteState=running ResponseMessage=202 Accepted ResponseStatusCode=202 SentRange=505-584 runner=_token_
26 Appending trace to coordinator... ok RemoteRange=0-663 RemoteState=running ResponseMessage=202 Accepted ResponseStatusCode=202 SentRange=584-663 runner=_token_
Build succeeded build=26 runner=_token_
26 Submitting build to coordinator... ok runner=_token_
Merge request reports
Activity
@ayufan Please review. Also - should we patch 8.8 with this or only merge this into 8.9?
Milestone changed to %8.9
@tmaczukin Can you rebase?
I think that yes. We should patch
8.8
.@ayufan Rebased
mentioned in issue #17519 (closed)
@rymai Can you review?
Reassigned to @rymai
@ayufan Definitely!
61 61 - Markdown editor now correctly resets the input value on edit cancellation !4175 62 62 - Toggling a task list item in a issue/mr description does not creates a Todo for mentions 63 63 - Improved UX of date pickers on issue & milestone forms 64 - Fix incremental trace upload API when using multi-byte UTF-8 chars in trace Yes, I've added it already to the 8.8. Regressions issue. Should this CHANGELOG entry be in 8.8.5. only or both 8.8.5. and 8.9.?
Milestone changed to %8.8
@tmaczukin LGTM, please move the CHANGELOG to 8.8.5, though. :)
Reassigned to @tmaczukin
Added 1 commit:
- 34bef254 - Update CHANGELOG
@rymai CHANGELOG entry moved to 8.8.5 :)
Enabled an automatic merge when the build for 34bef254 succeeds
@tmaczukin Thanks!
mentioned in issue #18436 (closed)
mentioned in commit f29fd65c
Mentioned in commit jmcgeheeiv/gitlab-ce@f29fd65c