REST mail-gateway using 100% cpu

Hello,
I got this process im my apache
POST //REST/1.0/NoAuth/mail-gateway HTTP/1.1

It hangs there until I kill it manualy, because it takes 100% of server cpu.
Is the any way to fix it, cause I don’t understand the reason why it behaves
so.

View this message in context: http://requesttracker.8502.n7.nabble.com/REST-mail-gateway-using-100-cpu-tp56255.html

Hello,
I got this process im my apache
POST //REST/1.0/NoAuth/mail-gateway HTTP/1.1

It hangs there until I kill it manualy, because it takes 100% of server cpu.
Is the any way to fix it, cause I don’t understand the reason why it behaves
so.

You need to sync up your mail logs with these problems and capture the
email that is causing the issue. It will be re-queued and tried again
when it fails to submit to RT, so it’ll be somewhere in your queues
and your mail logs will allow you to find and inspect it to see what
is happening.

-kevin

From:
=?UTF-8?B?ICJUb21hcyBNYXLEjWl1bGlvbmlzIiA8VG9tYXMuTWFyY2l1bGlvbmlzQGJp?=
=?UTF-8?B?dGVzcGFydG5lcmlzLmx0Pg==?=

This line, in the mail was the problem, RT somehow hang when parsing this in
I18N.pm. Any solution for this?

View this message in context: http://requesttracker.8502.n7.nabble.com/REST-mail-gateway-using-100-cpu-tp56255p56305.html

From:
=?UTF-8?B?ICJUb21hcyBNYXLEjWl1bGlvbmlzIiA8VG9tYXMuTWFyY2l1bGlvbmlzQGJp?=
=?UTF-8?B?dGVzcGFydG5lcmlzLmx0Pg==?=

This line, in the mail was the problem, RT somehow hang when parsing this in
I18N.pm. Any solution for this?

RT Version?

Also, send along your perl module version list from System
Configuration.

-kevin

RT 4.2.2

