Root crash when trying to quit root

If possible send me (privately) information on how to log into your MacOS machine and reproduce the problem!

Philippe

Dear Philippe

Thank you very much for your efforts, I appreciate it very much. Sorrowly, it is
not possible to login to my Mac, as I will explain in a separate mail.

Meanwhile I have made some observations:

1, TClass:
When I delete line 2540 of TClass.cxx, i.e. “delete fIsA; fIsA = 0;” in method
TClass::SetUnload(), then my example works w/o any problem.

2, MyClassADict:
Since the crash reporter reports a crash at:

 #0   0x007bc03c in G__MyClassADictLN_TString (G__MyClassADictLN_TString + 0)

I have checked the file MyClassADict.cxx and found the following code:

static void G__setup_memvarMyClassA(void) {
   G__tag_memvar_setup(G__get_linked_tagnum(&G__MyClassADictLN_MyClassA));
   { MyClassA *p; p=(MyClassA*)0x1000; if (p) { }
   G__memvar_setup((void*)NULL,117,0,0,G__get_linked_tagnum(&G__MyClassADictLN_TString),-1,-1,4,"fString=",0,(char*)NULL);
   G__memvar_setup((void*)NULL,85,0,0,G__get_linked_tagnum(&G__MyClassADictLN_TClass),-1,-2,4,"fgIsA=",0,(char*)NULL);
   }
   G__tag_memvar_reset();
}

Could it be that variable fgIsA does not exist?
At least, TClass has only the variables fIsA and fGlobalIsA.

Enclosed I am attaching the complete files MyClassADict.h and MyClassADict.cxx.
Maybe they give you a hint?

Best regards
Christian
MyClassADict.cxx (22.6 KB)
MyClassADict.h (1.74 KB)

Hi,

I am still not convinced that the build is done right.
The debugger says:

root [1] Init() Reading symbols for shared libraries bfd_mach_o_scan_read_symtab_symbol: unable to read 12 bytes at 417104
I do NOT get this error. Note that at this point the line that you
removed from TClass can not have been executed and thus could not
be making a difference!

Then the debugger says:

Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/operand. 0x002bff20 in ZN8MyClassAC1Ev.eh () (gdb) Test() Undefined command: "Test". Try "help". (gdb) where #0 0x002bff20 in ZN8MyClassAC1Ev.eh () #1 0x00277f8c in ROOT::GenerateInitInstance(MyClassA const*) () The code GenerateInitInstance never call the object constructor (ZN8MyClassAC1Ev.eh … seems like the symbol for MyClassA::MyClassA) so this is weird (and when I step through GenerateInitInstance it indeed does call any MyClassA function).
So my guess is that you ROOTSYS, PATH, LD_LIBRARY_PATH and DYLD_LIBRARY_PATH do not all agree on the same ROOT version …

Philippe.

Maybe this is the solution. Until now I have only the following settings in my .xinitrc file:
export MACOSX_DEPLOYMENT_TARGET=10.3
export TMPDIR=/Users/rabbitus/temp
export ROOTSYS=/Users/rabbitus/ROOT/root
export DYLD_LIBRARY_PATH=$ROOTSYS/lib
export PATH=$ROOTSYS/bin:$PATH

I have just added the line:
export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH

I suppose that I have to build root from scratch after exporting the variables. I will keep you informed.
However, if this is the reason then I am wondering why I did not experience any problem until now.

Best regards
Christian

Hi Christian,

You should just have to rebuild your example.
Also the most important is to check those variable before doing the gmake and the run.

Philippe.

Sorrowly, this did not help.
Here is the output of printenv:
MANPATH=/sw/share/man:/usr/share/man:/usr/X11R6/man
TERM_PROGRAM=Apple_Terminal
TERM=xterm-color
SHELL=/bin/bash
PERL5LIB=/sw/lib/perl5
TERM_PROGRAM_VERSION=100
OLDPWD=/Users/rabbitus
SGML_CATALOG_FILES=/sw/etc/sgml/catalog
USER=rabbitus
LD_LIBRARY_PATH=/Users/rabbitus/ROOT/root/lib:
__CF_USER_TEXT_ENCODING=0x1F7:0:0
PATH=/Users/rabbitus/ROOT/root/bin:/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin
XML_CATALOG_FILES=/sw/etc/xml/catalog
PWD=/Users/rabbitus/ROOT/root
LD_PREBIND_ALLOW_OVERLAP=1
ROOTSYS=/Users/rabbitus/ROOT/root
SHLVL=1
HOME=/Users/rabbitus
LD_PREBIND=1
DYLD_LIBRARY_PATH=/Users/rabbitus/ROOT/root/lib
LD_SEG_ADDR_TABLE=/sw/var/lib/fink/prebound/seg_addr_table
LOGNAME=rabbitus
INFOPATH=/sw/share/info:/sw/info:/usr/share/info
SECURITYSESSIONID=20df10
_=/usr/bin/printenv

