[ovs-discuss] reply: ovs_assert when do classifier_insert

Yinpeijun yinpeijun at huawei.com
Thu Aug 3 03:05:30 UTC 2017

>>On Thu, Aug 03, 2017 at 02:04:34AM +0000, Yinpeijun wrote:
>>                    Recently, there's been a problem when I use ovs, 
>> the problem is ovs_assert when do classifier_insert. I read the source 
>> code and annotation, but I don't understand how the problem is been 
>> triggered.

>Can you provide a backtrace?  Which assertion is failing?  When did this start?

 Thank you for your reply, Ben.
I use ovs2.0.2(may be too old) and backtrace as follow:
 #0  0x00007f2315a98875 in raise () from /lib64/libc.so.6
 #1  0x00007f2315a99e51 in abort () from /lib64/libc.so.6
 #2  0x00000000004d64ff in ovs_abort_valist (err_no=0, format=0x5577e0 "%s: assertion %s failed in %s()",
    args=0x7ffc597e57a0) at lib/util.c:243
 #3  0x00000000004dcd8a in vlog_abort_valist (module_=0x7cdae0 <VLM_util>,
    message=0x5577e0 "%s: assertion %s failed in %s()", args=0x7ffc597e57a0) at lib/vlog.c:944
 #4  0x00000000004dce6d in vlog_abort (module=0x7cdae0 <VLM_util>,
    message=0x5577e0 "%s: assertion %s failed in %s()") at lib/vlog.c:958
 #5  0x00000000004d5f50 in ovs_assert_failure (where=0x53d3c2 "lib/classifier.c:236",
    function=0x53d3a0 <__func__.10702> "classifier_insert", condition=0x53d3b2 "!displaced_rule") at lib/util.c:66
 #6  0x0000000000457f16 in classifier_insert (cls=0xa2ff48, rule=0x7f230c603248) at lib/classifier.c:236
 #7  0x000000000042cdb2 in facet_create (miss=0xb68c10) at ofproto/ofproto_dpif.c:4444
 #8  0x000000000042b6de in handle_flow_miss (miss=0xb68c10, ops=0x7ffc597e5cb0, n_ops=0x7ffc597e5b18)
    at ofproto/ofproto_dpif.c:3826
 #9  0x000000000042b9eb in handle_flow_misses (backer=0xcce850, fmb=0xb68c00) at ofproto/ofproto_dpif.c:3886
 #10 0x000000000042c0a6 in handle_upcalls (backer=0xcce850) at ofproto/ofproto_dpif.c:4047
 #11 0x00000000004254c8 in dpif_backer_run_fast (backer=0xcce850) at ofproto/ofproto_dpif.c:1155
 #12 0x0000000000425506 in type_run_fast (type=0x7f230c52fc20 "system") at ofproto/ofproto_dpif.c:1172
 #13 0x0000000000418db9 in ofproto_type_run_fast (datapath_type=0x7f230c52fc20 "system") at ofproto/ofproto.c:1462
 #14 0x000000000040e0dd in bridge_run_fast () at vswitchd/bridge.c:2493

 I've been using ovs2.0.2 for more than one year, it happened recently in my  lab environment.
 And I was a little confused, there is only one thread to process the classifier insert , why need  to lock it ?

More information about the discuss mailing list