Re: ROOT crashes when writing a large TVectorF object

From: Edmond Offermann <edmondoffermann_at_yahoo.com>
Date: Mon, 6 Jun 2005 07:51:07 -0700 (PDT)


Hi Alexandr,

The vector length is an "Int_t" and

root [0] return TMath::Power(2,31)
(Double_t)2.14748364800000000e+09
root [1] return 512*512*1273
(const int)333709312

So your request is way beyond the maximum integer .

Eddy

> Hi,
>
> ROOT 4.04/02 crashes when writing a large TVectorF object (for
> instance 512*512*1273) to a TFile.
>
> The Write function works OK for small TVectorF objects (up to
> 176470011 elements):
>
> $ cat t1.C
> void t1()
> {
> TFile f("t1.root", "recreate");
> TVectorF vec(176470011);
> vec.Write("vec");
> f.Close();
> }
>
> $ root
> root [0] .x t1.C // Works OK
> root [1]
>
> But it crashes for larger TVectorF objects:
>
> $ cat t2.C
> void t2()
> {
> TFile f("t2.root", "recreate");
> TVectorF vec(176470012);
> vec.Write("vec");
> f.Close();
> }
>
> root [0] .x t2.C // Crashes
> $
>
> ROOT is terminated and no error message is printed out. Similar
> behavior was observed with root-4.03.04 but the maximum TVectorF size
> was different.
>
> Tested on: SUSE Linux 9.1, x86, 2GiB RAM, ROOT 4.04/02 was compiled
> with GCC 3.3.3.
>
> Regards,
> Alexandr
>
>
Received on Mon Jun 06 2005 - 16:51:13 MEST

This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:09 MET