Best regards
Christian

Hi Christian,

The next thing to undersand would to know (or fix) why gdb complains:

root [1] Init() Reading symbols for shared libraries bfd_mach_o_scan_read_symtab_symbol: unable to read 12 bytes at 417104

However I have no clue how to proceed :frowning:

Philippe.

Dear Philippe

Tomorrow I will download the new cvs version from root and compile from scratch. I will inform you.

I have no idea either but I found that the code for the statement is in:
opensource.apple.com/darwins … d/mach-o.c

Thank you for your efforts
Christian

Christian,

Independently of your problem for which I cannot help, it looks like you have another serious problem on your computer. One week ago, you said that it takes more than 2 hours to install ROOT. A few days ago, you said that
it takes now more than 3 hours!!
On a normal laptop (Linux or Windows), you should be able to install
ROOT in less than 30’, even less than 15’ on new laptops.
Even on very old obsolete machines, purchased many years ago, it takes less than one hour for the installation.
You must have something very strange in your configuration.
How many rootmarks to you obtain when running
root -b -q benchmarks.C
or in $ROOTSYS/test
stress -b 30
in particular, I am interested by both the Real and Cpu time for these
two benchmarks.

Rene

Dear Rene

I would appreciate to find a way to reduce compile times, however I do not think that something is wrong for the following reason:
On Nov 2004 Fons posted the compile times and rootmarks for a couple of machines in roottalk, see:
root.cern.ch/root/roottalk/roottalk04/3024.html

According to Fons, his Mac G5 2GHz needed 27 min to compile.
At that time my PowerBook G4 550MHz needed about 2 hrs (27 min X 2000/550).

For quite some time I needed 2.5 hrs for compilation and was surprised that 2 days ago it took 3 hrs. I supposed that a lot of classes were added to root?

Here are my results:
1, stress -b 30

******************************************************************
stress    : Total I/O =   90.1 Mbytes, I =   71.2, O =  18.9
stress    : Compr I/O =   86.4 Mbytes, I =   68.4, O =  18.0
stress    : Real Time =  46.57 seconds Cpu Time =  42.52 seconds
******************************************************************
*  ROOTMARKS = 179.6   *  Root5.01/01   20050615/2155
******************************************************************

2, root -b -q benchmarks.C

root [0] 
Processing benchmarks.C...
Processing benchmark: framework.C
Processing benchmark: hsimple.C
hsimple   : Real Time =   1.85 seconds Cpu Time =   1.31 seconds
Processing benchmark: hsum.C
hsum      : Real Time =   0.79 seconds Cpu Time =   0.72 seconds
Processing benchmark: formula1.C

Object statistics
class                         cnt    on heap     size    total size    heap size
================================================================================
TObject                       128        128       12          1536         1536
TNamed                          1          1       28            28           28
TList                         140        139       44          6160         6116
THashList                       3          3       48           144          144

TObjArray                       1          1       40            40           40
THashTable                      5          4       40           200          160
TPair                          52         52       20          1040         1040
TObjString                     53         53       20          1060         1060
TObjectTable                    1          1       24            24           24
TROOT                           1          0      340           340            0
TPluginManager                  1          1       16            16           16
TOrdCollection                  5          5       44           220          220
TMap                            1          0       28            28            0
TEnv                            1          1       24            24           24
TUnixSystem                     1          1      244           244          244
TClassTable                     1          1       12            12           12
TRandom                         1          1       32            32           32
--------------------------------------------------------------------------------
Total:                        396        392     1016         11148        10696
================================================================================

