microsoft / azure-pipelines-tasks

Tasks for Azure Pipelines
https://aka.ms/tfbuild
MIT License
3.47k stars 2.6k forks source link

ERR_UNESCAPED_CHARACTERS returned by DockerV2 task when the URL contains Chinese Character #15159

Closed crushonme closed 2 years ago

crushonme commented 3 years ago

Note

Issues in this repo are for tracking bugs, feature requests and questions for the tasks in this repo

For a list:
https://github.com/Microsoft/azure-pipelines-tasks/tree/master/Tasks

If you have an issue or request for the Azure Pipelines service, use developer community instead:

https://developercommunity.visualstudio.com/spaces/21/index.html )

Required Information

Entering this information will route you directly to the right team and expedite traction.

Question, Bug, or Feature?
Type: BUG

Enter Task Name: DockerV2

list here (V# not needed):
https://github.com/Microsoft/azure-pipelines-tasks/tree/master/Tasks

Environment

Issue Description

ERR_UNESCAPED_CHARACTERS returned by DockerV2 task when the URL contains Chinese Character

Task logs

2021-08-12T11:10:44.3445850Z ##[debug]requestUrl: https://dev.azuredevops.com/2021-08-12T11:10:44.3489007Z ##[debug][POST]https://dev.azuredevops.com/TestService/研发管理平台/_apis/deployment/imagedetails?api-version=5.0-preview.1
/研发管理平台/_apis/deployment/imagedetails?api-version=5.0-preview.1
2021-08-12T11:10:44.3465288Z ##[debug]requestBody: {"imageName":"***rd-measure/backend@sha256:9d046b81913340b1005536aef357d431b43645bdadb668fcd6097415a51be9f0","imageUri":"***rd-measure/backend@sha256:9d046b81913340b1005536aef357d431b43645bdadb668fcd6097415a51be9f0","hash":"9d046b81913340b1005536aef357d431b43645bdadb668fcd6097415a51be9f0","baseImageName":"carsharing/alpine-oraclejdk8-bash","distance":13,"imageType":"","mediaType":"","tags":["184237"],"layerInfo":[{"directive":"ADD","arguments":"file:1e87ff33d1b6765b793888cd50e01b2bd0dfe152b7dbb4048008bfc2658faea7 in / ","createdOn":"2017-11-03T22:10:18Z","size":"3.97MB"},{"directive":"CMD","arguments":"[\"/bin/sh\"]","createdOn":"2017-11-03T22:10:18Z","size":"0B"},{"directive":"RUN","arguments":"/bin/sh -c ALPINE_GLIBC_BASE_URL=\"https://github.com/sgerrand/alpine-pkg-glibc/releases/download\" &&     ALPINE_GLIBC_PACKAGE_VERSION=\"2.26-r0\" &&     ALPINE_GLIBC_BASE_PACKAGE_FILENAME=\"glibc-$ALPINE_GLIBC_PACKAGE_VERSION.apk\" &&     ALPINE_GLIBC_BIN_PACKAGE_FILENAME=\"glibc-bin-$ALPINE_GLIBC_PACKAGE_VERSION.apk\" &&     ALPINE_GLIBC_I18N_PACKAGE_FILENAME=\"glibc-i18n-$ALPINE_GLIBC_PACKAGE_VERSION.apk\" &&     apk add --no-cache --virtual=.build-dependencies wget ca-certificates &&     wget         \"https://raw.githubusercontent.com/andyshinn/alpine-pkg-glibc/master/sgerrand.rsa.pub\"         -O \"/etc/apk/keys/sgerrand.rsa.pub\" &&     wget         \"$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME\"         \"$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME\"         \"$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME\" &&     apk add --no-cache         \"$ALPINE_GLIBC_BASE_PACKAGE_FILENAME\"         \"$ALPINE_GLIBC_BIN_PACKAGE_FILENAME\"         \"$ALPINE_GLIBC_I18N_PACKAGE_FILENAME\" &&         rm \"/etc/apk/keys/sgerrand.rsa.pub\" &&     /usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 C.UTF-8 || true &&     echo \"export LANG=C.UTF-8\" > /etc/profile.d/locale.sh &&         apk del glibc-i18n &&         rm \"/root/.wget-hsts\" &&     apk del .build-dependencies &&     rm         \"$ALPINE_GLIBC_BASE_PACKAGE_FILENAME\"         \"$ALPINE_GLIBC_BIN_PACKAGE_FILENAME\"         \"$ALPINE_GLIBC_I18N_PACKAGE_FILENAME\"","createdOn":"2017-11-03T23:23:17Z","size":"6.73MB"},{"directive":"ENV","arguments":"LANG=C.UTF-8","createdOn":"2017-11-03T23:23:18Z","size":"0B"},{"directive":"ENV","arguments":"JAVA_VERSION=8 JAVA_UPDATE=151 JAVA_BUILD=12 JAVA_PATH=e758a0de34e24606bca991d704f6dcbf JAVA_HOME=/usr/lib/jvm/default-jvm","createdOn":"2017-11-04T01:06:25Z","size":"0B"},{"directive":"RUN","arguments":"/bin/sh -c apk add --no-cache --virtual=build-dependencies wget ca-certificates unzip &&     cd \"/tmp\" &&     wget --header \"Cookie: oraclelicense=accept-securebackup-cookie;\"         \"http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION}u${JAVA_UPDATE}-b${JAVA_BUILD}/${JAVA_PATH}/jdk-${JAVA_VERSION}u${JAVA_UPDATE}-linux-x64.tar.gz\" &&     tar -xzf \"jdk-${JAVA_VERSION}u${JAVA_UPDATE}-linux-x64.tar.gz\" &&     mkdir -p \"/usr/lib/jvm\" &&     mv \"/tmp/jdk1.${JAVA_VERSION}.0_${JAVA_UPDATE}\" \"/usr/lib/jvm/java-${JAVA_VERSION}-oracle\" &&     ln -s \"java-${JAVA_VERSION}-oracle\" \"$JAVA_HOME\" &&     ln -s \"$JAVA_HOME/bin/\"* \"/usr/bin/\" &&     rm -rf \"$JAVA_HOME/\"*src.zip &&     rm -rf \"$JAVA_HOME/lib/missioncontrol\"            \"$JAVA_HOME/lib/visualvm\"            \"$JAVA_HOME/lib/\"*javafx*            \"$JAVA_HOME/jre/lib/plugin.jar\"            \"$JAVA_HOME/jre/lib/ext/jfxrt.jar\"            \"$JAVA_HOME/jre/bin/javaws\"            \"$JAVA_HOME/jre/lib/javaws.jar\"            \"$JAVA_HOME/jre/lib/desktop\"            \"$JAVA_HOME/jre/plugin\"            \"$JAVA_HOME/jre/lib/\"deploy*            \"$JAVA_HOME/jre/lib/\"*javafx*            \"$JAVA_HOME/jre/lib/\"*jfx*            \"$JAVA_HOME/jre/lib/amd64/libdecora_sse.so\"            \"$JAVA_HOME/jre/lib/amd64/\"libprism_*.so            \"$JAVA_HOME/jre/lib/amd64/libfxplugins.so\"            \"$JAVA_HOME/jre/lib/amd64/libglass.so\"            \"$JAVA_HOME/jre/lib/amd64/libgstreamer-lite.so\"            \"$JAVA_HOME/jre/lib/amd64/\"libjavafx*.so            \"$JAVA_HOME/jre/lib/amd64/\"libjfx*.so &&     rm -rf \"$JAVA_HOME/jre/bin/jjs\"            \"$JAVA_HOME/jre/bin/keytool\"            \"$JAVA_HOME/jre/bin/orbd\"            \"$JAVA_HOME/jre/bin/pack200\"            \"$JAVA_HOME/jre/bin/policytool\"            \"$JAVA_HOME/jre/bin/rmid\"            \"$JAVA_HOME/jre/bin/rmiregistry\"            \"$JAVA_HOME/jre/bin/servertool\"            \"$JAVA_HOME/jre/bin/tnameserv\"            \"$JAVA_HOME/jre/bin/unpack200\"            \"$JAVA_HOME/jre/lib/ext/nashorn.jar\"            \"$JAVA_HOME/jre/lib/jfr.jar\"            \"$JAVA_HOME/jre/lib/jfr\"            \"$JAVA_HOME/jre/lib/oblique-fonts\" &&     wget --header \"Cookie: oraclelicense=accept-securebackup-cookie;\"         \"http://download.oracle.com/otn-pub/java/jce/${JAVA_VERSION}/jce_policy-${JAVA_VERSION}.zip\" &&     unzip -jo -d \"${JAVA_HOME}/jre/lib/security\" \"jce_policy-${JAVA_VERSION}.zip\" &&     rm \"${JAVA_HOME}/jre/lib/security/README.txt\" &&     apk del build-dependencies &&     rm \"/tmp/\"*","createdOn":"2017-11-04T01:07:29Z","size":"156MB"},{"directive":"RUN","arguments":"/bin/sh -c apk --update add bash && rm -rf /var/cache/apk/*","createdOn":"2017-12-07T06:26:50Z","size":"3.54MB"},{"directive":"RUN","arguments":"/bin/sh -c apk --update add curl && rm -rf /var/cache/apk/*","createdOn":"2017-12-07T06:26:52Z","size":"1.56MB"},{"directive":"RUN","arguments":"/bin/sh -c mkdir -p /data/service && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone","createdOn":"2021-08-12T10:36:13Z","size":"47B"},{"directive":"ADD","arguments":"file:d350ee0c3e27317656642ca6004951cd9196432ff711a1620af99ed2ea49ddcf in /data/service/Test-resource-web.jar ","createdOn":"2021-08-12T11:10:24Z","size":"149MB"},{"directive":"ENTRYPOINT","arguments":"[\"java\" \"-Djava.security.egd=file:/dev/./urandom\" \"-XX:+HeapDumpOnOutOfMemoryError\" \"-XX:HeapDumpPath=/data/service\" \"-XX:+PrintGCDetails\" \"-XX:+PrintGCTimeStamps\" \"-Xloggc:/data/service/heap_trace.txt\" \"-Xmx2048m\" \"-Xms2048m\" \"-Xmn768m\" \"-Xss256k\" \"-XX:MaxMetaspaceSize=512m\" \"-jar\" \"/data/service/Test-resource-web.jar\" \"--server.port=8080\"]","createdOn":"2021-08-12T11:10:28Z","size":"0B"},{"directive":"LABEL","arguments":"com.Testservice.dev.image.build.sourceversion=742f1af1c31d9dcb9598158f42ee9f45e2e73582","createdOn":"2021-08-12T11:10:29Z","size":"0B"},{"directive":"LABEL","arguments":"com.Testservice.dev.image.system.teamfoundationcollectionuri=https://dev.azuredevops.com/TestService/","createdOn":"2021-08-12T11:10:29Z","size":"0B"}],"runId":184237,"pipelineVersion":"20210812.5","pipelineName":"rd-measure-backend","pipelineId":"2546","jobName":"Job","imageSize":"336383227.79999995B","creator":"","logsUri":"https://dev.azuredevops.com/TestService/研发管理平台/_build/results?buildId=184237","artifactStorageSourceUri":"https://dev.azuredevops.com/TestService/研发管理平台/_build?definitionId=2546","contextUrl":"https://dev.azuredevops.com/TestService/%25E7%25A0%2594%25E5%258F%2591%25E7%25AE%25A1%25E7%2590%2586%25E5%25B9%25B3%25E5%258F%25B0/_git/rd-measure-backend","revisionId":"742f1af1c31d9dcb9598158f42ee9f45e2e73582","buildOptions":{"dockerFilePath":"/workspaces/_work/4/s/Dockerfile","labels":"com.Testservice.dev.image.system.teamfoundationcollectionuri=https://dev.azuredevops.com/TestService/, com.Testservice.dev.image.build.sourceversion=742f1af1c31d9dcb9598158f42ee9f45e2e73582","tags":"184237","context":"/workspaces/_work/4/s"},"repositoryTypeName":"TfsGit","repositoryId":"c9646b7c-6c8a-445c-8d85-adcdfc80f340","repositoryName":"rd-measure-backend","branch":"master","imageFingerPrint":{"v1Name":"74c23308633d7395aaa7c0a5657216f5f7615ee99f1bbe9bf6ff194f894cf175","v2Blobs":["2aebd096e0e237b447781353379722157e6c2d434b9ec5a0d63f2a6f07cf90c2","ced237d1396248eab64683aad2f6603874f8a75505b7a48a4c0d9cf260d1d3eb","d7cd646c41bdec631902f1100b464ebccb86bc7fea247e93a7430ba85f99b862","558d95a892de84716e6da8a7f1dc77285cbc9052bd8ecede121a0d86ef50dde3","44926f7e7e7490cf9cee7c1d8ea4c398eddf5d4460696737f338d3a860f352ec","29cd28af0a92adde3d6657154ca62a2774e6c64dd67c87ebecf7c27cf3c1d1a9","6c823e4c92dc0db17bf848bc43c8a539a30d124da402b8ed3e22dd04ef16e4f9"],"v2Name":"5e8181e71b4e2fb2f201ece5a299b9d9882d4c96c34b2ab7a88970250d5ea964"}}
2021-08-12T11:10:44.3486127Z ##[debug]accessToken: ***
2021-08-12T11:10:44.3487537Z ##[debug]Sending request for pushing image to Image meta data store
2021-08-12T11:10:44.3489007Z ##[debug][POST]https://dev.azuredevops.com/TestService/研发管理平台/_apis/deployment/imagedetails?api-version=5.0-preview.1
2021-08-12T11:10:44.3535271Z ##[debug]Processed: ##vso[task.logissue type=error;code=ERR_UNESCAPED_CHARACTERS;]
2021-08-12T11:10:44.3536514Z ##[debug]Unable to push to Image Details Artifact Store, Error: TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters
2021-08-12T11:10:44.3537615Z ##[debug]ImageDetailsApiResponse: undefined
2021-08-12T11:10:44.3540752Z ##[section]完成: Docker

The Error is returned from sendRequest. We should use encodeURI to encode URI.

crushonme commented 2 years ago

Workaround: Change the project name to English.

github-actions[bot] commented 2 years ago

This issue is stale because it has been open for 180 days with no activity. Remove the stale label or comment on the issue otherwise this will be closed in 5 days