Upgrade to 5.5

If you have questions or problems upgrading your previous version to WackoWiki 5.5.x

Release Notes


  1. Not optimal DB request during upgrade from 5.4.3

    I have WackoWiki 5.4.3 under CentOS 7.4 x64, PHP 5.4 and MariaDB 5.5. The database has about 4000 pages and 50000 revisions. During upgrade to WackoWiki 5.5.5 (PHP 7.1, MariaDB 10.2) the script setup/database_mysql_updates.php worked more one hour! This is too slow for such amount of records. Request $update_revision_r5_4_0 must be changed as:

    --- setup/database_mysql_updates.php.orig
    +++ setup/database_mysql_updates.php
    @@ -133 +133 @@
    -$update_revision_r5_4_0 = "UPDATE {$pref}revision AS r, (SELECT page_id, page_lang FROM {$pref}page) AS p SET r.page_lang = p.page_lang WHERE r.page_id = p.page_id";
    +$update_revision_r5_4_0 = "UPDATE {$pref}revision AS r, {$pref}page AS p SET r.page_lang = p.page_lang WHERE r.page_id = p.page_id";
    After that the script worked about 2 minutes.

  2. Impossible to change properties of the user in Admin panel

    One more bug: it is impossible to change properties of the user in Admin panel. It occurs because integer parameter user_id is quoted before transformation to int. It can be fixed as:

    --- user_users.php.orig
    +++ user_users.php
    @@ -218 +218 @@
    -				"AND user_id <> " . (int) $engine->db->q($_POST['user_id']) . " " .
    +				"AND user_id <> " . (int) $_POST['user_id'] . " " .

    • Mangalor
    • edited
  3. Empty body_r and body_toc

    After upgrade body_r and body_toc in 'page' table are empty. When the wiki-page with {{toc}} is being opened first time after upgrade the table of contents on the page is empty too. Only second opening of the page fills the TOC section. Is any way to refill cleared body_r and body_toc automatically? Othewise it is need to fix show method when body_r and body_toc are empty.

    • Mangalor
    • edited
  4. Re: Empty body_r and body_toc

    The installer empties body_r and body_toc because the toc and the headings along with other markup changed. So every page must be recompiled, parsed again.

    1. The show handler recompiles a page if body_r and body_toc is not available.
      • add a page reload condition, object cache issue?
      • need to test some cases to get a bigger picture
      • seems an object cache issue in built_toc function
        • $page = $this->load_page($tag);
    2. The Wiki-links option under Re-Synchronize data in the Admin panel re-parses all pages and updates the emptied body_r and body_toc fields, as mentioned in the upgrade guide. However there are some open issues:
      • the routine fails to continue if it can't parse a particular page or triggers an unwanted redirect
      • the page redirect may exceed the allowed value of your browser
      • the used routine settings may exceed your allowed system resources
      • the Wiki-links re-rendering option needs more testing and tuning, so far you can
        • tune max records per turn
        • add an array to exclude failing pages in foreach using continue
        • turn on debugging, e.g. Diag::dbg('GOLD', $record, $page['tag']); shows the last failing page

    1. I fixed some issues, excluded all system pages, but it should exclude only the pages failing to parse, and disabled the redirect action again.
    2. added option to re-compile all pages

    1. It seems that the changepassword and the registration action causes the routine to fail. WHY?
      • login works. I assume both actions trigger a redirect.

    • WikiAdmin
    • edited