Bug: File Upload with Postgres and Special Characters in Filename

Hello everyone,

I have a problem with our RT installation here: It is an RT 3.8.7 install with Postgres as database backend.

When uploading a file through the web frontend which contains special characters (like “Polizeipräsidium”), RT silently (!) fails to upload the file. The log message shows, that appearantly some characterset conversions are missing in this case.

The basic translation of the error message is about: "Invalid Byte-Sequence for encoding UTF8. This error can occur alos, if the byte sequence does not match the encoding expected by the server and set in the client_encoding.

I would appreciate any help in how to fix this.

[Fri Apr 30 09:15:21 2010] [crit]: Apache2::RequestIO::rflush: (103) Software caused connection abort at /usr/share/perl5/HTML/Mason/ApacheH
andler.pm line 1026 (/usr/share/request-tracker3.8/libexec/webmux.pl:168)
[Fri Apr 30 09:15:33 2010] [warning]: DBD::Pg::st execute failed: FEHLER: ungültige Byte-Sequenz für Kodierung »UTF8«: 0xe47369
HINT: Dieser Fehler kann auch auftreten, wenn die Bytesequenz nicht mit der Kodierung übereinstimmt, die der Server erwartet, welche durch
»client_encoding« bestimmt wird. at /usr/share/perl5/DBIx/SearchBuilder/Handle.pm line 509. (/usr/share/perl5/DBIx/SearchBuilder/Handle.pm:5
09)
[Fri Apr 30 09:15:33 2010] [warning]: RT::Handle=HASH(0x44765d0) couldn’t execute the query ‘INSERT INTO Attachments (Subject, Filename, Con
tentType, Headers, Creator, MessageId, Parent, Created, Content, ContentEncoding, TransactionId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)’ a
t /usr/share/perl5/DBIx/SearchBuilder/Handle.pm line 522
DBIx::SearchBuilder::Handle::SimpleQuery(‘RT::Handle=HASH(0x44765d0)’, ‘INSERT INTO Attachments (Subject, Filename, ContentType, Hea
d…’, ‘Polizeiprsidiums Mittelfranken.xls’, ‘Polizeiprsidiums Mittelfranken.xls’, ‘application/vnd.ms-excel’, ‘MIME-Version: 1.0\x{
a}Subject: Polizeipr\x{e4}sidiums Mittelfranken.xl…’, 22, ‘’, 185867, …) called at /usr/share/perl5/DBIx/SearchBuilder/Handle.pm line 35
7
DBIx::SearchBuilder::Handle::Insert(‘RT::Handle=HASH(0x44765d0)’, ‘Attachments’, ‘Subject’, ‘Polizeiprsidiums Mittelfranken.xls’
, ‘Filename’, ‘Polizeiprsidiums Mittelfranken.xls’, ‘ContentType’, ‘application/vnd.ms-excel’, ‘Headers’, …) called at /usr/share/perl
5/DBIx/SearchBuilder/Handle/Pg.pm line 66
DBIx::SearchBuilder::Handle::Pg::Insert(‘RT::Handle=HASH(0x44765d0)’, ‘Attachments’, ‘Subject’, ‘Polizeiprsidiums Mittelfranken.
xls’, ‘ContentType’, ‘application/vnd.ms-excel’, ‘Filename’, ‘Polizeiprsidiums Mittelfranken.xls’, ‘Headers’, …) called at /usr/share/
perl5/DBIx/SearchBuilder/Record.pm line 1293
DBIx::SearchBuilder::Record::Create(‘RT::Attachment=HASH(0x5664d40)’, ‘Subject’, ‘Polizeiprsidiums Mittelfranken.xls’, 'Filename
', ‘Polizeiprsidiums Mittelfranken.xls’, ‘ContentType’, ‘application/vnd.ms-excel’, ‘Headers’, ‘MIME-Version: 1.0\x{a}Subject: Polizeipr
\x{e4}sidiums Mittelfranken.xl…’, …) called at /usr/share/request-tracker3.8/lib/RT/Record.pm line 289
RT::Record::Create(‘RT::Attachment=HASH(0x5664d40)’, ‘TransactionId’, 252488, ‘ContentType’, ‘application/vnd.ms-excel’, ‘ContentEnc
oding’, ‘base64’, ‘Parent’, 185867, …) called at /usr/share/request-tracker3.8/lib/RT/Attachment_Overlay.pm line 178
RT::Attachment::Create(‘RT::Attachment=HASH(0x5664d40)’, ‘TransactionId’, 252488, ‘Parent’, 185867, ‘Attachment’, ‘MIME::Entity=HASH(0x5743be8)’) called at /usr/share/request-tracker3.8/lib/RT/Attachment_Overlay.pm line 158
RT::Attachment::Create(‘RT::Attachment=HASH(0x54038a0)’, ‘TransactionId’, 252488, ‘Attachment’, ‘MIME::Entity=HASH(0x5041010)’) called at /usr/share/request-tracker3.8/lib/RT/Transaction_Overlay.pm line 514
RT::Transaction::_Attach(‘RT::Transaction=HASH(0x54101e8)’, ‘MIME::Entity=HASH(0x5041010)’) called at /usr/share/request-tracker3.8/lib/RT/Transaction_Overlay.pm line 154
RT::Transaction::Create(‘RT::Transaction=HASH(0x54101e8)’, ‘ObjectId’, 13698, ‘ObjectType’, ‘RT::Ticket’, ‘TimeTaken’, ‘’, ‘Type’, ‘Correspond’, …) called at /usr/share/request-tracker3.8/lib/RT/Record.pm line 1457
RT::Record::_NewTransaction(‘RT::Ticket=HASH(0x3f150b8)’, ‘Type’, ‘Correspond’, ‘Data’, ‘No Subject’, ‘TimeTaken’, ‘’, ‘MIMEObj’, ‘MIME::Entity=HASH(0x5041010)’, …) called at /usr/share/request-tracker3.8/lib/RT/Ticket_Overlay.pm line 2175
RT::ticket::_RecordNote(‘RT::Ticket=HASH(0x3f150b8)’, ‘BccMessageTo’, ‘’, ‘CcMessageTo’, ‘’, ‘NoteType’, ‘Correspond’, ‘TimeTaken’, ‘’, …) called at /usr/share/request-tracker3.8/lib/RT/Ticket_Overlay.pm line 2087
RT::ticket::Correspond(‘RT::Ticket=HASH(0x3f150b8)’, ‘BccMessageTo’, ‘’, ‘CcMessageTo’, ‘’, ‘MIMEObj’, ‘MIME::Entity=HASH(0x5041010)’, ‘TimeTaken’, ‘’, …) called at /usr/share/request-tracker3.8/lib/RT/Interface/Web.pm line 1147
HTML::Mason::Commands::ProcessUpdateMessage(‘ARGSRef’, ‘HASH(0x51fcb78)’, ‘Actions’, ‘ARRAY(0x520ac88)’, ‘TicketObj’, ‘RT::Ticket=HASH(0x3f150b8)’) called at /usr/local/share/request-tracker3.8/html/Ticket/Display.html line 145
HTML::Mason::Commands::ANON(‘TicketObj’, ‘RT::Ticket=HASH(0x3f150b8)’, ‘UpdateCc’, ‘’, ‘SubmitTicket’, ‘Anfrage Aktualisieren’, ‘Status’, ‘’, ‘QuoteTransaction’, …) called at /usr/share/perl5/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run(‘HTML::Mason::Component::FileBased=HASH(0x5212f48)’, ‘TicketObj’, ‘RT::Ticket=HASH(0x3f150b8)’, ‘UpdateCc’, ‘’, ‘SubmitTicket’, ‘Anfrage Aktualisieren’, ‘Status’, ‘’, …) called at /usr/share/perl5/HTML/Mason/Request.pm line 1302
eval {…} called at /usr/share/perl5/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, ‘TicketObj’, ‘RT::Ticket=HASH(0x3f150b8)’, ‘UpdateCc’, ‘’, ‘SubmitTicket’, ‘Anfrage Aktualisieren’, ‘Status’, …) called at /usr/share/request-tracker3.8/html/Ticket/Update.html line 261
HTML::Mason::Commands::ANON(‘UpdateCc’, ‘’, ‘SubmitTicket’, ‘Anfrage Aktualisieren’, ‘Status’, ‘’, ‘QuoteTransaction’, ‘’, ‘UpdateBcc’, …) called at /usr/share/perl5/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run(‘HTML::Mason::Component::FileBased=HASH(0x5054f68)’, ‘UpdateCc’, ‘’, ‘SubmitTicket’, ‘Anfrage Aktualisieren’, ‘Status’, ‘’, ‘QuoteTransaction’, ‘’, …) called at /usr/share/perl5/HTML/Mason/Request.pm line 1302
eval {…} called at /usr/share/perl5/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, undef, ‘UpdateCc’, ‘’, ‘SubmitTicket’, ‘Anfrage Aktualisieren’, ‘Status’, ‘’, …) called at /usr/share/request-tracker3.8/lib/RT/Interface/Web.pm line 320
RT::Interface::Web::ShowRequestedPage(‘HASH(0x4f3a358)’) called at /usr/share/request-tracker3.8/lib/RT/Interface/Web.pm line 224
RT::Interface::Web::HandleRequest(‘HASH(0x4f3a358)’) called at /usr/share/request-tracker3.8/html/autohandler line 53
HTML::Mason::Commands::ANON(‘UpdateCc’, ‘’, ‘SubmitTicket’, ‘Anfrage Aktualisieren’, ‘Status’, ‘’, ‘QuoteTransaction’, ‘’, ‘UpdateBcc’, …) called at /usr/share/perl5/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run(‘HTML::Mason::Component::FileBased=HASH(0x4f3a7f0)’, ‘UpdateCc’, ‘’, ‘SubmitTicket’, ‘Anfrage Aktualisieren’, ‘Status’, ‘’, ‘QuoteTransaction’, ‘’, …) called at /usr/share/perl5/HTML/Mason/Request.pm line 1297
eval {…} called at /usr/share/perl5/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, undef, ‘UpdateCc’, ‘’, ‘SubmitTicket’, ‘Anfrage Aktualisieren’, ‘Status’, ‘’, …) called at /usr/share/perl5/HTML/Mason/Request.pm line 481
eval {…} called at /usr/share/perl5/HTML/Mason/Request.pm line 481
eval {…} called at /usr/share/perl5/HTML/Mason/Request.pm line 433
HTML::Mason::Request::exec(‘RT::Interface::Web::Request=HASH(0x575a4d0)’) called at /usr/share/perl5/HTML/Mason/ApacheHandler.pm line 165
HTML::Mason::Request::ApacheHandler::exec(‘RT::Interface::Web::Request=HASH(0x575a4d0)’) called at /usr/share/perl5/HTML/Mason/ApacheHandler.pm line 831
HTML::Mason::ApacheHandler::handle_request(‘HTML::Mason::ApacheHandler=HASH(0x4cc17f8)’, ‘Apache2::RequestRec=SCALAR(0x5772ad8)’) called at /usr/share/request-tracker3.8/libexec/webmux.pl line 166
eval {…} called at /usr/share/request-tracker3.8/libexec/webmux.pl line 166
RT::Mason::handler(‘Apache2::RequestRec=SCALAR(0x5772ad8)’) called at -e line 0
eval {…} called at -e line 0 (/usr/share/perl/5.10/Carp.pm:47)
[Fri Apr 30 09:15:33 2010] [crit]: Attachment insert failed: FEHLER: ungültige Byte-Sequenz für Kodierung »UTF8«: 0xe47369
HINT: Dieser Fehler kann auch auftreten, wenn die Bytesequenz nicht mit der Kodierung übereinstimmt, die der Server erwartet, welche durch »client_encoding« bestimmt wird. (/usr/share/request-tracker3.8/lib/RT/Attachment_Overlay.pm:191)
[Fri Apr 30 09:15:33 2010] [crit]: Attachment insert failed: FEHLER: ungültige Byte-Sequenz für Kodierung »UTF8«: 0xe47369
HINT: Dieser Fehler kann auch auftreten, wenn die Bytesequenz nicht mit der Kodierung übereinstimmt, die der Server erwartet, welche durch »client_encoding« bestimmt wird. (/usr/share/request-tracker3.8/lib/RT/Attachment_Overlay.pm:164)
Mit freundlichen Grüßen,
Torben Nehmer
Torben Nehmer
Diplom Informatiker (FH)
Business System Developer
CANCOM Deutschland GmbH
Messerschmittstr. 20
89343 Scheppach
Germany
Tel.: +49 8225 - 996-1118
Fax: +49 8225 - 996-41118
torben.nehmer@cancom.demailto:torben.nehmer@cancom.de
www.cancom.dehttp://www.cancom.de
CANCOM Deutschland GmbH
Sitz der Gesellschaft: Jettingen-Scheppach
HRB 10653 Memmingen
Geschäftsführer: Paul Holdschik, Christian Linder
Diese E-Mail und alle mitgesendeten Dateien sind vertraulich und ausschließlich für den Gebrauch durch den Empfänger bestimmt!
This e-mail and any files transmitted with it are confidential intended solely for the use of the addressee!