Processing benchmark: fillrandom.C
fillrandom: Real Time =   1.34 seconds Cpu Time =   1.23 seconds
Processing benchmark: fit1.C
TFile**         fillrandom.root
 TFile*         fillrandom.root
  KEY: TFormula form1;1 abs(sin(x)/x)
  KEY: TF1      sqroot;1        x*gaus(0)+[3]*form1
  KEY: TH1F     h1f;1   Test random numbers
               sqroot : x*gaus(0)+[3]*form1 Ndim= 1, Npar= 4, Noper= 11
 fExpr[0] = x  action = 144 action param = 0 
 fExpr[1] = gaus(0)  action = 110 action param = 0 
 fExpr[2] = *  action = 3 action param = 0 
 fExpr[3] = [3]  action = 140 action param = 3 
 fExpr[4] = x  action = 144 action param = 0 
 fExpr[5] = sin  action = 11 action param = 0 
 fExpr[6] = x  action = 144 action param = 0 
 fExpr[7] = /  action = 4 action param = 0 
 fExpr[8] = abs  action = 41 action param = 0 
 fExpr[9] = *  action = 3 action param = 0 
 fExpr[10] = +  action = 1 action param = 0 
Optimized expresion
 fExpr[0] = x             action = 146 action param = 0 
 fExpr[1] = gaus(0)               action = 110 action param = 0 
 fExpr[2] = *             action = 3 action param = 0 
 fExpr[3] = [3]           action = 146 action param = 3 
 fExpr[4] = x,sin                 action = 147 action param = 0 
 fExpr[5] = x             action = 146 action param = 0 
 fExpr[6] = /             action = 4 action param = 0 
 fExpr[7] = abs           action = 41 action param = 0 
 fExpr[8] = *             action = 3 action param = 0 
 fExpr[9] = +             action = 1 action param = 0 
 Par  0                    p0 = 10
 Par  1                    p1 = 4
 Par  2                    p2 = 1
 Par  3                    p3 = 20
TH1.Print Name  = Func, Entries= 100, Total sum= 1514.36
 FCN=191.938 FROM MIGRAD    STATUS=CONVERGED     125 CALLS         126 TOTAL
                     EDM=3.04297e-07    STRATEGY= 1  ERROR MATRIX UNCERTAINTY   2.1 per cent
  EXT PARAMETER                                   STEP         FIRST   
  NO.   NAME      VALUE            ERROR          SIZE      DERIVATIVE 
   1  p0           3.29813e+01   5.33605e-01  -6.73622e-04   9.77958e-04
   2  p1           3.98897e+00   1.76566e-02  -1.60737e-04   6.03749e-02
   3  p2           1.00021e+00   1.31769e-02   5.11839e-05   3.08495e-02
   4  p3           6.29888e+01   1.32324e+00   3.05003e-04   2.96136e-04
fit1      : Real Time =   0.35 seconds Cpu Time =   0.16 seconds
Processing benchmark: h1draw.C
TFile**         hsimple.root    Demo ROOT file with histograms
 TFile*         hsimple.root    Demo ROOT file with histograms
  KEY: TH1F     hpx;1   This is the px distribution
  KEY: TH2F     hpxpy;1 py vs px
  KEY: TProfile hprof;1 Profile of pz versus px
  KEY: TNtuple  ntuple;1        Demo ntuple
Processing benchmark: graph.C
 i 0 0.000000 1.986693 
 i 1 0.100000 2.955202 
 i 2 0.200000 3.894183 
 i 3 0.300000 4.794255 
 i 4 0.400000 5.646425 
 i 5 0.500000 6.442177 
 i 6 0.600000 7.173561 
 i 7 0.700000 7.833269 
 i 8 0.800000 8.414710 
 i 9 0.900000 8.912074 
 i 10 1.000000 9.320391 
 i 11 1.100000 9.635582 
 i 12 1.200000 9.854497 
 i 13 1.300000 9.974950 
 i 14 1.400000 9.995736 
 i 15 1.500000 9.916648 
 i 16 1.600000 9.738476 
 i 17 1.700000 9.463001 
 i 18 1.800000 9.092974 
 i 19 1.900000 8.632094 
