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.