?
avatar strawhatgami
strawhatgami
13 Mar 2020

Steps to reproduce the issue / Analysis

It's a bug hard to reproduce because it is hardware-related.

I quickly mention this bug in #28312 (even if it's not the main subject of this one).

It happens on the installer final step (cf screenshot below): the installation just fails.

On medium speed HDD: the installer successfully ends

~582 queries were executed.
Mysql queries log:

| 2020-03-13 14:25:54.736576 | joomla[joomla] @  [anonymized] |         6 |         0 | Init DB      | joomla
| 2020-03-13 14:26:19.289498 | joomla[joomla] @  [anonymized] |         6 |         0 | Query        | CREATE TABLE IF NOT EXISTS `jojm5_action_logs_users` (
  `user_id` int(11) UNSIGNED NOT NULL,
  `notify` tinyint(1) UNSIGNED NOT NULL,
  `extensions` text NOT NULL,
  PRIMARY KEY (`user_id`),
  KEY `idx_notify` (`notify`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci
| 2020-03-13 14:26:30.148381 | joomla[joomla] @  [anonymised] |         6 |         0 | Quit         |

First and third queries correspond to what I suppose to be the first and last queries of the installDB task.
The second query is the one that corresponds to the last query of the failed install. It is executed at roughly the 2/3 of the duration between initDB and Quit.

On slow HDD: the installation failed

The initDB and the last executed queries are shown. ~110 queries were executed.
Mysql queries log:

| 2020-03-13 14:51:47.288283 | joomla[joomla] @  [anonymized] |         5 |         0 | Init DB      | joomla
| 2020-03-13 14:52:55.106886 | joomla[joomla] @  [anonymized] |         6 |         0 | Query        | CREATE TABLE IF NOT EXISTS `rr30u_action_logs_users` (
  `user_id` int(11) UNSIGNED NOT NULL,
  `notify` tinyint(1) UNSIGNED NOT NULL,
  `extensions` text NOT NULL,
  PRIMARY KEY (`user_id`),
  KEY `idx_notify` (`notify`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci

It appears that roughly 2/3 of the needed time to execute all the install queries was disposed in nearly a minute.

On the slow HDD case, the time overhead causes the request to timeout on apache default configuration (timeout=60s).
There was an hint on the developer tool of the install page (in the blue square):
image

System information (as much as possible)

  • I use the joomla docker image (https://github.com/joomla/docker-joomla).
  • I have an Apache reverse proxy ahead of my docker containers
  • I use on the same machine several HDDs with various performances (but any slow HDD should face this issue, I just have the opportunity to use a quicker one)

Additional comments

2 temporary solutions I found to bypass this issue:

  • set a higher request timeout in my apache reverse proxy configuration (the one ahead of my docker container).
  • change location of the Joomla install and MySQL DB to use a quicker disk (there should be no issue with a mid-end 3.5" HDD as mine, or even better a SSD).

However solutions can be put in Joomla's code to mitigate the issue or remove it:
1/ tell the user during the installer that a timeout on a task happened, and how to verify if it's related to their computer performances (as in my case) or not
2/ split this "huge" request in smaller ones to allow slows disks to execute it/them successfully - but yes I'm aware this will need some dev time to achieve this.

This can be related: joomla/docker-joomla#54

avatar strawhatgami strawhatgami - open - 13 Mar 2020
avatar joomla-cms-bot joomla-cms-bot - change - 13 Mar 2020
Labels Added: ?
avatar joomla-cms-bot joomla-cms-bot - labeled - 13 Mar 2020
avatar strawhatgami strawhatgami - change - 13 Mar 2020
The description was changed
avatar strawhatgami strawhatgami - edited - 13 Mar 2020
avatar widmann-it
widmann-it - comment - 13 Mar 2020

The error is due to the hardware used (computer, NAS etc.) Unfortunately, information on the hardware used is missing.

avatar brianteeman
brianteeman - comment - 13 Mar 2020

in 15 years of web I have never heard of anything like this before

avatar Bakual
Bakual - comment - 13 Mar 2020

I used to have this issue also on my Windows laptop with XAMPP years ago. I just upped the maximum execution time and it was solved.
Anyway, it's a hardware or server configuration (or docker) issue. Not something core should work around imho.

avatar HLeithner
HLeithner - comment - 13 Mar 2020

@Hackwar had already a plan to split the install sql into multiparts because of this problem but I don't think he did anything already

avatar strawhatgami
strawhatgami - comment - 13 Mar 2020

More system info:

  • my server is a NAS
  • the "slow" HDD is a SAMSUNG HM321HI
  • the "medium speed HDD" is a RAID5 with 3 TOSHIBA DT01ACA300 and 1 HITACHI HDS723030BLE640
  • the CPU is a Intel Celeron G1610T @ 2.30GHz
  • the kernel is v5.1.14

This doesn't deserve a benchmark, since such a comparison can be obtained from the previously posted MySQL logs.
You can find the full logs here:
https://gist.github.com/strawhatgami/7a8657b05a6ad3a5a98aa7d75c69be08
https://gist.github.com/strawhatgami/88b787fab2fb47fdfa12694912dbfd97

If according to @Bakual, "Not something core should work around", imho at least there should be a place in the documentation - or in the installer - where to write a warning for slow HDDs.
Like this page: https://downloads.joomla.org/technical-requirements ?

However I hope, for people that have slow HDDs (or hosting plans on such HDDs) that the installer will be fixed some day. On my side this is no longer an issue, since as I mentionned I increased the Timeout on my Apache conf.

I let this open but feel free to close if it's for you too no longer an issue.

avatar Bakual
Bakual - comment - 14 Mar 2020

On my side this is no longer an issue, since as I mentionned I increased the Timeout on my Apache conf.

Imho, that's the most proper solution.

avatar HLeithner
HLeithner - comment - 14 Mar 2020

Imho, that's the most proper solution.

not really but works as a workaround

avatar alikon
alikon - comment - 14 Mar 2020

i've never had this issue with my docker/joomla stuff cause of SSD ?

avatar Hackwar
Hackwar - comment - 14 Mar 2020

I had this issue several times and I think it would still be good to fix this by splitting up the SQL into several files. Unfortunately it's not as easy as it sounds, but I'll have another go at it in the near future.

avatar jwaisner jwaisner - change - 15 Mar 2020
Status New Confirmed
avatar Hackwar
Hackwar - comment - 15 Mar 2020

I rewrote the installation to circumvent this whole issue: #28350

avatar Quy Quy - change - 27 Mar 2020
Status Confirmed Closed
Closed_Date 0000-00-00 00:00:00 2020-03-27 19:37:08
Closed_By Quy
avatar Quy
Quy - comment - 27 Mar 2020

@strawhatgami Please teste PR #28350

avatar Quy Quy - close - 27 Mar 2020
avatar strawhatgami
strawhatgami - comment - 27 Mar 2020

I'm confused, I can't manage to reach the joomla installer from this branch.

I landed on the "Environment Setup Incomplete" page, and followed the instructions on https://docs.joomla.org/J4.x:Setting_Up_Your_Local_Environment .
However after that I am still on this "Environment Setup Incomplete" page.

You can find my full console output here: https://gist.github.com/strawhatgami/d44da15be2339f29f71619a1d2f32593

Could you please help me to finish this setup so that I can test the PR?

avatar Quy
Quy - comment - 27 Mar 2020
avatar strawhatgami
strawhatgami - comment - 28 Mar 2020

Thanks.
Here are my tab network details:
image
38s<1min, installation passed!

Congratulations for the great job!

avatar Quy
Quy - comment - 28 Mar 2020

@strawhatgami Thank you so much for promptly testing! Please mark your test result following these steps:

Log in to issue tracker: https://issues.joomla.org/tracker/joomla-cms/28350
Click Test this.
Mark Tested successfully.
Click Submit test result.

avatar strawhatgami
strawhatgami - comment - 28 Mar 2020

Done!

Add a Comment

Login with GitHub to post a comment