Hi Amrita, Sorry, it's been a while. That is quite a weird tailroom() number! It looks very much like memory corruption. I have some questions.
- Are you running on a 32- or 64-bit architecture? - Would you feel comfortable sharing the code of your modified timedsource? E Amita Ekbote wrote: > Hello, > > I am trying to add sequence numbers in the data portion of a packet, so i > edited the timedsource.cc to just push the sequence number in the packet. > The code converts the number to string, "pushes" the strings length on the > packet and copies it. I am getting the following error > > click: ../lib/packet.cc:416: WritablePacket* > Packet::expensive_uniqueify(int32_t, int32_t, bool): Assertion > `(extra_headroom >= (int32_t)(-headroom())) && (extra_tailroom >= > (int32_t)(-tailroom()))' failed. > > Initially the packet has no headroom or tailroom. The headroom() and > tailroom() return 0. The sequence of function calls is > push->expensive_push->expensive_uniqueify. Right before expensive_uniqueify > is called the headroom and tailroom are still 0. I printed values before the > assertion and I get these: > > extra headroom 128 headroom 0 extra_tailroom 0 tailroom -157483016 > end_buffer 137 end_data 157483153 > > There is nothing else that is modifying the packet before the function call > or during the function call. I am clueless as to why the end_data and > end_buffer values are so weird. Any suggestions as to why this would be > happening would be really helpful. > > Thanks! > _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