Apache2::CmdParms 2.000004 /usr/lib/perl5/Apache2/CmdParms.pm
Apache2::Const 2.000004 /usr/lib/perl5/Apache2/Const.pm
Apache2::Directive 2.000004 /usr/lib/perl5/Apache2/Directive.pm
Apache2::Log 2.000004 /usr/lib/perl5/Apache2/Log.pm
Apache2::PerlSections 2.00 /usr/lib/perl5/Apache2/PerlSections.pm
Apache2::RequestIO 2.000004 /usr/lib/perl5/Apache2/RequestIO.pm
Apache2::RequestRec 2.000004 /usr/lib/perl5/Apache2/RequestRec.pm
Apache2::RequestUtil 2.000004 /usr/lib/perl5/Apache2/RequestUtil.pm
Apache2::Response 2.000004 /usr/lib/perl5/Apache2/Response.pm
Apache2::ServerRec 2.000004 /usr/lib/perl5/Apache2/ServerRec.pm
Apache2::ServerUtil 2.000004 /usr/lib/perl5/Apache2/ServerUtil.pm
Apache::Session 1.91 /usr/local/share/perl/5.10.1/Apache/Session.pm
Apache::Session::Generate::MD5 2.12
/usr/local/share/perl/5.10.1/Apache/Session/Generate/MD5.pm
Apache::Session::lock::MySQL 1.01
/usr/local/share/perl/5.10.1/Apache/Session/Lock/MySQL.pm
Apache::Session::MySQL 1.01
/usr/local/share/perl/5.10.1/Apache/Session/MySQL.pm
Apache::Session::Serialize::Storable 1.01
/usr/local/share/perl/5.10.1/Apache/Session/Serialize/Storable.pm
Apache::Session::Store::DBI 1.02
/usr/local/share/perl/5.10.1/Apache/Session/Store/DBI.pm
Apache::Session::Store::MySQL 1.04
/usr/local/share/perl/5.10.1/Apache/Session/Store/MySQL.pm
APR 0.009000 /usr/lib/perl5/APR.pm
APR::Table 0.009000 /usr/lib/perl5/APR/Table.pm
attributes 0.09 /usr/share/perl/5.10/attributes.pm
AutoLoader 5.68 /usr/share/perl/5.10/AutoLoader.pm
B 1.22 /usr/lib/perl/5.10/B.pm
base 2.14 /usr/share/perl/5.10/base.pm
bytes 1.03 /usr/share/perl/5.10/bytes.pm
Cache::Simple::TimedExpiry 0.27
/usr/local/share/perl/5.10.0/Cache/Simple/TimedExpiry.pm
capitalization 0.03 /usr/local/share/perl/5.10.1/capitalization.pm
Carp 1.11 /usr/share/perl/5.10/Carp.pm
CGI 3.43 /usr/share/perl/5.10/CGI.pm
CGI::Cookie 1.29 /usr/share/perl/5.10/CGI/Cookie.pm
CGI::Emulate::PSGI 0.15 /usr/local/share/perl/5.10.1/CGI/Emulate/PSGI.pm
CGI::PSGI 0.15 /usr/local/share/perl/5.10.1/CGI/PSGI.pm
CGI::Util 1.5_01 /usr/share/perl/5.10/CGI/Util.pm
Class::Accessor 0.34 /usr/local/share/perl/5.10.0/Class/Accessor.pm
Class::Accessor::Fast 0.34
/usr/local/share/perl/5.10.0/Class/Accessor/Fast.pm
Class::Container 0.12 /usr/local/share/perl/5.10.0/Class/Container.pm
Class::Data::Inheritable 0.08
/usr/local/share/perl/5.10.0/Class/Data/Inheritable.pm
Class::Inspector 1.25 /usr/local/share/perl/5.10.0/Class/Inspector.pm
Class::Load 0.06 /usr/local/share/perl/5.10.0/Class/Load.pm
Class::ReturnValue 0.55 /usr/local/share/perl/5.10.0/Class/ReturnValue.pm
Clone 0.31 /usr/local/lib/perl/5.10.0/Clone.pm
common::sense 3.6 /usr/local/share/perl/5.10.1/common/sense.pm
constant 1.17 /usr/share/perl/5.10/constant.pm
Convert::ASN1 0.22 /usr/local/share/perl/5.10.0/Convert/ASN1.pm
Crypt::Eksblowfish 0.009 /usr/local/lib/perl/5.10.1/Crypt/Eksblowfish.pm
Crypt::Eksblowfish::Bcrypt 0.009
/usr/local/lib/perl/5.10.1/Crypt/Eksblowfish/Bcrypt.pm
Crypt::Eksblowfish::Subkeyed 0.009
/usr/local/lib/perl/5.10.1/Crypt/Eksblowfish/Subkeyed.pm
CSS::Squish 0.10 /usr/local/share/perl/5.10.0/CSS/Squish.pm
Cwd 3.3 /usr/lib/perl/5.10/Cwd.pm
Data::Dumper 2.124 /usr/lib/perl/5.10/Data/Dumper.pm
Data::GUID 0.047 /usr/local/share/perl/5.10.1/Data/GUID.pm
Data::OptList 0.108 /usr/local/share/perl/5.10.1/Data/OptList.pm
Data::UUID 1.219 /usr/local/lib/perl/5.10.1/Data/UUID.pm
DateTime 0.66 /usr/local/lib/perl/5.10.0/DateTime.pm
DateTime::_Thawed 0.66
DateTime::Duration 0.66 /usr/local/lib/perl/5.10.0/DateTime/Duration.pm
DateTime::Helpers 0.66 /usr/local/lib/perl/5.10.0/DateTime/Helpers.pm
DateTime::Infinite 0.66 /usr/local/lib/perl/5.10.0/DateTime/Infinite.pm
DateTime::Infinite::Future 0.66
DateTime::Infinite::Past 0.66
DateTime::Locale 0.45 /usr/local/share/perl/5.10.0/DateTime/Locale.pm
DateTime::TimeZone 1.28 /usr/local/share/perl/5.10.0/DateTime/TimeZone.pm
DateTime::TimeZone::Catalog 1.28
/usr/local/share/perl/5.10.0/DateTime/TimeZone/Catalog.pm
DateTime::TimeZone::Floating 1.28
/usr/local/share/perl/5.10.0/DateTime/TimeZone/Floating.pm
DateTime::TimeZone::Local 1.28
/usr/local/share/perl/5.10.0/DateTime/TimeZone/Local.pm
DateTime::TimeZone::OffsetOnly 1.28
/usr/local/share/perl/5.10.0/DateTime/TimeZone/OffsetOnly.pm
DateTime::TimeZone::UTC 1.28
/usr/local/share/perl/5.10.0/DateTime/TimeZone/UTC.pm
DBD::mysql 4.016 /usr/lib/perl5/DBD/mysql.pm
DBI 1.612 /usr/lib/perl5/DBI.pm
DBIx::SearchBuilder 1.65
/usr/local/share/perl/5.10.1/DBIx/SearchBuilder.pm
DBIx::SearchBuilder::Union 0
/usr/local/share/perl/5.10.1/DBIx/SearchBuilder/Union.pm
Devel::GlobalDestruction 0.09
/usr/local/lib/perl/5.10.1/Devel/GlobalDestruction.pm
Devel::StackTrace 1.21 /usr/share/perl5/Devel/StackTrace.pm
Devel::StackTraceFrame 1.21
Devel::Symdump 2.08 /usr/share/perl5/Devel/Symdump.pm
Digest::base 1.16 /usr/share/perl/5.10/Digest/base.pm
Digest::MD5 2.39 /usr/lib/perl/5.10/Digest/MD5.pm
Digest::SHA 5.47 /usr/lib/perl/5.10/Digest/SHA.pm
DynaLoader 1.10 /usr/lib/perl/5.10/DynaLoader.pm
Email::Address 1.900 /usr/local/share/perl/5.10.1/Email/Address.pm
Email::Address::List 0.01
/usr/local/share/perl/5.10.1/Email/Address/List.pm
Encode 2.47 /usr/local/lib/perl/5.10.1/Encode.pm
Encode::Alias 2.16 /usr/local/lib/perl/5.10.1/Encode/Alias.pm
Encode::Config 2.05 /usr/local/lib/perl/5.10.1/Encode/Config.pm
Encode::Encoding 2.05 /usr/local/lib/perl/5.10.1/Encode/Encoding.pm
Encode::Guess 2.05 /usr/local/lib/perl/5.10.1/Encode/Guess.pm
Encode::Unicode 2.07 /usr/local/lib/perl/5.10.1/Encode/Unicode.pm
Errno 1.11 /usr/lib/perl/5.10/Errno.pm
Exception::Class 1.32 /usr/local/share/perl/5.10.0/Exception/Class.pm
Exception::Class::Base 1.32
/usr/local/share/perl/5.10.0/Exception/Class/Base.pm
Exporter 5.63 /usr/share/perl/5.10/Exporter.pm
Exporter::Heavy 5.63 /usr/share/perl/5.10/Exporter/Heavy.pm
Fcntl 1.06 /usr/lib/perl/5.10/Fcntl.pm
feature 1.13 /usr/share/perl/5.10/feature.pm
File::Basename 2.77 /usr/share/perl/5.10/File/Basename.pm
File::Glob 1.06 /usr/lib/perl/5.10/File/Glob.pm
File::Path 2.07_03 /usr/share/perl/5.10/File/Path.pm
File::ShareDir 1.03 /usr/local/share/perl/5.10.0/File/ShareDir.pm
File::Spec 3.3 /usr/share/perl/5.10/File/Spec.pm
File::Spec::Unix 3.3 /usr/share/perl/5.10/File/Spec/Unix.pm
File::Temp 0.22 /usr/share/perl/5.10/File/Temp.pm
FileHandle 2.02 /usr/share/perl/5.10/FileHandle.pm
GD 2.39 /usr/lib/perl5/GD.pm
GD::Image 2.27 /usr/lib/perl5/GD/Image.pm
Getopt::Long 2.38 /usr/share/perl/5.10/Getopt/Long.pm
GraphViz 2.04 /usr/share/perl5/GraphViz.pm
Hash::MultiValue 0.13 /usr/local/share/perl/5.10.1/Hash/MultiValue.pm
HTML::Element 3.23 /usr/share/perl5/HTML/Element.pm
HTML::Entities 3.64 /usr/lib/perl5/HTML/Entities.pm
HTML::Formatter 2.04 /usr/share/perl5/HTML/Formatter.pm
HTML::FormatText 2.04 /usr/share/perl5/HTML/FormatText.pm
HTML::FormatText::WithLinks 0.14
/usr/local/share/perl/5.10.1/HTML/FormatText/WithLinks.pm
HTML::FormatText::WithLinks::AndTables 0.02
/usr/local/share/perl/5.10.1/HTML/FormatText/WithLinks/AndTables.pm
HTML::Mason 1.45 /usr/local/share/perl/5.10.0/HTML/Mason.pm
HTML::Mason::CGIHandler 1.00
/usr/local/share/perl/5.10.0/HTML/Mason/CGIHandler.pm
HTML::Mason::Exception 1.1
HTML::Mason::Exception::Abort 1.1
HTML::Mason::Exception::Compilation 1.1
HTML::Mason::Exception::Compilation::IncompatibleCompiler 1.1
HTML::Mason::Exception::Compiler 1.1
HTML::Mason::Exception::Decline 1.1
HTML::Mason::Exception::Params 1.1
HTML::Mason::Exception::Syntax 1.1
HTML::Mason::Exception::System 1.1
HTML::Mason::Exception::TopLevelNotFound 1.1
HTML::Mason::Exception::VirtualMethod 1.1
HTML::Mason::Exceptions 1.43
/usr/local/share/perl/5.10.0/HTML/Mason/Exceptions.pm
HTML::Mason::PSGIHandler 0.52
/usr/local/share/perl/5.10.1/HTML/Mason/PSGIHandler.pm
HTML::Mason::PSGIHandler::Streamy 0.52
/usr/local/share/perl/5.10.1/HTML/Mason/PSGIHandler/Streamy.pm
HTML::Mason::Request::PSGI 0.52
HTML::Parser 3.66 /usr/lib/perl5/HTML/Parser.pm
HTML::Scrubber 0.08 /usr/local/share/perl/5.10.0/HTML/Scrubber.pm
HTML::Tagset 3.20 /usr/share/perl5/HTML/Tagset.pm
HTML::TreeBuilder 3.23 /usr/share/perl5/HTML/TreeBuilder.pm
HTTP::Body 1.17 /usr/local/share/perl/5.10.1/HTTP/Body.pm
HTTP::Body::MultiPart 1.17
/usr/local/share/perl/5.10.1/HTTP/Body/MultiPart.pm
HTTP::Body::OctetStream 1.17
/usr/local/share/perl/5.10.1/HTTP/Body/OctetStream.pm
HTTP::Body::UrlEncoded 1.17
/usr/local/share/perl/5.10.1/HTTP/Body/UrlEncoded.pm
HTTP::Body::XForms 1.17 /usr/local/share/perl/5.10.1/HTTP/Body/XForms.pm
HTTP::Body::XFormsMultipart 1.17
/usr/local/share/perl/5.10.1/HTTP/Body/XFormsMultipart.pm
HTTP::Date 6.02 /usr/local/share/perl/5.10.1/HTTP/Date.pm
HTTP::Headers 6.05 /usr/local/share/perl/5.10.1/HTTP/Headers.pm
HTTP::Message 6.06 /usr/local/share/perl/5.10.1/HTTP/Message.pm
HTTP::Request 6.00 /usr/local/share/perl/5.10.1/HTTP/Request.pm
HTTP::Response 6.04 /usr/local/share/perl/5.10.1/HTTP/Response.pm
HTTP::Status 6.03 /usr/local/share/perl/5.10.1/HTTP/Status.pm
I18N::LangTags 0.35 /usr/share/perl/5.10/I18N/LangTags.pm
integer 1.00 /usr/share/perl/5.10/integer.pm
IO 1.25 /usr/lib/perl/5.10/IO.pm
IO::File 1.14 /usr/lib/perl/5.10/IO/File.pm
IO::Handle 1.28 /usr/lib/perl/5.10/IO/Handle.pm
IO::Seekable 1.1 /usr/lib/perl/5.10/IO/Seekable.pm
IO::Select 1.17 /usr/lib/perl/5.10/IO/Select.pm
IO::Socket 1.31 /usr/lib/perl/5.10/IO/Socket.pm
IO::Socket::INET 1.31 /usr/lib/perl/5.10/IO/Socket/INET.pm
IO::Socket::UNIX 1.23 /usr/lib/perl/5.10/IO/Socket/UNIX.pm
IPC::Open2 1.03 /usr/share/perl/5.10/IPC/Open2.pm
IPC::Open3 1.04 /usr/share/perl/5.10/IPC/Open3.pm
IPC::Run 0.92 /usr/local/share/perl/5.10.1/IPC/Run.pm
IPC::Run::Debug 0.90 /usr/local/share/perl/5.10.1/IPC/Run/Debug.pm
IPC::Run::IO 0.90 /usr/local/share/perl/5.10.1/IPC/Run/IO.pm
IPC::Run::Timer 0.90 /usr/local/share/perl/5.10.1/IPC/Run/Timer.pm
JSON 2.53 /usr/local/share/perl/5.10.1/JSON.pm
JSON::XS 2.33 /usr/local/lib/perl/5.10.1/JSON/XS.pm
List::MoreUtils 0.25_02 /usr/lib/perl5/List/MoreUtils.pm
List::Util 1.21 /usr/lib/perl/5.10/List/Util.pm
Locale::Maketext 1.13 /usr/share/perl/5.10/Locale/Maketext.pm
Locale::Maketext::Fuzzy 0.11
/usr/local/share/perl/5.10.1/Locale/Maketext/Fuzzy.pm
Locale::Maketext::Guts 1.13 /usr/share/perl/5.10/Locale/Maketext/Guts.pm
Locale::Maketext::GutsLoader 1.13
/usr/share/perl/5.10/Locale/Maketext/GutsLoader.pm
Locale::Maketext::Lexicon 0.86
/usr/local/share/perl/5.10.0/Locale/Maketext/Lexicon.pm
Locale::Maketext::Lexicon::Gettext 0.17
/usr/local/share/perl/5.10.0/Locale/Maketext/Lexicon/Gettext.pm
Log::Any 0.11 /usr/local/share/perl/5.10.0/Log/Any.pm
Log::Dispatch 2.41 /usr/local/share/perl/5.10.1/Log/Dispatch.pm
Log::Dispatch::Base 2.41 /usr/local/share/perl/5.10.1/Log/Dispatch/Base.pm
Log::Dispatch::File 2.41 /usr/local/share/perl/5.10.1/Log/Dispatch/File.pm
Log::Dispatch::Output 2.41
/usr/local/share/perl/5.10.1/Log/Dispatch/Output.pm
Log::Dispatch::Screen 2.41
/usr/local/share/perl/5.10.1/Log/Dispatch/Screen.pm
Log::Dispatch::Syslog 2.41
/usr/local/share/perl/5.10.1/Log/Dispatch/Syslog.pm
Mail::Address 2.12 /usr/local/share/perl/5.10.1/Mail/Address.pm
Mail::Field 2.12 /usr/local/share/perl/5.10.1/Mail/Field.pm
Mail::Field::AddrList 2.12
/usr/local/share/perl/5.10.1/Mail/Field/AddrList.pm
Mail::Field::Date 2.12 /usr/local/share/perl/5.10.1/Mail/Field/Date.pm
Mail::Field::Generic 2.12
/usr/local/share/perl/5.10.1/Mail/Field/Generic.pm
Mail::Header 2.12 /usr/local/share/perl/5.10.1/Mail/Header.pm
Mail::Internet 2.12 /usr/local/share/perl/5.10.1/Mail/Internet.pm
Mail::Mailer 2.12 /usr/local/share/perl/5.10.1/Mail/Mailer.pm
Mail::Util 2.12 /usr/local/share/perl/5.10.1/Mail/Util.pm
MIME::Base64 3.08 /usr/lib/perl/5.10/MIME/Base64.pm
MIME::Body 5.504 /usr/local/share/perl/5.10.1/MIME/Body.pm
MIME::Decoder 5.504 /usr/local/share/perl/5.10.1/MIME/Decoder.pm
MIME::Entity 5.504 /usr/local/share/perl/5.10.1/MIME/Entity.pm
MIME::Field::ContDisp 5.504
/usr/local/share/perl/5.10.1/MIME/Field/ContDisp.pm
MIME::Field::ConTraEnc 5.504
/usr/local/share/perl/5.10.1/MIME/Field/ConTraEnc.pm
MIME::Field::ContType 5.504
/usr/local/share/perl/5.10.1/MIME/Field/ContType.pm
MIME::Field::ParamVal 5.504
/usr/local/share/perl/5.10.1/MIME/Field/ParamVal.pm
MIME::Head 5.504 /usr/local/share/perl/5.10.1/MIME/Head.pm
MIME::Parser 5.504 /usr/local/share/perl/5.10.1/MIME/Parser.pm
MIME::QuotedPrint 3.08 /usr/lib/perl/5.10/MIME/QuotedPrint.pm
MIME::Tools 5.504 /usr/local/share/perl/5.10.1/MIME/Tools.pm
MIME::Words 5.504 /usr/local/share/perl/5.10.1/MIME/Words.pm
mod_perl 2.000004 /usr/lib/perl5/mod_perl2.pm
mod_perl2 2.000004 /usr/lib/perl5/mod_perl2.pm
ModPerl::Const 2.000004 /usr/lib/perl5/ModPerl/Const.pm
Module::Versions::Report 1.06
/usr/local/share/perl/5.10.0/Module/Versions/Report.pm
Net::CIDR 0.17 /usr/local/share/perl/5.10.1/Net/CIDR.pm
Net::LDAP 0.4001 /usr/local/share/perl/5.10.0/Net/LDAP.pm
Net::LDAP::ASN 0.08 /usr/local/share/perl/5.10.0/Net/LDAP/ASN.pm
Net::LDAP::Constant 0.08 /usr/local/share/perl/5.10.0/Net/LDAP/Constant.pm
Net::LDAP::Filter 0.15 /usr/local/share/perl/5.10.0/Net/LDAP/Filter.pm
Net::LDAP::Message 1.11 /usr/local/share/perl/5.10.0/Net/LDAP/Message.pm
Net::LDAP::Util 0.11 /usr/local/share/perl/5.10.0/Net/LDAP/Util.pm
overload 1.07 /usr/share/perl/5.10/overload.pm
Params::Util 1.07 /usr/local/lib/perl/5.10.1/Params/Util.pm
Params::Validate 0.95 /usr/local/lib/perl/5.10.0/Params/Validate.pm
parent 0.221 /usr/share/perl/5.10/parent.pm
PerlIO 1.06 /usr/share/perl/5.10/PerlIO.pm
PerlIO::scalar 0.07 /usr/lib/perl/5.10/PerlIO/scalar.pm
Plack::Request 1.0014 /usr/local/share/perl/5.10.1/Plack/Request.pm
Plack::Response 1.0014 /usr/local/share/perl/5.10.1/Plack/Response.pm
POSIX 1.17 /usr/lib/perl/5.10/POSIX.pm
re 0.09 /usr/lib/perl/5.10/re.pm
Regexp::Common 2010010201 /usr/local/share/perl/5.10.0/Regexp/Common.pm
Regexp::Common::_support 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/_support.pm
Regexp::Common::balanced 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/balanced.pm
Regexp::Common::CC 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/CC.pm
Regexp::Common::comment 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/comment.pm
Regexp::Common::delimited 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/delimited.pm
Regexp::Common::lingua 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/lingua.pm
Regexp::Common::list 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/list.pm
Regexp::Common::net 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/net.pm
Regexp::Common::net::CIDR 0.02
/usr/local/share/perl/5.10.1/Regexp/Common/net/CIDR.pm
Regexp::Common::number 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/number.pm
Regexp::Common::profanity 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/profanity.pm
Regexp::Common::SEN 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/SEN.pm
Regexp::Common::URI 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI.pm
Regexp::Common::URI::fax 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/fax.pm
Regexp::Common::URI::file 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/file.pm
Regexp::Common::URI::ftp 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/ftp.pm
Regexp::Common::URI::gopher 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/gopher.pm
Regexp::Common::URI::http 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/http.pm
Regexp::Common::URI::news 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/news.pm
Regexp::Common::URI::pop 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/pop.pm
Regexp::Common::URI::prospero 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/prospero.pm
Regexp::Common::URI::RFC1035 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/RFC1035.pm
Regexp::Common::URI::RFC1738 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/RFC1738.pm
Regexp::Common::URI::RFC1808 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/RFC1808.pm
Regexp::Common::URI::RFC2384 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/RFC2384.pm
Regexp::Common::URI::RFC2396 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/RFC2396.pm
Regexp::Common::URI::RFC2806 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/RFC2806.pm
Regexp::Common::URI::tel 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/tel.pm
Regexp::Common::URI::telnet 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/telnet.pm
Regexp::Common::URI::tv 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/tv.pm
Regexp::Common::URI::wais 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/URI/wais.pm
Regexp::Common::whitespace 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/whitespace.pm
Regexp::Common::zip 2010010201
/usr/local/share/perl/5.10.0/Regexp/Common/zip.pm
Regexp::IPv6 0.03 /usr/local/share/perl/5.10.1/Regexp/IPv6.pm
Role::Basic 0.13 /usr/local/share/perl/5.10.1/Role/Basic.pm
RT 4.2.2 /opt/rt4/sbin/…/lib/RT.pm
RT::Authen::ExternalAuth 0.15
/opt/rt4/local/plugins/RT-Authen-ExternalAuth/lib/RT/Authen/ExternalAuth.pm
RT::Extension::MandatoryOnTransition 0.04
/opt/rt4/local/plugins/RT-Extension-MandatoryOnTransition/lib/RT/Extension/MandatoryOnTransition.pm
RT::Extension::PriorityAsString 0.04
/opt/rt4/local/plugins/RT-Extension-PriorityAsString/lib/RT/Extension/PriorityAsString.pm
RT::Extension::SLA 0.07
/opt/rt4/local/plugins/RT-Extension-SLA/lib/RT/Extension/SLA.pm
Scalar::Util 1.21 /usr/lib/perl/5.10/Scalar/Util.pm
SelectSaver 1.02 /usr/share/perl/5.10/SelectSaver.pm
Socket 1.82 /usr/lib/perl/5.10/Socket.pm
Storable 2.20 /usr/lib/perl/5.10/Storable.pm
Stream::Buffered 0.02 /usr/local/share/perl/5.10.1/Stream/Buffered.pm
strict 1.04 /usr/share/perl/5.10/strict.pm
Sub::Exporter 0.987 /usr/local/share/perl/5.10.1/Sub/Exporter.pm
Sub::Exporter::Progressive 0.001006
/usr/local/share/perl/5.10.1/Sub/Exporter/Progressive.pm
Sub::Install 0.927 /usr/local/share/perl/5.10.1/Sub/Install.pm
Sub::Name 0.04 /usr/lib/perl5/Sub/Name.pm
Symbol 1.07 /usr/share/perl/5.10/Symbol.pm
Symbol::Global::Name 0.04
/usr/local/share/perl/5.10.1/Symbol/Global/Name.pm
Sys::Syslog 0.27 /usr/lib/perl/5.10/Sys/Syslog.pm
Text::ParseWords 3.27 /usr/share/perl/5.10/Text/ParseWords.pm
Text::Password::Pronounceable 0.30
/usr/local/share/perl/5.10.1/Text/Password/Pronounceable.pm
Text::Template 1.45 /usr/local/share/perl/5.10.0/Text/Template.pm
Text::Wrapper 1.02 /usr/local/share/perl/5.10.0/Text/Wrapper.pm
Tie::Hash 1.03 /usr/share/perl/5.10/Tie/Hash.pm
Time::HiRes 1.9719 /usr/lib/perl/5.10/Time/HiRes.pm
Time::JulianDay 2003.1125 /usr/local/share/perl/5.10.0/Time/JulianDay.pm
Time::Local 1.1901 /usr/share/perl/5.10/Time/Local.pm
Time::ParseDate 2006.0814 /usr/local/share/perl/5.10.0/Time/ParseDate.pm
Time::Timezone 2006.0814 /usr/local/share/perl/5.10.0/Time/Timezone.pm
Time::Zone 2.24 /usr/share/perl5/Time/Zone.pm
Try::Tiny 0.04 /usr/share/perl5/Try/Tiny.pm
UNIVERSAL 1.05 /usr/share/perl/5.10/UNIVERSAL.pm
UNIVERSAL::require 0.13 /usr/local/share/perl/5.10.0/UNIVERSAL/require.pm
URI 1.60 /usr/local/share/perl/5.10.1/URI.pm
URI::_punycode 0.04 /usr/local/share/perl/5.10.1/URI/_punycode.pm
URI::Escape 3.31 /usr/local/share/perl/5.10.1/URI/Escape.pm
URI::file 4.21 /usr/local/share/perl/5.10.1/URI/file.pm
URI::WithBase 2.20 /usr/local/share/perl/5.10.1/URI/WithBase.pm
utf8 1.07 /usr/share/perl/5.10/utf8.pm
vars 1.01 /usr/share/perl/5.10/vars.pm
warnings 1.06 /usr/share/perl/5.10/warnings.pm
warnings::register 1.01 /usr/share/perl/5.10/warnings/register.pm
XSLoader 0.10 /usr/lib/perl/5.10/XSLoader.pm

