LoginHomeBugs & FeaturesDocumentationDownloadForums

STR #17

Status:5 - New
Priority:3 - Moderate, e.g. unable to compile the software
Scope:3 - Applies to all machines and operating systems
Subsystem:Unassigned
Summary:existing Message-ID stripped and replaced
Version:1.44rc4
Created By:AdminTreenet
Assigned To:Unassigned
Fix Version:Unassigned
Update Notification:

Receive EMails Don't Receive EMails


Trouble Report Files:

Post File

Name/Time/DateFilename
AdminTreenet
11:31 May 04, 2005
bad-message-id.txt

Trouble Report Dialog:

Post Text

Name/Time/DateText
AdminTreenet
11:31 May 04, 2005
again with the mail gateway.
Porting a mailman list through the gateway strips existing Message-ID and adds a new group-tagged one. Leaving the References header in place this will lead directly to threading problems in usenet.


Attached are the full headers of original mail and newsd post.
erco
21:33 May 04, 2005
Yes, the Message-ID is swapped out for a 'newsd' message ID
to ensure the article number is embedded in the ID to ensure
requests for the article by ID# can be quickly converted
to a filename on the file system.

We can certainly modify it to retain the original inbound Message-ID,
but I think this would create a situation that messes up the current logic in Group::FindArticleByMessageID().

Mike -- if we bring in foreign message id's, do you see a clear route
to ensure this doesn't affect FindArticleByMessageID()'s logic that
parses the message number from the ID? I didn't write that code, so I'm not sure what the best approach should be.

My thinking is the options are:

    1) Allow foreign message-ids, but change the newsd format
       of message IDs to be unique, so there's no way a foreign
       ID can be misinterpreted as a newsd ID.

    2) Disallow foreign message-ids, rewriting them (as it does now),
       but rethreading the messages.

#1 means that old newsd databases would have to be 'converted' to the
'new' format, which kinda sucks, but would ensure proper message threading for foreign messages. It also means that there would be more chances of the 'slow linear lookup' case in FindArticleByMessageID() being executed, if newsreaders request messages by ID instead of by number.

#2 means rethreading would need to be done on the fly, as foreign messages come in. That's tricky, because rethreading means the old IDs have to be saved 'somewhere', and the References: path would have to be rebuilt.  The old IDs could be saved either in the article itself as a different name (eg. X-Original-Message-ID) or in a separate btree based ID translation file.

Mike, any suggs?
AdminTreenet
22:09 May 04, 2005
I'm using leafnode as a feed distributor.

They have a directory with a file hardlink for each message-ID over to the group hierarchy and actual message file.

I'm not sure how portable this is to any other OS using newsd. But its a clean forward-compatible way to do the upgrade.

Maybe I sohould have placed this into feature-requests v2.0, but for me here its kind of urgent.