#5653 - mass addon updating is very unstable (TAR archives corrupt)
| Identifier | #5653 |
|---|---|
| Issue type | Minor issue (breaks specific functionality) |
| Title | mass addon updating is very unstable (TAR archives corrupt) |
| Status | Completed |
| Tags |
Roadmap: v11 (custom) |
| Handling member | PDStig |
| Addon | General / Uncategorised |
| Description | The mass updating of non-bundled addons via the addon management is very unstable, particularly when downloading the addons from the Composr server.
cms_http_request will frequently and randomly hang up (and then time out even when setting the timeout to 30+ seconds) or prematurely finish downloading (resulting in an error about an unsupported filetype). Both conditions cause the entire operation to break. Perhaps the process should be modified. Don't bail out entirely when an addon fails to download. Instead, list successful addons and failed addons when completed (but keep running / go to the next addon when one fails to download). This will keep the failed addons in an "needs updating" state so the process can be run again but only on the ones that failed. |
| Steps to reproduce | |
| Additional information | EDIT: Issue is that TAR archives generated by Composr have incorrect headers and thus are corrupt.
"filemng failed: tar: Blanks in header where numeric uid_t value expected tar: Blanks in header where numeric uid_t value expected tar: Blanks in header where numeric uid_t value expected tar: Exiting with failure status due to previous errors" |
| Funded? | No |
The system will post a comment when this issue is modified (e.g., status changes). To be notified of this, click "Enable comment notifications".
Comments
Proposed solutions:
* Using a more stable method than cms_http_request (probably not possible)
* Using a similar iframe approach as the upgrader and processing each addon one by one, skipping over failed ones (would require passing POST urls and any uploaded data to the iframe; incredibly complex)
* Using an internalised screen to display progress, and process each addon one by one (would still break the process / fail if any one addon throws an error; would require complex changes to forms; would not be reasonable as pre-install info must be displayed)
* Accepting errors everywhere possible via attach_message (would require modifying a lot of functions to support this such as all the addon installing APIs)
* Implementing this in the upgrader instead (not reasonable for non-bundled maintenance)