Crash without errors while creating graph from big CSV

ROOT Version: 6.24.06
Platform: win10
Compiler: Visual Studio 2019

I am trying to create graph from csv (235 039 kb). Root closes without errors.
If i trying smaller file size about 16384 kb all ok.

2021-10-14 03:53:46.087,0
2021-10-14 03:53:46.087,1
2021-10-14 03:53:46.266,0
2021-10-14 03:53:46.612,0
2021-10-14 03:53:47.009,2
2021-10-14 03:53:47.269,10

test.C (1.0 KB)

There is indeed a memory issue. Maybe @eguiraud can give more details about how the CSV files are read and if there is a workaround to this issue

EDIT: Note that I can read a file of 245 MB (257’742’761 bytes) with ROOT::RDF::MakeCsvDataFrame, but then the crash occurs when trying to draw a graph (values->size() = 9487463)

Are we sure we are talking about the same crash in these two cases?

@bellenot can you open an issue with your reproducer?

@yndingo can I just replicate those first lines you shared a gazillion time to reproduce the problem?


@eguiraud I think the issue is really the TGraph with 9487463 points.
i’l try to save ur time. Here is my log

We can’t access your file. But anyway, I tested on Linux and it works fine, so it looks like the issue is either on Windows only, or on 32 bit platforms. Debugging right now

1 Like

sorry update access to all who have link

So there is apparently a limited contiguous space available on Windows with this code:

   // Draw the graph with a polyline or a fill area
   gxwork  = new Double_t[2*npoints+10];
   gywork  = new Double_t[2*npoints+10];
   gxworkl = new Double_t[2*npoints+10];
   gyworkl = new Double_t[2*npoints+10];

in TGraphPainter::PaintGraph(). There is a std::bad_alloc thrown when calling new Double_t[2*npoints+10]; with npoints = 8848933
Still investigating…

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.