View this message in context: http://requesttracker.8502.n7.nabble.com/REST-mail-gateway-using-100-cpu-tp56255p56307.html

The situation become a little bit clearer:

The failing mail header:
From:
=?UTF-8?B?ICJUb21hcyBNYXLEjWl1bGlvbmlzIiA8VG9tYXMuTWFyY2l1bGlvbmlzQGJp?=
=?UTF-8?B?dGVzcGFydG5lcmlzLmx0Pg==?=

But it should be the following (RT works just fine with that):
Tomas.Marciulionis@bitespartneris.lt

Clients mail program, probably encodes all the header, no matter that there
are no non-ascii symbols in the second part of the header (
Tomas.Marciulionis@bitespartneris.lt);

The RT somehow can’t handle the second encoded part of FROM header and after
180s timeout I get:

HTTP request failed: 500 read timeout. Your webserver logs may have more
information or there may be a network problem.
/opt/rt4/bin/rt-mailgate: undefined server error

In the logs I can only see:
[8944] [Thu Jan 16 06:23:10 2014] [debug]: Encode::Guess guessed encoding:
ascii (/opt/rt4/sbin/…/lib/RT/I18N.pm:594)
[8946] [Thu Jan 16 08:35:30 2014] [debug]: Converting ‘utf-8’ to ‘utf-8’ for
text/plain - Subjectless message (/opt/rt4/sbin/…/lib/RT/I18N.pm:294)
[8946] [Thu Jan 16 08:35:30 2014] [debug]: Converting ‘cp1257’ to ‘utf-8’
for text/plain - Subjectless message (/opt/rt4/sbin/…/lib/RT/I18N.pm:294)
[8946] [Thu Jan 16 08:35:30 2014] [debug]: Converting ‘cp1257’ to ‘utf-8’
for text/html - Subjectless message (/opt/rt4/sbin/…/lib/RT/I18N.pm:294)
[8946] [Thu Jan 16 08:35:30 2014] [debug]: Encode::Guess guessed encoding:
ascii (/opt/rt4/sbin/…/lib/RT/I18N.pm:594)
[8946] [Thu Jan 16 08:35:30 2014] [debug]: Encode::Guess guessed encoding:
ascii (/opt/rt4/sbin/…/lib/RT/I18N.pm:594)
[8946] [Thu Jan 16 08:35:30 2014] [debug]: Encode::Guess guessed encoding:
ascii (/opt/rt4/sbin/…/lib/RT/I18N.pm:594)
[8946] [Thu Jan 16 08:35:30 2014] [debug]: Encode::Guess guessed encoding:
ascii (/opt/rt4/sbin/…/lib/RT/I18N.pm:594)
[8946] [Thu Jan 16 08:35:30 2014] [debug]: Encode::Guess guessed encoding:
ascii (/opt/rt4/sbin/…/lib/RT/I18N.pm:594)
[8946] [Thu Jan 16 08:35:30 2014] [debug]: Encode::Guess guessed encoding:
ascii (/opt/rt4/sbin/…/lib/RT/I18N.pm:594)

