Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#1345 closed Bug (fixed)

Piwik One Click Update fails with bogus error if curl_exec times out

Reported by: jpfle Owned by:
Priority: major Milestone: Piwik 0.6.2
Component: Core Keywords:
Cc: Sensitive: no

Description

Piwik One Click Update from 0.5.5 to 0.6.1 fails with these errors:

Archive incompatible: PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature

Piwik One Click Update has been cancelled. If you can't fix the above error message, it is recommended that you manually update Piwik.

Please check out the Update documentation to get started!

Change History (15)

comment:1 follow-up: Changed 4 years ago by vipsoft (robocoder)

  • Milestone set to 0 - Piwik 0.6.2

What is the file size of piwik/tmp/latest/latest.zip?

comment:2 in reply to: ↑ 1 Changed 4 years ago by jpfle

Replying to vipsoft:

What is the file size of piwik/tmp/latest/latest.zip?

0 octet.

comment:3 follow-up: Changed 4 years ago by vipsoft (robocoder)

Assuming you didn't run out of disk space... Piwik wasn't able to download the .zip file.

I can add a check for the empty file, but I'd like to know if we can better detect why the download was attempted and failed. Can you check your phpinfo() ? I'm curious about extensions you have (e.g., curl, socket), and settings such as "disable_functions" and "suhosin.executor.func.blacklist".

comment:4 Changed 4 years ago by vipsoft (robocoder)

Scratch that. I see the problem.

comment:5 Changed 4 years ago by vipsoft (robocoder)

  • Resolution set to fixed
  • Status changed from new to closed

(In [2166]) fixes #1345 - for curl, use CONNECTTIMEOUT (timeout to connect) instead of TIMEOUT (time to complete curl operation) as the .zip file has increased in size, and the server (and/or network) seems slower; improve error checking

comment:6 Changed 4 years ago by vipsoft (robocoder)

  • Summary changed from Piwik One Click Update fails from 0.5.5 to 0.6.1 to Piwik One Click Update fails with bogus error if curl_exec times out

comment:7 follow-up: Changed 4 years ago by matt (mattab)

did you also try to download it several times? we sometimes reboot the server, which would cause any download to fail. Retrying a few minutes later should work, if that was the issue. Anthon, your change sounds good too.

comment:8 in reply to: ↑ 7 Changed 4 years ago by jpfle

Replying to matt:

did you also try to download it several times?

Yes, in different times of the day and for different Piwik's installations.

comment:9 in reply to: ↑ 3 Changed 4 years ago by jpfle

Replying to vipsoft:

Can you check your phpinfo() ? I'm curious about extensions you have (e.g., curl, socket), and settings such as "disable_functions" and "suhosin.executor.func.blacklist".

Do you still need this info?

comment:10 Changed 4 years ago by vipsoft (robocoder)

It was really slow last nite, so I saw it timeout after transferring ~700kB.

jpfle: you may still need to manually update from 0.6.1 to 0.6.2 if the slowdown persists, as you obviously won't have the fix until after you update.

comment:11 Changed 4 years ago by matt (mattab)

if/when the problem becomes a larger issue, we can 'mirror' the downloads. I don't know how it would technically work if we would like to keep the existing URL piwik.org/latest.zip?

comment:12 Changed 4 years ago by vipsoft (robocoder)

Since we get the latest version number available, it should be trivial to determine the named file, eg 0.6.2 => piwik-0.6.2.zip, and retrieve that instead of latest.zip (in case a mirror has not synced up yet).

comment:13 Changed 4 years ago by vipsoft (robocoder)

We'd lose direct tracking of download stats, but I believe we can rsync our releases onto SourceForge's mirror network.

comment:14 Changed 4 years ago by vipsoft (robocoder)

(In [2185]) refs #1345 - tested with PHP 5.1.6; for fetchRemoteFile(), we now ask curl to write directly to the destination file

comment:15 Changed 4 years ago by vipsoft (robocoder)

In [2207], refs #1345 - handle negative Content-Length; in libcurl >= 7.12.1, the curl extension will ignore negative Content-Length

Note: See TracTickets for help on using tickets.