Fixing the 32/64-bit unsubscribe problem

Bruce Guenter <[email protected]> Tue, 30 Oct 2007 16:05:32 -0600
Newsgroups gmane.mail.ezmlm
Message-ID <[email protected]>
Hi.

As it stands right now, the standard file-based subscriber database
created under 32-bit systems is different that that created under 64-bit
systems due to use of "unsigned long" instead of "uint32" for the hash
data type.  This causes problems where the files for a list are moved
from one system type to another.

As I see it, I have two options for fixing this bug:

1. Leave things as-is, requiring sites to choose either 32-bit or 64-bit
access to the database only.  Any sites that move from one to the other
would have to dump and reload the subscriber database.

2. Nail down the data type to uint32.  This would break the subscriber
databases on all 64-bit systems, so they would all need to dump and
reload on upgrade.

3. Try to hash each address with both 32 and 64-bit hashes on 64-bit
systems when searching for an address, resulting in 4 searches per
address (32-bit normal, 32-bit lower-cased, 64-bit normal, 64-bit
lower-cased).

I'm not particularly happy with any of the solutions, but I don't see
any other way to do it.

-- 
Bruce Guenter <[email protected]>                http://untroubled.org/
	I do custom software development.  Email me for details.
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFHJ6qs6W+y3GmZgOgRAv6jAJ98JdRTHG1Xk3aEhCPaUThAR18qvgCgpj8v
id7pMRcP6Td19Yv7ZJtlb5A=
=haKj
-----END PGP SIGNATURE-----