Page MenuHomePhabricator

Query execution timeout in restricted environment may go undetected
Open, LowPublic

Description

From https://www.mediawiki.org/wiki/Thread:Project:Support_desk/Passthru%28%29/reply_%2812%29:

When installing using MySQL/Binary Tables, my host times out and some db
tables are not created, and after a page reload 1.19 gives some errors and
don't finish.

The installer should detect this if it can and only allow UTF-8 installations.


Version: 1.19
Severity: normal

Details

Reference
bz49531

Event Timeline

bzimport raised the priority of this task from to Low.Nov 22 2014, 1:46 AM
bzimport set Reference to bz49531.
bzimport added a subscriber: Unknown Object (MLST).

Adding this since I think it is relevant and the original poster didn't want to set up an account here:

Tried another install of 1.19.7 using another table prefix inside same db...

(ENGINE=InnoDB, DEFAULT CHARSET=binary)

This time it didn't give error after the timeout (php-cgi.exe - The FastCGI process exceeded configured activity timeout) and finished without errors.

But can't browse the site, with error:

A database error has occurred. Did you forget to run maintenance/update.php after upgrading?
See: https://www.mediawiki.org/wiki/Manual:Upgrading#Run_the_update_script
Query: SELECT lc_value FROM ond_l10n_cache WHERE lc_lang = 'pt-br' AND lc_key = 'deps' LIMIT 1
Function: LCStore_DB::get
Error: 1146 Table '<db name>.ond_l10n_cache' doesn't exist (<the crap db server>)

My solution is to use MyISAM as engine.

(ENGINE=MyISAM, DEFAULT CHARSET=binary)

It doesn't timeout or give errors during install. It creates more tables in DB (this indicates that after the timeout using InnoDB, the installer did not create all tables it should and also didn't inform about it).

Yesterday, I installed a 1.16.5 also using MyISAM, without a single error, not even needing to modify files. How can I trust 1.19 as I don't know what other error is hidden out there?

(In reply to comment #1)

My solution is to use MyISAM as engine.

MyISAM is never a solution, just another problem.

If InnoDB install is broken, then use Sqlite is a far better solution. But I'm curious why it doesn't work for InnoDB.

(In reply to comment #2)

But I'm
curious why it doesn't work for InnoDB.

I am, too. Could you follow up on the thread to see if he can provide more information?

saper renamed this task from MySQL Binary to Query execution timeout in restricted environment may go undetected.Oct 24 2015, 2:08 AM
saper set Security to None.