erro no banco de dados mediawiki ao carregar alguns arquivos PDF

2

Estou executando um servidor mediawiki privado em uma caixa do Gentoo Linux com Apache, PHP e Postgresql-9.0. Às vezes, quando um de nós tenta fazer o upload de um arquivo PDF (esse é o único tipo que já vi acontecer também), recebemos o erro:

MediaWiki internal error.

Original exception: exception 'DBUnexpectedError' with message 'A database error has occurred Query: UPDATE image SET img_size = '1129473',img_width = '1287',img_height = '1789',img_bits = '0',img_media_type = 'OFFICE',img_major_mime = 'application',img_minor_mime = 'pdf',img_timestamp = '2011-08-31 16:39:11 GMT',img_description = '',img_user = '1',img_user_text = 'Dynamphorous',img_metadata = 'a:15:{s:5:"Title";s:0:"";s:7:"Subject";s:0:"";s:8:"Keywords";s:0:"";s:6:"Author";s:0:"";s:8:"Producer";s:20:"Pdf-It version 1.410";s:12:"CreationDate";s:24:"Thu Jul 27 10:10:25 2000";s:7:"ModDate";s:24:"Tue Apr 24 06:38:25 2001";s:6:"Tagged";s:2:"no";s:5:"Pages";s:2:"12";s:9:"Encrypted";s:2:"no";s:5:"pages";a:12:{i:1;a:1:{s:9:"Page size";s:13:"618 x 859 pts";}i:2;a:1:{s:9:"Page size";s:13:"618 x 859 pts";}i:3;a:1:{s:9:"Page size";s:13:"619 x 859 pts";}i:4;a:1:{s:9:"Page size";s:13:"619 x 859 pts";}i:5;a:1:{s:9:"Page size";s:13:"616 x 859 pts";}i:6;a:1:{s:9:"Page size";s:13:"616 x 859 pts";}i:7;a:1:{s:9:"Page size";s:13:"615 x 859 pts";}i:8;a:1:{s:9:"Page size";s:13:"615 x 859 pts";}i:9;a:1:{s:9:"Page size";s:13:"616 x 859 pts";}i:10;a:1:{s:9:"Page size";s:13:"615 x 859 pts";}i:11;a:1:{s:9:"Page size";s:13:"617 x 859 pts";}i:12;a:1:{s:9:"Page size";s:13:"617 x 859 pts";}}s:9:"File size";s:13:"1129473 bytes";s:9:"Optimized";s:2:"no";s:11:"PDF version";s:3:"1.3";s:4:"text";a:13:{i:0;s:3527:"PAPERS

TEXTO COMPLETO DE PAPEL ESTOU TENTANDO CARREGAR AQUI

";i:12;s:0:"";}}',img_sha1 = '5y3nidgq6von7yjlalvi776tjs8pjbz' WHERE img_name = 'title of paper.pdf' Function: LocalFile::recordUpload2 Error: 1 ERROR: invalid input syntax for type bytea LINE 1: ...'1',img_user_text = 'Dynamphorous',img_metadata = 'a:15:{s:5... ^ ' in /var/www/localhost/htdocs/includes/db/DatabasePostgres.php:1122 Stack trace: 0 /var/www/localhost/htdocs/includes/db/Database.php(538): DatabasePostgres->reportQueryError('ERROR: invalid...', 1, 'UPDATE image S...', 'LocalFile::reco...', false) 1 /var/www/localhost/htdocs/includes/db/Database.php(1212): DatabaseBase->query('UPDATE image S...', 'LocalFile::reco...') 2 /var/www/localhost/htdocs/includes/filerepo/LocalFile.php(891): DatabaseBase->update('image', Array, Array, 'LocalFile::reco...') 3 /var/www/localhost/htdocs/includes/filerepo/LocalFile.php(758): LocalFile->recordUpload2('20110831170017!...', '', '', Array, false, Object(User)) 4 /var/www/localhost/htdocs/includes/upload/UploadBase.php(391): LocalFile->upload('/tmp/phpMxnvZ5', '', '', 1, Array, false, Object(User)) 5 /var/www/localhost/htdocs/includes/specials/SpecialUpload.php(426): UploadBase->performUpload('', '', false, Object(User)) 6 /var/www/localhost/htdocs/includes/specials/SpecialUpload.php(167): SpecialUpload->processUpload() 7 /var/www/localhost/htdocs/includes/SpecialPage.php(559): SpecialUpload->execute(NULL) 8 /var/www/localhost/htdocs/includes/Wiki.php(254): SpecialPage::executePath(Object(Title)) 9 /var/www/localhost/htdocs/includes/Wiki.php(64): MediaWiki->handleSpecialCases(Object(Title), Object(OutputPage), Object(WebRequest)) 10 /var/www/localhost/htdocs/index.php(117): MediaWiki->performRequestForTitle(Object(Title), NULL, Object(OutputPage), Object(User), Object(WebRequest)) 11 {main}

Exception caught inside exception handler: exception 'DBUnexpectedError' with message 'SQL error: ERROR: current transaction is aborted, commands ignored until end of transaction block' in /var/www/localhost/htdocs/includes/db/DatabasePostgres.php:624 Stack trace:

0 /var/www/localhost/htdocs/includes/Interwiki.php(153): DatabasePostgres->fetchRow(false) 1 /var/www/localhost/htdocs/includes/Interwiki.php(57): Interwiki::load('engineering') 2 /var/www/localhost/htdocs/includes/Interwiki.php(34): Interwiki::fetch('Engineering') 3 /var/www/localhost/htdocs/includes/Title.php(2325): Interwiki::isValidInterwiki('Engineering') 4 /var/www/localhost/htdocs/includes/Title.php(131): Title->secureAndSplit() 5 /var/www/localhost/htdocs/includes/Skin.php(2132): Title::newFromText('Engineering: El...') 6 /var/www/localhost/htdocs/includes/Skin.php(2085): Skin->addToSidebar(Array, 'sidebar') 7 /var/www/localhost/htdocs/includes/SkinTemplate.php(493): Skin->buildSidebar() 8 /var/www/localhost/htdocs/includes/OutputPage.php(1615): SkinTemplate->outputPage(Object(OutputPage)) 9 /var/www/localhost/htdocs/includes/Exception.php(164): OutputPage->output() 10 /var/www/localhost/htdocs/includes/Exception.php(191): MWException->reportHTML() 11 /var/www/localhost/htdocs/includes/Exception.php(289): MWException->report() 12 /var/www/localhost/htdocs/includes/Exception.php(348): wfReportException(Object(DBUnexpectedError)) 13 [internal function]: wfExceptionHandler(Object(DBUnexpectedError)) 14 {main}

Em seguida, ele passa a fornecer todos os metadados do PDF. (geralmente o texto completo do documento)

Várias coisas que eu sei que isso não é: Não é um problema de lista negra do tipo de ficheiro MIME, carregamos PDFs o tempo todo. Este também não é um limite de tamanho de upload do PHP (o PDF que este erro está sendo lançado agora é de apenas 1.1MB e existem arquivos substancialmente maiores enviados mesmo antes deste)

Alguém tem alguma idéia de qual é o problema? Eu não acho que é um problema PDF criptografado ou qualquer coisa boba assim. E isso só parece acontecer com os PDFs que possuem metadados, como o texto completo do OCR.     Agradecemos antecipadamente a qualquer um que possa ajudar com isso.

    
por dynamphorous 31.08.2011 / 18:52

1 resposta

0

Como discutido, o Mediawiki armazena apenas metadados no banco de dados (como uma matriz serializada), gravando o conteúdo do arquivo no sistema de arquivos local

Isso parece ser um bug no MediaWiki que faz com que ele se quebre ao manipular metadados muito grandes, seja porque está analisando incorretamente todo o conteúdo do arquivo como metadados, ou porque até mesmo os metadados "corretos" são demais para ele lidar com. Eu estou apostando no último, desde o erro que você postou conatinado todo o conteúdo em PDF na consulta UPDATE.

Eu recomendaria testar o mesmo arquivo PDF em uma instalação limpa de sua versão atual do MW para confirmar se talvez uma das configurações ou extensões existentes seja a causa; tente novamente na versão atual (ou na versão beta 1.18.0) para ver se ainda está lá.

    
por 31.08.2011 / 22:47