Kevin Falcone-2 wrote

From:
=?UTF-8?B?ICJUb21hcyBNYXLEjWl1bGlvbmlzIiA8VG9tYXMuTWFyY2l1bGlvbmlzQGJp?=
=?UTF-8?B?dGVzcGFydG5lcmlzLmx0Pg==?=

This line, in the mail was the problem, RT somehow hang when parsing this
in
I18N.pm. Any solution for this?

RT Version?

Also, send along your perl module version list from System
Configuration.

-kevin

attachment0 (243 bytes)
<http://requesttracker.8502.n7.nabble.com/attachment/56306/0/attachment0&gt;

Kevin Falcone-2 wrote

From:
=?UTF-8?B?ICJUb21hcyBNYXLEjWl1bGlvbmlzIiA8VG9tYXMuTWFyY2l1bGlvbmlzQGJp?=
=?UTF-8?B?dGVzcGFydG5lcmlzLmx0Pg==?=

This line, in the mail was the problem, RT somehow hang when parsing this
in
I18N.pm. Any solution for this?

RT Version?

Also, send along your perl module version list from System
Configuration.

-kevin

attachment0 (243 bytes)
<http://requesttracker.8502.n7.nabble.com/attachment/56306/0/attachment0&gt;

Kevin Falcone-2 wrote> On Wed, Jan 15, 2014 at 12:26:28PM -0800, andriuss wrote:

