Bug? In TMinuit

Hi, i’ve found what seems to be a bug in TMinuit. It is related to the scan command. I include a small script that shows the problem.

run with

.L minuittest.C+
minuittest(); //Should work
minuittest(false); //Should crash

cheers

Joa
miniuttest.C (4.95 KB)

I cannot reproduce your problem with the latest versions of ROOT.
Which version are you using?

Rene

Hi,

I’m using 5.16/00. With g++ (GCC) 3.4.6 20060404 (Red Hat 3.4.6-8).

A ldd on the complied so (minuittest_C.so) gives

ldd ~/structureNucleaire/spectroscopie/joa/roottest/miniuttest_C.so
libMatrix.so => /home/jljungva/root/lib/root/libMatrix.so (0x0000002a9565d000)
libHist.so => /home/jljungva/root/lib/root/libHist.so (0x0000002a959ca000)
libRIO.so => /home/jljungva/root/lib/root/libRIO.so (0x0000002a95dc7000)
libGraf.so => /home/jljungva/root/lib/root/libGraf.so (0x0000002a9600c000)
libGpad.so => /home/jljungva/root/lib/root/libGpad.so (0x0000002a96400000)
libGX11.so => /home/jljungva/root/lib/root/libGX11.so (0x0000002a965f4000)
libGui.so => /home/jljungva/root/lib/root/libGui.so (0x0000002a96755000)
libGX11TTF.so => /home/jljungva/root/lib/root/libGX11TTF.so (0x0000002a96f0b000)
libMinuit.so => /home/jljungva/root/lib/root/libMinuit.so (0x0000002a97030000)
libCore.so => /home/jljungva/root/lib/root/libCore.so (0x0000002a971aa000)
libCint.so => /home/jljungva/root/lib/root/libCint.so (0x0000002a97a55000)
libRint.so => /home/jljungva/root/lib/root/libRint.so (0x0000002a9828f000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000002a983e8000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000002a985d8000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000002a9875e000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a9886c000)
libXpm.so.4 => /usr/X11R6/lib64/libXpm.so.4 (0x0000002a98aa0000)
libXext.so.6 => /usr/X11R6/lib64/libXext.so.6 (0x0000002a98bb0000)
libX11.so.6 => /usr/X11R6/lib64/libX11.so.6 (0x0000002a98cc2000)
libXft.so.2 => /usr/X11R6/lib64/libXft.so.2 (0x0000002a98ebb000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000002a98fcf000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000002a99104000)
libXrender.so.1 => /usr/X11R6/lib64/libXrender.so.1 (0x0000002a99207000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x0000002a99311000)
libexpat.so.0 => /usr/lib64/libexpat.so.0 (0x0000002a99444000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x0000002a99566000)
libz.so.1 => /usr/lib64/libz.so.1 (0x0000002a996f2000)

The machine is a 64-bit Dual Core AMD Opteron™.

I’ll try it with another root installation later today and see if I can reproduce it there.

cheers

Joa

Hi, the instructions should read

.L minuittest.C+

minuittest(); //Should work
minuittest(true); //Should crash !!!

Sorry.

I can reproduce on three different combinations of root and compilers, including root 5.17/01

cheers

Joa

Hi,

trying to find the problem using valgrind I discovered that is disappears if one does
bash> valgrind --trace-children=yes root -l
root> .L minuittest.C+
root> minuittest(true);

but is still there if one runs valgrind without the “–trace-children=yes” option.

cheers

Joa

OK, one has to call your test with true and not false.
I have now fixed the problem in TMinuit::mnscan. Due to rounding problems
mnscan could compute more points than originally allocated for an array.
Thanks for reporting.

Rene