Opened 3 years ago

Closed 3 years ago

#2175 closed Task (fixed)

Update screen: advise to disable apache while upgrading

Reported by: matt Owned by:
Priority: normal Milestone: Piwik 1.3
Component: Documentation Keywords:
Cc: Sensitive: no

Description

As to prevent errors, it is actually important to disable all tracking requests while the DB is upgrading (indexes deleted, created, etc.).

We should mention this clearly when printing out the command line to upgrade via shell (users that update via the UI don't need to disable their tracking since the DB size is probably small).

This tip was given by a Piwik user tracking 2 million visits per month, for whom update failed because tracking was still enabled, after stopping apache all went smoothly.

This ticket is probably

  • updating screen Update in product, to explain to disable apache while running script
  • Mention this in the online Update documentation as well

Change History (8)

comment:1 Changed 3 years ago by maze

In my opinion disabling Apache isn't a solution. For example when the website and piwik installation are on the same server. Disabling Apache would mean that the website isn't accessible. Couldn't there be a way to integrate an upgrade mode into piwik where request are ignored but no error is thrown? This would be very helpful for updating piwik. Thereby it would be possible to create consistent database dumps before the update. I get by with commenting out all piwik trackers but this is very costly and caching should be disabled.

comment:2 Changed 3 years ago by matt (mattab)

Good point, I guess we could document the official way to disable Tracker, update piwik/piwik.php and at line 13, change

define('PIWIK_ENABLE_TRACKING', true);

to

define('PIWIK_ENABLE_TRACKING', false);

Therefore no SQL query should be issued to the server.

comment:3 Changed 3 years ago by maze

Is there a way to prevent the user access to URL/piwik/index.php except the piwik user admin (update-mode) for the moment of the update? Because in case of updating the piwik source everybody could call the url and launch the database update via url what would be bad. If I remember correctly there is no user authentication after updating the source (of course in case of updating the db scheme, the users are in the database...).

comment:4 Changed 3 years ago by maze

I have to add that updating database scheme via console should always be allowed. In my case it would be great if I could disable updating the database scheme via gui. Instead of showing the update site there could be a message that piwik is currently updating and the user should have a little patience.

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

this sounds familiar ... was this discussed elsewhere?

I'm thinking an "update in progress" file or setting would:

  • index.php: inform user that an update is in progress and/or block the request (eg API request).
  • piwik.php: log to a file (ala TrackerSecondaryDb); if the format of tracking requests are no longer compatible, the tracker would discard upon restart, otherwise bulk-load

comment:6 Changed 3 years ago by matt (mattab)

Logging requests to a file is out of scope for this ticket, but this is #134 and it will indeed automatically work when updating as well.

I like the idea of blocking the UI while update is ongoing. We could "touch" a file regularly and other requests, in the Updater module, would test for this file timestamp to see if update is ongoing.

comment:7 Changed 3 years ago by larsen

+1

comment:8 Changed 3 years ago by matt (mattab)

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

(In [4203]) Fixes #2175 Adding link, in update screen, to the new FAQ explaining how to disable tracking & the piwik UI via the config file

Note: See TracTickets for help on using tickets.