[JIRA] (JENKINS-61337) Debug Symbols uploads > 256meg refused.

16 views
Skip to first unread message

twallace@bossfight.com (JIRA)

unread,
Mar 4, 2020, 4:37:03 PM3/4/20
to jenkinsc...@googlegroups.com
Terry Wallace created an issue
 
Jenkins / Bug JENKINS-61337
Debug Symbols uploads > 256meg refused.
Issue Type: Bug Bug
Assignee: Mez Pahlan
Components: appcenter-plugin
Created: 2020-03-04 21:36
Environment: Latest Jenkins & .81 version of appcenter plugin
Priority: Major Major
Reporter: Terry Wallace

So it turns out the at API endpoint exposed by Microsoft will only except dbug symbol files upto 256meg using the appcenter plugin.  Ours iOS  app.dSYM file recently grew to 257meg and was rejected with an error message of  

io.jenkins.plugins.appcenter.AppCenterException: Upload symbols to resource unsuccessful: : HTTP 413 The request body is too large and exceeds the maximum permissible limit.: <?xml version="1.0" encoding="utf-8"?><Error><Code>RequestBodyTooLarge</Code><Message>The request body is too large and exceeds the maximum permissible limit.
RequestId:92c2b0f6-601e-0057-308e-edc32e000000
Time:2020-02-27T16:56:23.4809866Z</Message><MaxLimit>268435456</MaxLimit></Error>

 

When I inquired with MS about this they said its a limitation of the api and you would need to use the chunk upload approach to upload files larger than 256meg.  

I don;t know if this was known before as I can find no mention of upload size limits anywhere in their documentation and it also does not seem to affect the .app uploads just the debug symbols upload.

The current work around is to stop uploading with plugin and after each build hand upload the .dSYM file through the website. (Which strangely enough does not exhibit the same problem)

If you need any further info please let me know.

Thanks

 

Terry

 

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.12#713012-sha1:6e07c38)
Atlassian logo

mez.pahlan@gmail.com (JIRA)

unread,
Mar 4, 2020, 4:50:04 PM3/4/20
to jenkinsc...@googlegroups.com
Mez Pahlan commented on Bug JENKINS-61337
 
Re: Debug Symbols uploads > 256meg refused.

Thanks for reporting this Terry Wallace. I'll have a look at what that might take to support. Any PRs are welcome for this.

mez.pahlan@gmail.com (JIRA)

unread,
Mar 4, 2020, 5:05:03 PM3/4/20
to jenkinsc...@googlegroups.com

There is a note in the API docs saying that this isn't supported. And that you should use their own CLI tool. However a quick scan of their repo and I can't figure out how or when they are using this chunked mode.

This is the looks like the equivalent call site for their CLI. I'll have to learn javascript again to figure out what is actually happening there.

twallace@bossfight.com (JIRA)

unread,
Mar 4, 2020, 5:55:02 PM3/4/20
to jenkinsc...@googlegroups.com

https://github.com/microsoft/appcenter-cli/blob/master/src/commands/crashes/lib/azure-blob-upload-helper.ts

I think that's the relevant call where its calling the azure blob storage upload under the hood.

Line 20:  blobService.createBlockBlobFromLocalFile(container, blob, file, {

 

twallace@bossfight.com (JIRA)

unread,
Mar 4, 2020, 5:56:03 PM3/4/20
to jenkinsc...@googlegroups.com
Terry Wallace edited a comment on Bug JENKINS-61337
[https://github.com/microsoft/appcenter-cli/blob/master/src/commands/crashes/lib/azure-blob-upload-helper.ts]

I think that's the relevant call where its calling the azure blob storage upload under the hood.

Line 20:  blobService.createBlockBlobFromLocalFile(container, blob, file,
{  

Almost looks like they are directly uploading to azure storage and sidestepping anything else.

 

mez.pahlan@gmail.com (JIRA)

unread,
Mar 19, 2020, 7:34:02 PM3/19/20
to jenkinsc...@googlegroups.com

Sorry for the late reply on this. I can't figure out how to get this to work by side stepping the official APIs. I'll happily take a PR if anyone can figure this out however if it isn't in the official API docs I don't have the bandwidth to look into it at the moment. Apologies.

If it helps anyone what we currently do here is inline with the link above in three API requests. 1) request an upload url for the symbols 2) upload to this url 3) commit this upload. From Terry's investigation there may be a way to reverse engineer what the node plugin is doing which looks to being in the same way as we do by requesting an upload url but instead of directly uploading to it then uses Azure Blob Storage.

There looks to be a Java SDK for Azure Blob Storage which might be worth investigating. For reference here is what the node plugin is doing its thing.

mez.pahlan@gmail.com (JIRA)

unread,
Mar 19, 2020, 7:35:03 PM3/19/20
to jenkinsc...@googlegroups.com
Mez Pahlan updated an issue
 
Change By: Mez Pahlan
Labels: help-wanted

mez.pahlan@gmail.com (JIRA)

unread,
Mar 19, 2020, 7:35:03 PM3/19/20
to jenkinsc...@googlegroups.com
Mez Pahlan updated an issue
Change By: Mez Pahlan
Priority: Major Minor

mez.pahlan@gmail.com (JIRA)

unread,
Mar 19, 2020, 7:53:04 PM3/19/20
to jenkinsc...@googlegroups.com
Mez Pahlan assigned an issue to Unassigned
Change By: Mez Pahlan
Assignee: Mez Pahlan
Reply all
Reply to author
Forward
0 new messages