Hi,

On Mon, 19 Dec 2005, Arrigo Marchiori wrote:

this is the first message I write here. I'm sorry to introduce myself with
this frightening problem, but I just encountered it... I hope it's
frightening just for me! :-|

I'm using SUSE Linux 10.0, installed from an Eval DVD and switched right
afterwards to an OSS repository (so I guess this is the correct list). My
computer is an Athlon64, I'm running the 64-bit edition of Linux.

This is the problem: md5sums gives _different_ output on the _same_ file!

[EMAIL PROTECTED]:~/temp> dd if=/dev/urandom bs=1M count=300 of=test.dat
300+0 records in
300+0 records out
314572800 bytes (315 MB) copied, 69.1124 seconds, 4.6 MB/s
[EMAIL PROTECTED]:~/temp> md5sum test.dat
23a3f9ea48b3722df250dc5b6d378381  test.dat
[EMAIL PROTECTED]:~/temp> md5sum test.dat
23a3f9ea48b3722df250dc5b6d378381  test.dat
[EMAIL PROTECTED]:~/temp> md5sum test.dat
43e7f605c7d1b60373156bd453795e85  test.dat
[EMAIL PROTECTED]:~/temp>

Please believe me, I'm not joking: this is the actual output of md5sum, I
gave those commands one right after the other, so the test.dat file wasn't
touched among the tests.

After some minutes I ran md5sum again and it gave the same output as the
first two runs:

[EMAIL PROTECTED]:~/temp> md5sum test.dat
23a3f9ea48b3722df250dc5b6d378381  test.dat
[EMAIL PROTECTED]:~/temp>

The md5sum is installed in my system is ver. 5.3.0, it's the default
installed by SUSE. My system is up to date with the latest updates from
YOU. The partition I've been working on is 46 GB large, formatted with
ReiserFS, on an IDE hard disk.

As a test, i downloaded version 5.93 of GNU coreutils, compiled it (I just
ran ./configure and make) and ran this new md5sum:

That version gave yet some different output:

[EMAIL PROTECTED]:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat
23a3f9ea48b3722df250dc5b6d378381  /home/arrigo/temp/test.dat
[EMAIL PROTECTED]:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat
23a3f9ea48b3722df250dc5b6d378381  /home/arrigo/temp/test.dat
[EMAIL PROTECTED]:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat
23a3f9ea48b3722df250dc5b6d378381  /home/arrigo/temp/test.dat
[EMAIL PROTECTED]:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat
583caa801a1f27fc9cfcd783f5d94ec7  /home/arrigo/temp/test.dat
[EMAIL PROTECTED]:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat
23a3f9ea48b3722df250dc5b6d378381  /home/arrigo/temp/test.dat
[EMAIL PROTECTED]:~/temp/coreutils/coreutils-5.93/src>

Again, the `real' value of the MD5 hash looks like the one starting with
"23a" while sometimes I encountered different values. E.G. the 5.93
version, after some more trials, gave the following output:

[EMAIL PROTECTED]:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat
58913fa33641eb0bfa398f1643412259  /home/arrigo/temp/test.dat
[EMAIL PROTECTED]:~/temp/coreutils/coreutils-5.93/src>

That is different from any of the previous.

Does anyone you have a clue about the cause of this? You know, computers
are supposed to do correct calculations, that is that the same data should
give always the same result!...

My only idea right now is about the 64-bit system. Perhaps some other
32-bit running program switches the CPU in 32-bit mode, changing the
results of md5sum?

I tried re-compiling the coreutils in 32-bit version, that is running:
$ CC="gcc -m32" ./configure
$ CC="gcc -m32" make

The resulting md5sum binary gave me, after some trials, another different
value:

9f30d42e54af45b879700b776f1247e9  /home/arrigo/temp/test.dat

Please let me know if you need any more information. If you want to repeat
the steps I followed to exploit this, just pick a ~300 MB file and run
repeatedly md5sum on it. I don't know if it works with different sizes,
too.

Either your CPU is too hot, or you have memory faults.

Cheers -e
--
Eberhard Moenkeberg ([EMAIL PROTECTED], [EMAIL PROTECTED])

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to