From:
=?UTF-8?B?ICJUb21hcyBNYXLEjWl1bGlvbmlzIiA8VG9tYXMuTWFyY2l1bGlvbmlzQGJp?=
=?UTF-8?B?dGVzcGFydG5lcmlzLmx0Pg==?=

This line, in the mail was the problem, RT somehow hang when parsing this
in
I18N.pm. Any solution for this?

RT Version?

Also, send along your perl module version list from System
Configuration.

-kevin

attachment0 (243 bytes)
<http://requesttracker.8502.n7.nabble.com/attachment/56306/0/attachment0&gt;

View this message in context: http://requesttracker.8502.n7.nabble.com/REST-mail-gateway-using-100-cpu-tp56255p56316.html

The situation become a little bit clearer:

The failing mail header:
From:
=?UTF-8?B?ICJUb21hcyBNYXLEjWl1bGlvbmlzIiA8VG9tYXMuTWFyY2l1bGlvbmlzQGJp?=
=?UTF-8?B?dGVzcGFydG5lcmlzLmx0Pg==?=

But it should be the following (RT works just fine with that):
From: =?UTF-8?B?VG9tYXMgTWFyxI1pdWxpb25pcw==?=
Tomas.Marciulionis@bitespartneris.lt

Clients mail program, probably encodes all the header, no matter that there
are no non-ascii symbols in the second part of the header (
Tomas.Marciulionis@bitespartneris.lt);

