[Click] strange bug
Amita Ekbote
amita.ekbote at gmail.com
Thu Dec 17 15:21:12 EST 2009
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!
--
Amita Ekbote
More information about the click
mailing list