Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: [OMPI users] OMPI free() error
From: Jack Bryan (dtustudy68_at_[hidden])
Date: 2011-03-18 02:07:49


Hi,
I am running a C++ program with OMPI.I got error:
*** glibc detected *** /nsga2b: free(): invalid next size (fast): 0x0000000001817a90 ***
I used GDB:
======= Backtrace: =========Program received signal SIGABRT, Aborted.0x00000038b8830265 in raise () from /lib64/libc.so.6(gdb) bt#0 0x00000038b8830265 in raise () from /lib64/libc.so.6#1 0x00000038b8831d10 in abort () from /lib64/libc.so.6#2 0x00000038b886a99b in __libc_message () from /lib64/libc.so.6#3 0x00000038b887245f in _int_free () from /lib64/libc.so.6#4 0x00000038b88728bb in free () from /lib64/libc.so.6#5 0x000000000044a4e3 in workerRunTask (message_to_master_type=0x38c06efe18, nodeSize=2, myRank=1, xVSize=84, objSize=7, xdata_to_workers_type=0x1206350, recvXDataVec=std::vector of length 0, capacity 84, myNsga2=..., Mpara_to_workers_type=0x1205390, events=0x7fffffffb1f0, netplan=...) at src/nsga2/workerRunTask.cpp:447#6 0x00000000004514d9 in main (argc=1, argv=0x7fffffffcb48) at src/nsga2/main-parallel2.cpp:425-------------------------------------------------
In valgrind,
there are some invalid read and write butno errors about this free(): invalid next size .
-----------------------------------------------(populp.ind)->xreal = new double[nreal]; (populp.ind)->obj = new double[nobj]; (populp.ind)->constr = new double[ncon]; (populp.ind)->xbin = new double[nbin]; if ((populp.ind)->xreal == NULL || (populp.ind)->obj == NULL || (populp.ind)->constr == NULL || (populp.ind)->xbin == NULL ) { #ifdef DEBUG_workerRunTask cout << "In workerRunTask(), I am rank "<< myRank << " (populp.ind)->xreal or (populp.ind)->obj or (populp.ind)->constr or (populp.ind)->xbin is NULL .\n\n" << endl; #endif }
delete [] (populp.ind)->xreal ; delete [] (populp.ind)->xbin ; delete [] (populp.ind)->obj ; delete [] (populp.ind)->constr ; delete [] sendResultArrayPr;
----------------------------------------
thanks
Any help is really appreciated.