Encoding the entire header is definitely against the RFC. See the first
point on RFC 2047: MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text . What mail client?

  • Alex

I don’t think so.
First point, correct me if I’m wrong - An ‘encoded-word’ MUST NOT appear in
any portion of an ‘addr-spec’ :

It says, that you can’t have the following syntax: “Name Surname”
<name@=?UTF-8?B?abc=?=>

See RFC 2047: MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text, the examples section, where
the following is said to be correct syntax, untill the encoded word is self
contained:

=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=

View this message in context: http://requesttracker.8502.n7.nabble.com/REST-mail-gateway-using-100-cpu-tp56255p56353.html

I don’t think so.
First point, correct me if I’m wrong - An ‘encoded-word’ MUST NOT appear in
any portion of an ‘addr-spec’ :

It says, that you can’t have the following syntax: “Name Surname”
<name@=?UTF-8?B?abc=?=>

…are you attempting to claim that a From: header of
=?UTF-8?B?ICJUb21hcyBNYXLEjWl1bGlvbmlzIiA8VG9tYXMuTWFyY2l1bGlvbmlzQGJp?=
=?UTF-8?B?dGVzcGFydG5lcmlzLmx0Pg==?= is not an example of an
encoded-word appearing in some portion of an addr-spec? Like, the
addr-spec that should be written
Tomas.Marciulionis@bitespartneris.lt ? I’d say that’s an encoded word
appearing in a portion where an addr-spec is expected.

