[Tools-team] Datatracker Patch Report

Glen Barney <glen@amsl.com> Tue, 09 November 2010 02:31 UTC

Return-Path: <glen@amsl.com>
X-Original-To: tools-team@core3.amsl.com
Delivered-To: tools-team@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 50CF528C18B; Mon, 8 Nov 2010 18:31:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level:
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MJBdgl-uGnje; Mon, 8 Nov 2010 18:31:38 -0800 (PST)
Received: from mail.amsl.com (mail.amsl.com [64.170.98.20]) by core3.amsl.com (Postfix) with ESMTP id 1F26728C126; Mon, 8 Nov 2010 18:31:14 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by c1a.amsl.com (Postfix) with ESMTP id 05836E08C1; Mon, 8 Nov 2010 18:31:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
Received: from c1a.amsl.com ([127.0.0.1]) by localhost (c1a.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id k5Heia3LhIi5; Mon, 8 Nov 2010 18:31:36 -0800 (PST)
Received: from [192.168.1.100] (173-8-133-91-SFBA.hfc.comcastbusiness.net [173.8.133.91]) by c1a.amsl.com (Postfix) with ESMTPSA id A8442E0834; Mon, 8 Nov 2010 18:31:36 -0800 (PST)
Message-ID: <4CD8B280.9060404@amsl.com>
Date: Mon, 08 Nov 2010 18:31:28 -0800
From: Glen Barney <glen@amsl.com>
Organization: AMS
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.12) Gecko/20101027 Lightning/1.0b2 Thunderbird/3.1.6
MIME-Version: 1.0
To: "codesprints@ietf.org" <codesprints@ietf.org>, Russ Housley <housley@vigilsec.com>, Henrik Levkowetz <henrik@levkowetz.com>, tools-development@ietf.org, tools-team@ietf.org
X-Enigmail-Version: 1.1.1
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Subject: [Tools-team] Datatracker Patch Report
X-BeenThere: tools-team@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "The purpose of the TOOLS team is to provide IETF feedback and guidance during the development of software tools to support various parts of IETF activities." <tools-team.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tools-team>, <mailto:tools-team-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tools-team>
List-Post: <mailto:tools-team@ietf.org>
List-Help: <mailto:tools-team-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-team>, <mailto:tools-team-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 09 Nov 2010 02:31:59 -0000

All -

An emergency patch has been applied to the live datatracker.  This is a
report on that patch.

We received reports today that Internet Draft announcements were not
being received by people.  Specifically, many people in regular
single-message-delivery mode were not receiving the email; however,
digest readers were receiving it.  One person reported that MIME headers
appeared to be malformed.

Nothing had changed on the AMS end since this was working.  The old ID
Submission Tool was not modified (except for a reopening-time patch,
which was not related), and mailman, postfix, and other MTA chain tools
were not modified.

What had changed, however, was that we were now processing scheduled
announcements through the datatracker.  I attempted to find Henrik, but
he was unavailable.  I did reach Robert Sparks, but he had not been
involved in this change.

I investigated backup copies of the messages on the server.  I found
that the Content-type header was being squashed to lowercase.  This was
causing the IDST "NextPart" boundary to be squashed in the header to
"nextpart".  This, in turn, was causing many MTAs (and MUAs) to fail to
receive and/or parse the message because of the malformed headers and
MIME structure.

Armed with this information I dove into the datatracker code.  I traced
things down to the following file:

	web/ietf/announcements/send_scheduled.py

Line 16 said this:
    content_type = announcement.content_type.lower()

I changed it to this:
    content_type = announcement.content_type

That was to fix the squashing, but I also noticed that later code
depended on that squashing:

Line 20 said this:
    elif 'multipart' in content_type:

Since the IDST injects records into the database with a Content Type of
"Multipart/Mixed" (instead of "multipart/mixed"), I changed it to this:
    elif 'ultipart' in content_type:

(I just removed the "M" from the test).

These two changes allowed I-D announcements to go through and be
processed and received correctly.  I then went in and requeued all the
sent mail in the database from November 1 onward, and all those messages
did subsequently get processed correctly.

Doubtless someone will want to go in and do a cleaner correction for
this problem - I was acting without Henrik's guidance on an emergency
basis, just to get those announcements fixed and flowing again.

Hopefully this information will facilitate a fix for the next update.
Sorry if I treaded on toes here but as I'm sure you understand, "In an
emergency, anything goes."  Please let me know if further information is
needed.

Thanks,
Glen