22 февр. 2012 г.

Mediawiki-1.18 Upload Error

После обновления движка локальной корпоративной wiki (до mediawiki-1.18) словил пренеприятный баг: попытка загрузить в систему файл приводила к MediaWiki internal error. Более подробная отладка ($wgShowExceptionDetails = true; в LocalSettings.php) выявила следующее:
 Warning: pg_query() [function.pg-query]: Query failed: ERROR: syntax error at or near ")" LINE 1: ...ploadStash::stashFile Delayer */ FROM "uploadstash" WHERE ) ^ in /srv/www/wiki/includes/db/DatabasePostgres.php on line 253
Warning: pg_query() [function.pg-query]: Query failed: ERROR: current transaction is aborted, commands ignored until end of transaction block in /srv/www/wiki/includes/db/DatabasePostgres.php on line 253
Original exception: exception 'DBQueryError' with message 'A database error has occurred. Did you forget to run maintenance/update.php after upgrading? See: http://www.mediawiki.org/wiki/Manual:Upgrading#Run_the_update_script
Query: DELETE FROM "uploadstash" WHERE )
Function: UploadStash::stashFile
Error: 1 ERROR: syntax error at or near ")"
LINE 1: ...ploadStash::stashFile Delayer */ FROM "uploadstash" WHERE )
^
' in /srv/www/wiki/includes/db/Database.php:860
 Поиски решения привели на багзиллу проекта с обсуждением подобной ошибки. Выяснилось, что проблема известна, подтверждена и над ее решением ведется работа. На момент написания этого поста имеется возможное решение, которое заключается в легкой правке строчки #296 файла includes/upload/UploadStash.php (относительно корневого каталога вашей mediawiki): строчку
'us_key', 
следует заменить на 
array( 'us_key' ),
В моем случае это решение сработало.