Processing benchmark: gerrors.C
Processing benchmark: tornado.C
tornado   : Real Time =   0.22 seconds Cpu Time =   0.14 seconds
Processing benchmark: surfaces.C
Processing benchmark: runzdemo.C
Processing benchmark: geometry.C
na49      : Real Time =   6.13 seconds Cpu Time =   5.77 seconds
geometry  : Real Time =   0.73 seconds Cpu Time =   0.57 seconds
Processing benchmark: na49view.C
na49view  : Real Time =   0.05 seconds Cpu Time =   0.04 seconds
Processing benchmark: na49view.C
na49view  : Real Time =   0.15 seconds Cpu Time =   0.11 seconds
Processing benchmark: file.C
Processing benchmark: ntuple1.C
Fitting results:
Parameters:
NO.             VALUE           ERROR
0       1.564155        0.180511
1       0.010136        0.024397
2       0.876773        0.016145
ntuple1   : Real Time =   2.14 seconds Cpu Time =   1.55 seconds
Processing benchmark: rootmarks.C
---------------ROOT 5.01/01 benchmarks summary--------------------
hsimple   : Real Time =   1.85 seconds Cpu Time =   1.31 seconds
hsum      : Real Time =   0.79 seconds Cpu Time =   0.72 seconds
fillrandom: Real Time =   1.34 seconds Cpu Time =   1.23 seconds
fit1      : Real Time =   0.35 seconds Cpu Time =   0.16 seconds
tornado   : Real Time =   0.22 seconds Cpu Time =   0.14 seconds
na49      : Real Time =   6.13 seconds Cpu Time =   5.77 seconds
geometry  : Real Time =   0.73 seconds Cpu Time =   0.57 seconds
na49view  : Real Time =   0.15 seconds Cpu Time =   0.11 seconds
ntuple1   : Real Time =   2.14 seconds Cpu Time =   1.55 seconds
TOTAL     : Real Time =  13.70 seconds Cpu Time =  11.56 seconds

---------------ROOT 5.01/01 benchmarks summary (in ROOTMARKS)-----
   For comparison, a Pentium IV 2.4Ghz is benchmarked at 600 ROOTMARKS
hsimple     =   94.31 RealMARKS,  =  128.24 CpuMARKS
hsum        =  121.19 RealMARKS,  =  125.00 CpuMARKS
fillrandom  =    8.93 RealMARKS,  =    4.88 CpuMARKS
fit1        =   68.09 RealMARKS,  =  112.50 CpuMARKS
tornado     =  134.12 RealMARKS,  =  171.43 CpuMARKS
na49        =  136.12 RealMARKS,  =  144.54 CpuMARKS
geometry    =  156.19 RealMARKS,  =  189.47 CpuMARKS
na49view    =  120.07 RealMARKS,  =  163.64 CpuMARKS
ntuple1     =   81.33 RealMARKS,  =  104.52 CpuMARKS

****************************************************
* Your machine is estimated at  158.89 ROOTMARKS   *
****************************************************

This is the end of ROOT -- Goodbye

What is your opinion regarding these results?

Best regards
Christian

Christian,

The closest machine and slowest machine at my disposal is my
good old laptop running RH6.1 (P III 600 Mhz).
The machine is rated at 200 rootmarks (stress and benchmarks.C).
The total installation time from scratch for ALL ROOT packages activated and compilation in optimized mode is 49 minutes and 20 seconds.

Rene

Hi Christian and Rene,

just to back up Christians numbers :

On 12" pb 867 Mhz G4 using gcc4.0

stress : Total I/O = 90.1 Mbytes, I = 71.2, O = 18.9
stress : Compr I/O = 86.4 Mbytes, I = 68.4, O = 18.0
stress : Real Time = 33.14 seconds Cpu Time = 28.20 seconds


  • ROOTMARKS = 270.9 * Root5.01/01 20050616/1553

Indeed build from scratch will take about 2.5 hrs .

The only thing that makes this somewhat tolerable is to have
a faster dual CPU machine, otherwise the Mac as a development
system sucks . My 2 1.42 Ghz G4 machine will deliver around
550 rootmarks per CPU

Eddy

Thanks Eddy for this confirmation.
Probably one more reason why Apple are abandonning the PowerPC
in favour of Intel ::slight_smile:

Rene

Maybe some comments:
1, benchmarks.C:
My 550MHz machine is rated as 159 ROOTMARKS. The output says:
For comparison, a Pentium IV 2.4Ghz is benchmarked at 600 ROOTMARKS
If I interpret the results correctly, then the ROOTMARKS on my machine are not so bad?

2, Compilation:
Three hours compilation of root is really bad, otherwise I consider the compilation speed sufficient, even CINT is pretty fast.

3, GUI:
In my opinion it is very important to test a GUI application on a very slow machine in order to see if the GUI is responsive.
Until recently the Java GUI was not very responsive even on a PC with a 2GHz Pentium IV!. For example, there was an annoying delay when clicking on a Menu.
In contrast, the root TGClasses are very responsive on my slow machine. I must congratulate the GUI developers.

Best regards
Christian

P.S.: This weekend I intend to update to Tiger.

Christian,

The rootmarks on your machine are perfectly OK, but the compiler
is extremely slow.

Rene

Dear Philippe

After upgrading to Mac OS X Tiger, my example works now w/o any problems.
However, compiling root for Tiger results in some new problems, as described in my new topic.

Best regards
Christian