Denis 
Can you post the error message and back trace you get? 
Best
Wolfgang

-------- Original message --------
From: Denis Davydov <[email protected]> 
Date:09/06/2016  02:44  (GMT-07:00) 
To: "deal.II developers" <[email protected]> 
Subject: [dealii-developers] MPI_InitFinalize / active_cell_iterator / double 
free or corruption 

Dear all,

I just came across a very interesting problem with (active) cell iterator being 
used as a member of a class in a library

  template <int dim>
  class Atom
  {
  public:
    Atom();
    typename dealii::DoFHandler<dim>::active_cell_iterator parent_cell;
  };


This leads to double free or corruption on GCC in Release mode only. 
The code runs on Clang both in Debug and Release modes.

The prerequisites are as follows (if any of those is not the case, problem 
disappears!)
1. use Utilities::MPI::MPI_InitFinalize  in .cc file
2. In the user library, have a default constructor for a class, which contains 
DoFHandler<dim>::active_cell_iterator
3. link .cc against the library, do not declare and define the class directly 
inside .cc

Attached is a one-dummy-class library with a dummy test which demonstrates the 
issue.
Using GCC it should be enough to do the normal sequence of : cmake / make / 
make test
to see the problem.

Given that DoFHandler<dim>::active_cell_iterator has a default constructor,
I think one should not see a problem with encapsulating this class inside a 
user class.

It could still be my mistake somewhere, but I squeezed the code so much, that
I simply fail to see what could be wrong here. Especially given the 
prerequisites above.

If the attached code turns out to be fine, then we would have to
(i)  find out the origin of the problem inside deal.II
(ii) find out how to add a unit test which builds a library and an executable

Regards,
Denis.

-- 
You received this message because you are subscribed to the Google Groups 
"deal.II developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"deal.II developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to