Skip to Content.
Sympa Menu

en - Re: [sympa-users] Sympa hung processing digest with 100% CPU

Subject: The mailing list for listmasters using Sympa

List archive

Chronological Thread  
  • From: David Verdin <address@concealed>
  • To: Maric Michaud <address@concealed>
  • Cc: address@concealed
  • Subject: Re: [sympa-users] Sympa hung processing digest with 100% CPU
  • Date: Mon, 16 May 2011 12:02:05 +0200

Hi guys,

Thanks to Maric for suggesting this method.

However, having tested it on our production environment, we saw that the the new "Prep" option doesn't seem to be completely equivalent to the former "Userbreaking" option.
For one, it doesn't have the bug. Most concerning, it appear to do break some URIs.
For example, in messages sent to moderators, the mailto URL:
<mailto:address@concealed?subject=DISTRIBUTE%20listname%20a1d3bfecb352515c3bc62f19fb5a4c0a>

becomes:

<mailto:address@concealed?subject=DISTRIBUTE%20listname
%202590b1030dcdf3b12be59a88d2a2eab9>
thus preventing users from clicking it to distribute a message.

I'll alert Soji about this problem. Please let me know if you met the same troubles or not.

Regards,

David

Le 11/05/11 14:44, Maric Michaud a écrit :
address@concealed">Hi all,

I came into the same trouble as Omen Wild reported in a previous mail.

The processing of two of my digests hung on a specific message. I handle it by removing the incriminated messages from the digest file and the rest was processed correctly.

I first thought that there was something wrong in the mail that should not happen again, but the second time I tried to understand exactly where the problem lies.

The two mails were both multipart/related nested in multipart/mixed content, but I don't see how exactly it is related to the real problem.

The loop happens in Text::LineFold->fold method call used in tools::wrap_text.

It seems that the problem vanish if I use Prep instead of obsoleted UserBreaking parameter name to new() (tools.pm line 3891).

I tried it on both messages with dummy code and it corrects the problem, I'll try the patch on my server in production next weeks.


The patch :

--- tools.pm    2011-05-11 14:01:47.000000000 +0200
+++ /home/sympa/bin/tools.pm    2011-05-11 14:00:33.000000000 +0200
@@ -3888,7 +3888,7 @@
     $text = Text::LineFold->new(
            Language => &Language::GetLang(),
            OutputCharset => (&Encode::is_utf8($text)? '_UNICODE_': 'utf8'),
-           Prep => ['NONBREAKURI',
+           UserBreaking => ['NONBREAKURI',
                             [qr/\b$emailre\b/ => sub { ($_[1]) }],
                             ],
            ColumnsMax => $cols




My test program:


#!/usr/bin/perl -I. -I/home/sympa/bin/
use Conf;
use MIME::Entity;
use MIME::EncWords;
use MIME::Parser;
use PlainDigest;

#open MAIL, 'mail.eml';
open MAIL, 'mail_bloquant2.eml';
my @text = <MAIL>;

my $parser = new MIME::Parser;
$parser->output_to_core(1);
$parser->extract_uuencode(1);
$parser->extract_nested_messages(1);
my $mail = $parser->parse_data(\@text);

$mail->PlainDigest::plain_body_as_string();
foreach $s ($mail->parts) {
  printf("  %s\n", $s->effective_type);
}


The two messages are attached.



sympa check:

your version of perl is OK (5.010001  >= 5.008)

Archive::Zip         Archive-Zip    OK (1.30   >= 1.05)
CGI                  CGI            OK (3.49   >= 3.35)
DBD::mysql           Msql-Mysql-modulesOK (4.016  >= 4.008)
DBI                  DBI            OK (1.612  >= 1.48)
DB_File              DB_FILE        OK (1.82   >= 1.75)
Digest::MD5          Digest-MD5     OK (2.39   >= 2.00)
Encode               Encode         OK (2.35   >= 1.0)
FCGI                 FCGI           OK (0.71   >= 0.67)
File::Copy::Recursive File-Copy-RecursiveOK (0.38   >= 0.36)
HTML::FormatText     HTML-Format    OK (2.04   >= 1.0)
HTML::StripScripts::Parser HTML-StripScripts-ParserOK (1.03   >= 1.03)
HTML::TreeBuilder    HTML-Tree      OK (3.23   >= 1.0)
IO::Scalar           IO-stringy     OK (2.110  >= 1.0)
LWP                  libwww-per     OK (5.836  >= 1.0)
Locale::TextDomain   libintl-perl   OK (1.20   >= 1.0)
MHonArc::UTF8        MHonArc        was not found on this system.
Setting FTP Passive mode
-> Usage of this module: mhonarc is used to build Sympa web archives
-> Install module MHonArc::UTF8 ? [y]n
MIME::Base64         MIME-Base64    OK (3.08   >= 3.03)
MIME::Charset        MIME-Charset   OK (1.008  >= 1.006.2)
MIME::EncWords       MIME-EncWords  OK (1.012  >= 1.010)
MIME::Lite::HTML     MIME-Lite-HTML OK (1.23   >= 1.23)
MIME::Tools          MIME-tools     OK (5.428  >= 5.423)
Net::Netmask         Net-Netmask    OK (1.9015 >= 1.9015)
Template             Template-ToolkitOK (2.22   >= 1.0)
Term::ProgressBar    Term-ProgressBarOK (2.09   >= 2.09)
Text::LineFold       Unicode-LineBreakOK (2011.03 >= 0.008)
Time::HiRes          Time-HiRes     OK (1.9719 >= 1.29)
URI::Escape          URI-Escape     OK (3.30   >= 1.35)
XML::LibXML          XML-LibXML     OK (1.70   >= 1.0)


File::NFSLock        File-NFSLock   OK (1.20   >= 1.0)
IO::Socket::SSL      IO-Socket-SSL  OK (1.33   >= 0.90)
Mail::DKIM           Mail-DKIM      OK (0.38   >= 0.36)
Net::LDAP            perl-ldap      OK (0.4001 >= 0.27)
Net::SMTP            libnet         OK (2.31   >= 1.0)
SOAP::Lite           SOAP-Lite      OK (0.712  >= 0.60)


Greetings,


--
David Verdin
Comité réseau des universités

Due to the limitations of human brain, I fail to remember all the mails.
So if you want your bug reports or feature requests for Sympa to be processed, please post them to the Sympa tracker

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature




Archive powered by MHonArc 2.6.19+.

Top of Page