Regardless, see below.

See RFC 2047: MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text, the examples section, where
the following is said to be correct syntax, untill the encoded word is self
contained:

Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=

No. That is entirely different. The “subject” field is not a
“structured header”[1] – it merely consists of “*text”[2]. As such,
this follows rule (1) of [3]. The “From” field, however, is a
structured header the full ABNF of which can be found in [4]. As such,
you’re not allowed to replace the entire content with an encoded-words.
Per rule (3) of [3], “phrase” is the only place which an encoded-word is
allowed to be found in a structured field. And “phrase” can only occur
in one place in an “address”: specifically, before foo@example.com.

I guarantee that no widely-used email client chooses to format addresses
does encoding the way you’re insinuating. RT is clearly wrong to
consume CPU time parsing it, but it would be almost more wrong to parse
in the way you’re implying. My mail client, for instance, rightly
refuses to parse it at all, and leaves it as =?UTF-8?B?..?= when
displaying, and indeed when attempting to reply to such a message.

I am still morbidly curious to hear what software created that header.

  • Alex

[1] RFC 822: STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
[2] RFC 822: STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
[3] RFC 2047: MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text
[4] RFC 2822: Internet Message Format

Sorry for my lack of knowledge. Still I think that RT, to be more precise,
Email::Address:List module should reject this kind of header and not stuck
in infinity regex loop.

