Re: root.exe clashes in clean up

From: Rene Brun (Rene.Brun@cern.ch)
Date: Sun Nov 01 1998 - 17:46:40 MET


Hi Yasuhiro,
Thanks for reporting this problem (not specific to the new version
2.00/13).
A protection was missing in the TDirectory destructor automatically
called by the TROOT destructor at the end of your Root session.
The problem happens when a TF1 object is created and no Root files are
connected.

Rene Brun


Yasuhiro SHIRASAKI wrote:
> 
> Hi ROOT developers,
> 
> I just installed ROOT 2.0/13 into our alpha running DU 4.0a,
> and started with it. But when I tried to quit ROOT, it caught
> sigsegv and made core dump.
> 
> -------------------------------------------------------<operation>-
> % root.exe -E
> root [0] .x h1.C
>  **********
>  **    1 **SET ERR           1
>  **********
>  FCN=735.278 FROM MIGRAD    STATUS=CONVERGED      74 CALLS          75 TOTAL
>                      EDM=0.00015054    STRATEGY= 1      ERROR MATRIX ACCURATE
>   EXT PARAMETER                                   STEP         FIRST
>   NO.   NAME      VALUE            ERROR          SIZE      DERIVATIVE
>    1  Constant     3.28951e+03   1.51914e+01   1.57712e-01   4.66360e-04
>    2  Mean         1.89592e+00   7.15048e-03   1.09508e-04  -1.24510e+00
>    3  Sigma        1.85237e+00   5.31858e-03   8.03824e-05   3.44927e+00
> root [1] .q
> 
>  *** Break *** segmentation violation
> 
> -------------------------------------------------------<operation>-
> 
> ------------------------------------------------------------<h1.C>-
> {
> #include <iostream.h>
>     ifstream* data = new ifstream("filename.dat");
>     TH1S* h1 = new TH1S("name", "title", 150, -10, 20);
>     float x;
>     for (;;) {
>         *data >> x;
>         if (data->eof())
>             break;
>         h1->Fill(x);
>     }
>     data->close();
>     TCanvas* c1 = new TCanvas("CanvasName", "CanvasTitle");
>     c1->Draw();
>     h1->Draw();
>     h1->Fit("gaus");
>     c1->Update();
> }
> ------------------------------------------------------------<h1.C>-
> 
> -------------------------------------------------<stack backtrace>-
> dbx version 3.11.10
> Type 'help' for help.
> Core file created by program "root.exe"
> 
> signal IOT/Abort trap at >*[__kill, 0x3ff800e7a80]      beq     r19, 0x3ff800e7a98
> (dbx) where
> >  0 __kill(0x3ffc0080488, 0x3ffffe71798, 0x3ff80170bb4, 0x3ffc0080c50, 0x3ffc0082590) [0x3ff800e7a80]
>    1 (unknown)() [0x3ff8019780c]
>    2 __tis_raise(0x3ffc0082590, 0x140000350, 0x3ff8010fb4c, 0x3ffc0080c50, 0x3ff8015a1e4) [0x3ff8010fb48]
>    3 raise(0x3ff8010fb4c, 0x3ffc0080c50, 0x3ff8015a1e4, 0x3ffffe71798, 0x3ff80170bdc) [0x3ff8015a1e0]
>    4 abort(0x140002908, 0x4037c00020000000, 0x0, 0x0, 0xffffffff00000000) [0x3ff80170bd8]
>    5 Abort__11TUnixSystemXi(this = 0x140002908,  = -1) ["UNIX_UnixSystem.cxx":1043, 0x3ffbf77ff20]
>    6 DispatchSignals__11TUnixSystemX8ESignals(this = 0x140002908, sig = kSigSegmentationViolation) ["UNIX_UnixSystem.cxx":532, 0x3ffbf77ea10]
>    7 SigHandler__X8ESignals(sig = kSigSegmentationViolation) ["UNIX_UnixSystem.cxx":197, 0x3ffbf77d8fc]
>    8 sighandler__Xi(sig = 11) ["UNIX_UnixSystem.cxx":1755, 0x3ffbf781880]
>    9 GetListOfFunctions__5TROOTXv(this = (nil)) ["TROOT.h~alt~deccxx_4351DC75":138, 0x3ffbfce68c0]
>   10 __dt__8TFormulaXv(this = 0x1407359c8, __control = 0) ["FUNC_Formula.cxx":159, 0x3ffbfce6ea4]
>   11 __dt__3TF1Xv(this = 0x1407359c8, __control = 5) ["FUNC_F1.cxx":327, 0x3ffbfcdfac4]
>   12 GarbageCollect__11TCollectionXP7TObject(obj = 0x1407359c8) ["CONT_Collection.cxx":349, 0x3ffbfd32304]
>   13 Delete__5TListXPCc(this = 0x140738688,  = 0x3ffbfa18130) ["CONT_List.cxx":349, 0x3ffbfd33be4]
>   14 __dt__3TH1Xv(this = 0x140140488, __control = 0) ["H_H1.cxx":180, 0x3ffbfa2ec00]
>   15 __dt__4TH1SXv(this = 0x140140488, __control = 5) ["H_H1.cxx":6525, 0x3ffbfa4f360]
>   16 GarbageCollect__11TCollectionXP7TObject(obj = 0x140140488) ["CONT_Collection.cxx":349, 0x3ffbfd32304]
>   17 Delete__5TListXPCc(this = 0x140024508,  = 0x3ffbfdb53f8) ["CONT_List.cxx":349, 0x3ffbfd33be4]
>   18 Delete__9THashListXPCc(this = 0x140024508, option = 0x3ffbfdb53f8) ["CONT_HashList.cxx":202, 0x3ffbfd3854c]
>   19 __dt__10TDirectoryXv(this = 0x140000350, __control = 0) ["BASE_Directory.cxx":154, 0x3ffbfde4708]
>   20 __dt__5TROOTXv(this = 0x140000350, __control = 1) ["BASE_Root.cxx":339, 0x3ffbfe03280]
>   21 __fini_sti__MAIN_rmain_cxx_d233fbb2_00000000() ["MAIN_rmain.cxx":38, 0x120003c78]
>   22 __fini_cleanup(0x12000409c, 0x3ffc0001df8, 0x3ffc0001b18, 0x7, 0x1) [0x120003b70]
> (dbx) quit
> -------------------------------------------------<stack backtrace>-
> 
> Recent changes introduced new bug into clean up routine
> or somewhere?
> 
> regards,
> 
> --
> Yasuhiro SHIRASAKI : Experimental Particle Physics, JLC Team
> Graduate school of Science, TOHOKU University 980-8578 Japan.
> Phone: +81-22-217-6727 Fax: +81-22-217-6728



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:39 MET