Re: ROOT crashes when writing a large TVectorF object

From: Rene Brun <brun_at_pcroot.cern.ch>
Date: Mon, 6 Jun 2005 16:55:39 +0200 (MEST)


Alexandr,

On my machine, your test crashes because the system cannot allocate the 768 Mbytes required to create the object. You have to reformulate the problem, such that you write smaller pieces to the file.

Rene Brun

On
Mon, 6 Jun
2005, Alexandr Malusek wrote:

> 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:55:44 MEST

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