Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] SIGSEGV on MPI_Test
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2012-01-28 07:36:56


Sorry for the long delay in replying -- this mail got lost in my usual INBOX overflow, etc.

On Jan 12, 2012, at 11:05 AM, devendra rai wrote:

> Hello Community:
>
> I am running into a strange problem. I get a SIGSEGV when I try to execute MPI_Test:
>
> ==21076== Process terminating with default action of signal 11 (SIGSEGV)
> ==21076== Bad permissions for mapped region at address 0x43AEE1
> ==21076== at 0x509B957: ompi_request_default_test (req_test.c:68)
> ==21076== by 0x50EDEBB: PMPI_Test (ptest.c:59)
> ==21076== by 0x44210D: InterProcessorTransmit::StartTransmission() (InterProcessorTransmit.cpp:111)

The problem is in your code; see below.

> Here is the relevant piece of code:
>
> for ( this->dbIterator = localdb.begin( ) ; this->dbIterator != localdb.end( ); this->dbIterator++)
> {
> this->TransmissionDetails = (this->dbIterator)->second;
> SendComplete = 0;
> UniqueIDtoSendto = std::get<0>(this->TransmissionDetails);
> RecepientNode = (this->dbIterator)->first;
> Isend_request = MPI::COMM_WORLD.Issend(this->transmitbuffer, this->transmissionsize, MPI_BYTE, (this->dbIterator)->first, std::get<0>(this->TransmissionDetails));
> /*This is line 111 */MPI_Test(&(this->Isend_request), &(this->SendComplete), &(this->ISend_status));

You assigned the request to Isend_request, but then tested this->Isend_request.

Those are two different variables. Your debugger screenshot shows that this->Isend_request was NULL (i.e., had a value of 0), so when OMPI tried to dereference through it, it segv'ed.

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/