The MEMDEBUG option leads to a bootstrap failure, so this doesn't help
me at the moment <https://github.com/JuliaLang/julia/issues/8422>...
Do you have other pointers?

-erik

On Thu, Sep 18, 2014 at 8:44 PM, Isaiah Norton <[email protected]> wrote:
> See MEMDEBUG in options.h
>
> On Sep 18, 2014 8:28 PM, "Erik Schnetter" <[email protected]> wrote:
>>
>> I have a Julia application that uses MPI to communicate between several
>> processes. Each process uses many tasks, and they send functions to remote
>> locations to be executed.
>>
>> If I use a large number of tasks per process, I receive segfaults.
>> Sometimes I am able to obtain a stack backtrace, and these segfaults usually
>> occur in array.c or in gc.c in routines related to memory allocation, often
>> for increasing the buffer size for serialization. I've added a few assert
>> statements there and examined the code, and it seems that these routines
>> themselves are not to blame. My next assumption is thus that, somewhere,
>> someone is overwriting memory, and libc's malloc's internal data structures
>> are accidentally overwritten.
>>
>> - Do you have pointers for debugging this in Julia?
>> - Is there a "memory-debug" mode for Julia, for its garbage collector, for
>> flisp, for flisp's garbage collector, ...?
>> - Is there a way to rebuild Julia with more aggressive self-checking
>> enabled?
>>
>> I can reproduce the error quite reliably, but it always occurs at a
>> different place. Unfortunately, the error goes away if I reduce the number
>> of tasks or the number of processes
>> <https://en.wikipedia.org/wiki/Heisenbug>.
>>
>> -erik
>>
>



-- 
Erik Schnetter <[email protected]>
http://www.perimeterinstitute.ca/personal/eschnetter/

Reply via email to