Possible Reason For TCP socket base error (m_state == ESTABLISHED || m_state == SYN_RCVD)

66 views
Skip to first unread message

Ubaid ur Rahman

unread,
Dec 28, 2015, 2:32:21โ€ฏPM12/28/15
to ns-3-users
Hello,

I am getting the following error when simulating a tcp application. I am unable to track which application is causing the error so I am posting here may be if I find the reason I could narrow it down. The scenario is like this, there are few nodes, on each node a scheduler dynamically assigns applications, the application communicate with one another.

assert failed. cond="m_state == ESTABLISHED || m_state == SYN_RCVD", file=../src/internet/model/tcp-socket-base.cc, line=1586
terminate called without an active exception


I looked for the enum SYN_RCVD which says that "Received a connection request, sent ack, waiting for final ack in three-way handshake". Now to my understanding the socket is trying to establish a socket with other application which already is established (another application with same port on same Node). I tried to randomly assign port but still am getting error above.

Tommaso Pecorella

unread,
Dec 28, 2015, 3:24:28โ€ฏPM12/28/15
to ns-3-users
Hi,

that is an assert, i.e., something that should never happen, no matter how weird is the user's setup.
Usually reaching an assert means that you found a bug OR that you forgot something important (e.g., try using WiFi without a mobility model).

HOWEVER, since you don't say what ns-3 version are you using and the script description is so generic that could be applied to almost any script... we can not help you.
The only suggestion I can give you is: try again with the latest ns-3 (possibly ns-3-dev) and check if there's an open bug describing your same problem.

T.

Ubaid ur Rahman

unread,
Dec 30, 2015, 8:36:25โ€ฏAM12/30/15
to ns-3-...@googlegroups.com
Hi,

You were right, the version had a bug, updating it worked... Lesson learned: ALWAYS USE THE LATEST UPDATE FROM NS-3๐Ÿ‘

--
Posting to this group should follow these guidelines https://www.nsnam.org/wiki/Ns-3-users-guidelines-for-posting
---
You received this message because you are subscribed to the Google Groups "ns-3-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ns-3-users+...@googlegroups.com.
To post to this group, send email to ns-3-...@googlegroups.com.
Visit this group at https://groups.google.com/group/ns-3-users.
For more options, visit https://groups.google.com/d/optout.



--
Regards,

Ubaid ur Rahman

Ubaid ur Rahman

unread,
Dec 30, 2015, 8:58:50โ€ฏAM12/30/15
to ns-3-...@googlegroups.com
Nope!

Worked at first, but when I tried to extend it a bit. same error. Let me explain my scenario:

By now you know I am using the latest version of NS-3. What I am trying to simulate is VM communication on a single access network. The access network consist of one router, and 20 nodes. IP v4 for each point-to-point link with /30 prefix. Routing is IPv4GlobalRouting.

The communication pattern is something like, there are 3 classes of VM that act as a Producer, ConsumerProducer and Consumer. I have one application that respond to a request like packet sink only replies with the requested amount of data. ConsumerProducer or Consumer can request data from the server.

There is no issue when it comes to one or two VMs communicating or requesting data. But when I increase the number to 10 then surprise the error
"assert failed. cond="m_state == ESTABLISHED || m_state == SYN_RCVD", file=../src/internet/model/tcp-socket-base.cc, line=1554

terminate called without an active exception"

All 10 VMs run at the same time.

P.S By VM I mean combination of modified OnOff and Packet Sink applications.

Tommaso Pecorella

unread,
Dec 30, 2015, 12:45:33โ€ฏPM12/30/15
to ns-3-users, Natale Patriciello
Hi,

it could be a bug due to packet losses and timer expiring. Please get in touch with Natale and (eventually) open a new bug.

Cheers,

T.
Reply all
Reply to author
Forward
0 new messages