Re: DCCP_BUG called

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 20/08/10 07:15, Gerrit Renker wrote:
   sudo $TC qdisc add dev $IF root handle 1: htb default 10
   sudo $TC class add dev $IF parent 1: classid 1:10 htb rate $up_rate
   sudo $TC filter add dev $IF protocol ip parent 1:0 prio 1 u32 match ip
dst $dest flowid 1:10
   sudo $TC qdisc add dev $IF parent 1:10 handle 40: sfq perturb 10 limit 2

taken from http://lartc.org/howto/, we receive many errors like this:

[27799.691275] BUG: err=1 after ccid_hc_tx_packet_sent at
/build/buildd/linux-2.6.32/net/dccp/output.c:307/dccp_write_xmit()
[27799.691288]<IRQ>   [<ffffffffa0441db5>] dccp_write_xmit+0x165/0x310
[dccp]
[27799.691308]  [<ffffffffa0443ac0>] ? dccp_write_xmit_timer+0x0/0x80 [dccp]
[27799.691315]  [<ffffffffa0443b3a>] dccp_write_xmit_timer+0x7a/0x80 [dccp]

We found that they are triggered by the following code in net/dccp/output.c:
306   err = dccp_transmit_skb(sk, skb);
307   ccid_hc_tx_packet_sent(dp->dccps_hc_tx_ccid, sk, 0, len);
308   if (err)
309     DCCP_BUG("err=%d after ccid_hc_tx_packet_sent",
310              err);

Is there a way to fix to workaround that?

The 'err = 1' is triggered because the qdisc can refuse to take a packet, so that

  #define NET_XMIT_DROP           0x01    /* skb dropped                  */

is returned. Thus what you are seeing is not a real bug, but rather a misplaced
BUG statement.

I haven't verified this, but I am almost sure that the problem is rectified in the
DCCP test tree which I would like to encourage you to use for all testing, since it

Thank you for your answer. I have not yet tested with DCCP test tree indeed, but I see that the code involved is there too, i.e.:

 306  err = dccp_transmit_skb(sk, skb);
 307  ccid_hc_tx_packet_sent(dp->dccps_hc_tx_ccid, sk, 0, len);
 308  if (err)
 309    DCCP_BUG("err=%d after ccid_hc_tx_packet_sent",
 310             err);

and in dccp_transmit_skb():

 139                 err = icsk->icsk_af_ops->queue_xmit(skb);
 140                 return net_xmit_eval(err);

--
Eugen
--
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [IETF DCCP]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux