Hi,
The definition of self.datestr does not exist in pipermail.py.
How about using the following patch?
--- pipermail.py 7 Jan 2004 02:41:46 -0000 1.1.1.1
+++ pipermail.py 20 Feb 2004 13:19:33 -0000
@@ -240,6 +240,11 @@
self._last_article_time = date
self.date = '%011i' % date
+ datestr = message.get('date', None)
+ if datestr is None:
+ datestr = message.get('x-list-received-date', None)
+ self.datestr = datestr
+
def __repr__(self):
return '<Article ID = '+repr(self.msgid)+'>'
-- shigeno
Hi Guys,
Due to running out mailman server on dodgy old hardware with a geriatric
version of XFS we are quite often seeing corrupt .db an .pck files.
This is Mailman 2.1.4 on Python 2.3.3
This usually results in something like:
Jan 06 16:18:11 2004 (1134) Uncaught runner exception: invalid load key, '^@'.
Jan 06 16:18:11 2004 (1134) Traceback (most recent call last):
File "/usr/local/mailman/Mailman/Queue/Runner.py", line 105, in _oneloop
self._onefile(msg, msgdata)
File "/usr/local/mailman/Mailman/Queue/Runner.py", line 130, in _onefile
mlist = self._open_list(listname)
File "/usr/local/mailman/Mailman/Queue/Runner.py", line 175, in _open_list
mlist = MailList.MailList(listname, lock=0)
File "/usr/local/mailman/Mailman/MailList.py", line 124, in __init__
self.Load()
File "/usr/local/mailman/Mailman/MailList.py", line 583, in Load
dict, e = self.__load(file)
File "/usr/local/mailman/Mailman/MailList.py", line 556, in __load
dict = loadfunc(fp)
UnpicklingError: invalid load key, '^@'.
So looking at MailList.py I see:
try:
try:
dict = loadfunc(fp)
if type(dict) <> DictType:
return None, 'Load() expected to return a dictionary'
except (EOFError, ValueError, TypeError, MemoryError,
cPickle.PicklingError), e:
return None, e
finally:
fp.close()
# Update timestamp
self.__timestamp = mtime
return dict, None
in the __Load method of MailList Class.
that except statement should include cPickle.UnpicklingError? I think the
error catching in Runner.py will then print out the name of the list it died
on although it would be nice if MailList.py logged the filename it choked on.
e.g:
try:
dict = loadfunc(fp)
if type(dict) <> DictType:
return None, 'Load() expected to return a dictionary'
except (EOFError, ValueError, TypeError, MemoryError,
cPickle.PicklingError, cPickle.UnpicklingError), e:
syslog('error', 'problem reading file: %s', dbfile)
return None, e
does that make sense or have I misunderstood something?
We see the same sort of thing with corrupt archive pickles.
Feb 25 21:16:39 2004 (4537) Uncaught runner exception: bad marshal data
Feb 25 21:16:39 2004 (4537) Traceback (most recent call last):
File "/usr/local/mailman/Mailman/Queue/Runner.py", line 110, in _oneloop
self._onefile(msg, msgdata)
File "/usr/local/mailman/Mailman/Queue/Runner.py", line 160, in _onefile
keepqueued = self._dispose(mlist, msg, msgdata)
File "/usr/local/mailman/Mailman/Queue/ArchRunner.py", line 73, in _dispose
mlist.ArchiveMail(msg)
File "/usr/local/mailman/Mailman/Archiver/Archiver.py", line 215, in
ArchiveMa
il
h.processUnixMailbox(f)
File "/usr/local/mailman/Mailman/Archiver/pipermail.py", line 569, in
processU
nixMailbox
self.add_article(a)
File "/usr/local/mailman/Mailman/Archiver/pipermail.py", line 615, in
add_arti
cle
article.parentID = parentID = self.get_parent_info(arch, article)
File "/usr/local/mailman/Mailman/Archiver/pipermail.py", line 647, in
get_pare
nt_info
article.subject)
: File "/usr/local/mailman/Mailman/Archiver/HyperDatabase.py", line 311, in
getO
ldestArticle
self.__openIndices(archive)
File "/usr/local/mailman/Mailman/Archiver/HyperDatabase.py", line 251, in
__op
enIndices
t = DumbBTree(os.path.join(arcdir, archive + '-' + i))
File "/usr/local/mailman/Mailman/Archiver/HyperDatabase.py", line 65, in
__ini
t__
self.load()
File "/usr/local/mailman/Mailman/Archiver/HyperDatabase.py", line 170, in
load
self.dict = marshal.load(fp)
ValueError: bad marshal data
So in HyperDatabase.py the load method of DumbBTree
def load(self):
try:
fp = open(self.path)
try:
self.dict = marshal.load(fp)
finally:
fp.close()
except IOError, e:
if e.errno <> errno.ENOENT: raise
pass
except EOFError:
pass
else:
self.__sort(dirty=1)
Nothing there to catch ValueError:
I have to say that I don't understand HyperDatabase.py because it doesn't
appear to do anything with exceptions.
Can someone enlighten me?
I'm going to try the change to MailList.py on a test server at some point over
the next week.
TIA,
Huw
--
| Huw Lynes | The Moving Picture Company |
| System Administrator | 127 Wardour Street |
|.........................| London, W1F 0NL |
Well, for some reason, I never got this reply, so I apologize for the
slow response.
>X-Sieve: CMU Sieve 2.2
>Subject: Re: [Mailman-Developers] Potential shortcoming in check_perms
>From: Barry Warsaw <barry(a)python.org>
>To: Bill Moran <wmoran(a)potentialtech.com>
>Organization: Damned Crazy Followers of the Horns
>X-Mailer: Ximian Evolution 1.4.5
>Date: Wed, 25 Feb 2004 16:16:41 -0500
>Cc: mailman-developers(a)python.org
>X-BeenThere: mailman-developers(a)python.org
>X-Mailman-Version: 2.1.4
>List-Id: GNU Mailman developers <mailman-developers.python.org>
>List-Unsubscribe:
><http://mail.python.org/mailman/listinfo/mailman-developers>,
> <mailto:mailman-developers-request@python.org?subject=unsubscribe>
>List-Archive: <http://mail.python.org/pipermail/mailman-developers>
>List-Post: <mailto:mailman-developers@python.org>
>List-Help: <mailto:mailman-developers-request@python.org?subject=help>
>List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-developers>,
> <mailto:mailman-developers-request@python.org?subject=subscribe>
>Sender: mailman-developers-bounces+web=3dresearch.com(a)python.org
>X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at 3dresearch.com
>X-Spam-Checker-Version: SpamAssassin 2.61 (1.212.2.1-2003-12-09-exp) on
> dorabella.3dresearch.com
>X-Spam-Level:
>X-Spam-Status: No, hits=-4.9 required=8.0 tests=BAYES_00 autolearn=ham
> version=2.61
>X-Sanitizer: 3D RESEARCH Anomy mail filter
>
>On Tue, 2004-02-24 at 11:52, Bill Moran wrote:
>
> > So, I was wondering what people thought about updating the check_perms
> > script to check file ownerships as well. Is is possible? It sure
> > seems like it would be helpful!
>
>check_perms checks group ownership. Can you provide more detail about
>what was broken, and specifically what files needed to be checked?
Unfortunately, I don't know. It was one of those situations where a
production list server was offline and multiple people were working on
it.
I do know, for a fact, that at one point check_perms was saying that
everything was OK, and yet we could not access the list archives. I
know that's almost no help at all, but file it away in case it seems
to happen again with someone who's capable of getting you useful
details. The symptoms were, specifically, that when accessing the
list archives, all links linked to the same message.
I'm going to try to do some post-chaos investigation on the problem
next week. If I find anything of use about what went wrong and why,
I'll pass it on.
I apologize for complaining without having enough details to helpful.
--
Bill Moran
Potential Technologies
http://www.potentialtech.com
Hi Barry,
Here is a report on 2.1.5 alpha.
A user hited unsbscribe button on his options page and got this error.
Looks like 'assert' is not needed because 'Locked()' locks the list
if it is not locked.
Bug in Mailman version 2.1.5a4
We're sorry, we hit a bug!
If you would like to help us identify the problem, please email a copy
of this page to the webmaster for this site with a description of what
happened. Thanks!
Traceback:
Traceback (most recent call last):
File "/usr/local/mailman/scripts/driver", line 87, in run_main
main()
File "/usr/local/mailman/Mailman/Cgi/options.py", line 179, in main
mlist.ConfirmUnsubscription(user, userlang)
File "/usr/local/mailman/Mailman/MailList.py", line 1215, in
ConfirmUnsubscription
cookie = self.pend_new(Pending.UNSUBSCRIPTION, addr)
File "/usr/local/mailman/Mailman/Pending.py", line 63, in pend_new
assert self.Locked()
AssertionError
--
Tokio Kikuchi, tkikuchi@ is.kochi-u.ac.jp
http://weather.is.kochi-u.ac.jp/
I've created a list specifically for discussing Mailman 3 design and
development. Feel free to subscribe at:
http://mail.python.org/mailman/listinfo/mailman3-dev
I'd like to keep MM3 discussions off the main mailman-developers list as
much as possible. The list will be open and will be run with
essentially the same policies as mailman-developers and mailman-users,
except that it will reject posts by non-members. Sorry, but I think
this will help keep the signal to noise ratio high and it reduces my
administrative burden.
I want to give the list a few days to get populated and then I'll start
posting some issues in preparation for the upcoming sprint at Pycon.
-Barry
Hi,
I found an spam vulnarability in mailman public archives.
However (you can choose to) mailaddresses in public archives are spam
protected because @ will be replaced in " at " or " op " in both the txt
and the html files, in the raw mbox file are still being the unprotected email addresses.
I found this bug by change: after I subscribed a brand-new mailaddress to a
public-archive list, shortly after that I recieved spam. A google search to this brand-new
mail address brought me to the mbox file where it just stays unprotected.
My idea to solve this:
- if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS is set (admin wants
mail adresses to be secured) then the "fullarch" replacement in
archtoc.html won't be the default ../%s.mbox/%s.mbox % listname but
mlist.GetScriptUrl("private")/../%s.mbox/%s.mbox % listname
This has to be set in Archives/HyperArch.py near line 692 in def
htmlTOC.
So if list admin wants their archives to be spam-secured,
the link to the mbox file will be through the private
cgi, thus needs a password.
The private CGI program however, if no login-cookie already found,
returns a login-form with form-action just the URL to the private list archives, not to
the mbox file. Also something to fix.
For futher completion:
- if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS is set there
won't be made symlinks of the mbox files. This has to be written in
Archives/Archiver.py near line 234 in def CheckHTMLArchiveDir.
I'm going to write code of it, is it something to post on this mailing list?
/Bastiaan
I'm new to this list.
I recently ran into some problems upgrading mailman 2.1.3 to 2.1.4.
In the end, it turned out that check_perms thought everything was OK,
but it really was a permission problem. The reason check_perms didn't
detect it is the problem was with file ownership (something in the
FreeBSD port appears to have changed the default user/group for
mailman, but that's a seperate issue ...)
So, I was wondering what people thought about updating the check_perms
script to check file ownerships as well. Is is possible? It sure
seems like it would be helpful!
--
Bill Moran
Potential Technologies
http://www.potentialtech.com
I edited the archive index.html folder for my mailing list. I also
edited the date.html and subject.html to have the appearance I
wanted. Everything looked good until there was a post.
When a post is made to the list all my data is erased and the
archive index.html, date.html, and subject.html went back to
default.
Why is this?
How can I change the archive files to look the way I want?
I've had a lot of requests recently for information about Mailman
hosting. As a general rule I don't like to recommend any particular
hosting company. But if you do provide Mailman hosting facilities,
please make sure you've added yourself to the PythonHosting wiki:
http://www.python.org/cgi-bin/moinmoin/PythonHosting
I usually point people here for more information, so please make sure
you're on that list. Now to check the FAQ and see if it points here...
-Barry