[yt-users] seg fault in Quadtree

Britton Smith brittonsmith at gmail.com
Thu Feb 27 10:24:29 PST 2014


Hi Nathan, Matt,

I'm working on getting some more debugging information with your
suggestions.  So far, I've been able to track it to the loop inside
QuadTree.initialize_chunk.  This appears to loop over all the points within
the chunk, calling add_to_position for each point.  The loop looks like
this:

        for p in range(num):


            pos[0] = pxs[p]


            pos[1] = pys[p]


            self.add_to_position(level[p], pos, NULL, 0.0, 1)

If I print the values of p, level[p], pos[0], pos[1] inside this loop, I
see the following (with a few extra lines leading up):

1893689 22 1148578047 1106259970
1893690 22 1148578047 1106259971
1893691 22 1148578047 1106259972
1893692 22 1148578047 1106259973
1893693 22 1148578047 1106259979
1893694 23 -1997811214 -2082447348

So, somehow, starting on level 23, the x and y positions are messed up in
some way.  Is this a precision issue?  How are these positions calculated?

Britton


On Thu, Feb 27, 2014 at 5:54 PM, Nathan Goldbaum <nathan12343 at gmail.com>wrote:

> Hi Britton,
>
> On my machine it will tell me line numbers in the .C file if a crash
> happens inside a .so file, even if it's called from python.  I'm not sure
> how to get that information on your system without knowing more about your
> setup.
>
> PDB doesn't know about C extensions so that won't be helpful unfortunately.
>
> If you're running serially you should be able to run python under gdb and
> get a traceback that way.  I'm not sure how to do that for parallel runs.
>
> This page might be helpful:
> http://docs.cython.org/src/userguide/debugging.html
>
> Nathan
>
> On Thursday, February 27, 2014, Britton Smith <brittonsmith at gmail.com>
> wrote:
>
>> Hi Nathan,
>>
>> I'm having a hard time getting a traceback that goes into the QuadTree
>> source.  The seg fault I get stops at QuadTree.so.  Is there a way to
>> recompile this in debug mode to get some more information?  It doesn't look
>> like pdb is able to step into QuadTree either.
>>
>> Britton
>>
>>
>> On Thu, Feb 27, 2014 at 5:22 PM, Nathan Goldbaum <nathan12343 at gmail.com>wrote:
>>
>>> Hi Britton,
>>>
>>> Can you get a traceback from the seg fault?  It would help to see the
>>> line number in the autogenerated QuadTree.c where the crash happens.
>>>  Autogenerated C files produced by cython reproduce the original .pyx
>>> files line by line as comments so it's usually pretty easy to back out
>>> where the crash is happening in the original Pyrex file.
>>>
>>> Nathan
>>>
>>>
>>> On Thursday, February 27, 2014, Britton Smith <brittonsmith at gmail.com>
>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> I'm trying to make projections of a rather large Enzo dataset and
>>>> getting a segfault somewhere in Quadtree.so.  This dataset is ~230 GB in
>>>> size with 27 levels of AMR.  As far as I can tell, the only hard coded
>>>> limit I could find in QuadTree.pyx is for 80 levels, which I am clearly
>>>> below.  Does anyone familiar with this part of the code have any idea if
>>>> there are any other hard-coded limits in here that I might be exceeding?
>>>>  If not, does anyone have any advice for how I might debug this?  I'm
>>>> seeing this behavior in both yt-2.x and yt-3.0, so it does seem to be
>>>> something intrinsic to the quadtree code.
>>>>
>>>> Thanks!
>>>> Britton
>>>>
>>>
>>> _______________________________________________
>>> yt-users mailing list
>>> yt-users at lists.spacepope.org
>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>
>>>
>>
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20140227/65bd6529/attachment.htm>


More information about the yt-users mailing list