Bug 193669 - [ipfw][dummynet] "copy_obj (WARN)" kernel warning for ipfw pipe show <num>
Summary: [ipfw][dummynet] "copy_obj (WARN)" kernel warning for ipfw pipe show <num>
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 9.3-RELEASE
Hardware: amd64 Any
: --- Affects Some People
Assignee: Tom Jones
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-15 20:36 UTC by Andriy Mayevskyy
Modified: 2020-07-11 17:18 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andriy Mayevskyy 2014-09-15 20:36:02 UTC
Kernel emits a lot of warnings for 
ipfw pipe show <number>

Warnings looks like 
copy_obj   (WARN) type 2 flowset 133077 have 28 need 120
copy_obj   (WARN) type 4 inst 66541 have 92 need 96

Seems that code responsible for this error is in ip_dummynet.c
	if (have < o->len || o->len == 0 || o->type == 0) {
		D("(WARN) type %d %s %d have %d need %d",
			o->type, msg, i, have, o->len);
		return 1;
	}

Warnings are shown after some traffic passed via pipe.
And command like 'ipfw pipe show' - emits no warnings.
So warning are observed only in case if particular pipe or pipes list is shown.

How to reproduce:
-----------------
Install 9.3-RELEASE

Load ipfw.ko and dummynet.ko

Create some pipes
ipfw pipe 1 config bw 5bit/s
ipfw pipe 2 config bw 5bit/s

Create pipe with mask
ipfw pipe 3 config bw 5bit/s mask src-ip 0xffffffff

Configure ipfw
ipfw add 100 pipe 3 ip from any to me

Disable pipe expiration
sysctl net.inet.ip.dummynet.expire=0

Then generate some traffic. For my case it was enough to have 260+ entries in pipe.

Now command like
ipfw pipe show 3 
or
ipfw pipe show 1,3 
will emit few kernel warnings in console and in /var/log/messages.

And just 'ipfw pipe show' works ok.
Comment 1 Andriy Mayevskyy 2014-10-02 07:06:25 UTC
Could anyone check this issue? 
'Needs Triage' is not a good state for kernel bugs.