Re: ezmlm-list vs ezmlm-issubn on AMD64

Bruce Guenter <[email protected]>
Newsgroups gmane.mail.ezmlm
Message-ID <[email protected]>
On Wed, Aug 30, 2006 at 09:06:07PM -0400, Glen Stewart wrote:
> I had an interesting problem crop up when migrating groups from ezmlm-idx .4x 
> on i686 to 5.x on AMD64...
> 
> After the upgrade, I got lots of reports that people were unable to post to 
> the groups that they owned and were subscribed to.  Upon investigating, I 
> discovered that the ezmlm-list command was able to list the subscriber, but 
> the ezmlm-issubn command didn't acknowledge the subscription.

I can confirm this, and I know why.  All subscribers are hashed down to
a set of 53 directory tables, and ezmlm-idx only looks at one of those
tables to determine if a subscriber exists.  However, it looks at all
tables when listing subscribers.  The problem is that the variable used
to compute the has is declared as an "unsigned long", which is a 64-bit
integer on AMD64 (and any other 64-bit system) but only a 32-bit integer
on ia32.  This results in a differing hash code on different systems.

Here's the problem, however: I can fix that to always use a 32-bit
variable internally, but then any list that was created with the old
version will break with the new version.  I can leave it as-is, and the
problem you describe will continue to happen.  Either way, it's broken.

> What I ended up doing was to use ezmlm-list to dump the members of each group 
> to a text file, delete the original subscriber data files, and rebuild them 
> from scratch using the ezmlm-sub command.  After doing this, ezmlm-issubn AND 
> ezmlm-list seemed to be in sync.

That's the only way to fix it, yes.

> BUT, it appears the problem is creeping back again.  I created a new group 
> yesterday, and see the same address subscribed TWICE, in the same lower-case.

This however should not be possible, unless the list is being accessed
by differing systems.
-- 
Bruce Guenter <[email protected]>                http://untroubled.org/
OpenPGP key: 699980E8 / D0B7 C8DD 365D A395 29DA  2E2A E96F B2DC 6999 80E8
	I do custom software development.  Email me for details.
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFFW9Ot6W+y3GmZgOgRAsMeAJ9BcbnkYGAnPcMSM/teHIAO7y6ZXQCfaGd7
DkViVRtOqSm941sACh7/A48=
=Qw7V
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.