What I was able to get from mail sender, he was using Microsoft Outlook Web
App.

View this message in context: http://requesttracker.8502.n7.nabble.com/REST-mail-gateway-using-100-cpu-tp56255p56358.html

Sorry for my lack of knowledge. Still I think that RT, to be more precise,
Email::Address:List module should reject this kind of header and not stuck
in infinity regex loop.

Absolutely. We intend to address this shortly.

What I was able to get from mail sender, he was using Microsoft Outlook Web
App.

Interesting.

  • Alex

Glad to hear that. Waiting for the fix.

View this message in context: http://requesttracker.8502.n7.nabble.com/REST-mail-gateway-using-100-cpu-tp56255p56375.html

It will be re-queued and tried again
when it fails to submit to RT, so it’ll be somewhere in your queues

I find it to not always be true. For example when our mysql died then rt-
mailgate didn’t return any error BUT rt itself created bounces with “Ticket
creation failed: Mail delivery failed: returning message to sender”.

So this means customers messages were lost (we fortunately recovered these
from other sources), not requeued obviously and customers were scared with
“Ticket could not be created due to an internal error” mail bodies.

I would even mark this as a “important bug” (as loosing messages is important)
but well…

rt 4.0.18

-kevin

Arkadiusz Miśkiewicz, arekm / maven.pl

Glad to hear that. Waiting for the fix.

Please see the just-announced CVE-2014-1474, and
http://download.bestpractical.com/mirror/Email-Address-List-0.03.tar.gz
which resolves the issue.

  • Alex

It will be re-queued and tried again
when it fails to submit to RT, so it’ll be somewhere in your queues

I find it to not always be true. For example when our mysql died then rt-
mailgate didn’t return any error BUT rt itself created bounces with “Ticket
creation failed: Mail delivery failed: returning message to sender”.

I can’t replicate this. When RT has no database connection, RT produces
a server error, and as such rt-mailgate returns status 75, which is
“temporary failure, keep in queue and try again later.”

So this means customers messages were lost (we fortunately recovered these
from other sources), not requeued obviously and customers were scared with
“Ticket could not be created due to an internal error” mail bodies.

I would even mark this as a “important bug” (as loosing messages is important)
but well…

It is absolutely an important bug – RT should not lose incoming email.
If you can replicate it, please submit the replication strategy as a bug
to rt-bugs@bestpractical.com

  • Alex