Comments (7)
Are you compiling a particular P4 program to product a BMv2 JSON "executable" file that is being loaded into the simple_switch
or simple_switch_grpc
process, and that process is crashing?
If you can find a way to reproduce this issue outside of the context of running ONOS (or can find someone who can help you to create such a reproduction), that would be easier for others to diagnose what is going on.
from behavioral-model.
It doesn't happen while installing P4 programs. Also, I saw this error in several P4 programs: e.g, basic.p4 and fabric.p4.
I don't think it's easy to reproduce without ONOS.
FYI, let me share lldb output when it occurs:
* thread #6, name = 'stratum_bmv2', stop reason = signal SIGILL: illegal instruction operand
frame #0: 0x00007ffff662556d libsimpleswitch_runner.so.0`std::vector<bm::ActionParam, std::allocator<bm::ActionParam> >::operator[](this=size=1, __n=0) const at stl_vector.h:1061:2
1058 operator[](size_type __n) const _GLIBCXX_NOEXCEPT
1059 {
1060 __glibcxx_requires_subscript(__n);
-> 1061 return *(this->_M_impl._M_start + __n);
1062 }
1063
1064 protected:
* thread #6, name = 'stratum_bmv2', stop reason = signal SIGILL: illegal instruction operand
frame #0: 0x00007ffff662556d libsimpleswitch_runner.so.0`std::vector<bm::ActionParam, std::allocator<bm::ActionParam> >::operator[](this=size=1, __n=0) const at stl_vector.h:1061:2
* frame #1: 0x00007ffff66244cb libsimpleswitch_runner.so.0`bm::ActionFnEntry::execute(this=0x000061600003aa88, pkt=0x000060f000007a20) const at actions.cpp:411:33
frame #2: 0x00007ffff662709d libsimpleswitch_runner.so.0`bm::ActionFnEntry::operator(this=0x000061600003aa88, pkt=0x000060f000007a20)(bm::Packet*) const at actions.cpp:429:5
frame #3: 0x00007ffff692f296 libsimpleswitch_runner.so.0`bm::MatchTableAbstract::apply_action(this=0x000061600003a880, pkt=0x000060f000007a20) at match_tables.cpp:138:3
frame #4: 0x00007ffff6d25982 libsimpleswitch_runner.so.0`bm::MatchActionTable::operator(this=0x000060600009d580, pkt=0x000060f000007a20)(bm::Packet*) const at tables.cpp:42:34
frame #5: 0x00007ffff6c2f055 libsimpleswitch_runner.so.0`bm::Pipeline::apply(this=0x00006060000a2b00, pkt=0x000060f000007a20) at pipeline.cpp:44:12
frame #6: 0x00007ffff627f8a3 libsimpleswitch_runner.so.0`SimpleSwitch::egress_thread(this=0x000061a000000080, worker_id=1) at simple_switch.cpp:677:17
frame #7: 0x00007ffff628f6d5 libsimpleswitch_runner.so.0`void std::__invoke_impl<void, void (SimpleSwitch::*)(unsigned long), SimpleSwitch*, unsigned long>((null)=__invoke_memfun_deref @ 0x00007fffefdf9920, __f=0x000060400003d828, __t=0x000060400003d820, __args=0x000060400003d818)(unsigned long), SimpleSwitch*&&, unsigned long&&) at invoke.h:73:14
frame #8: 0x00007ffff628f3ab libsimpleswitch_runner.so.0`std::__invoke_result<void (SimpleSwitch::*)(unsigned long), SimpleSwitch*, unsigned long>::type std::__invoke<void (__fn=0x000060400003d828, __args=0x000060400003d820, __args=0x000060400003d818)(unsigned long), SimpleSwitch*, unsigned long>(void (SimpleSwitch::*&&)(unsigned long), SimpleSwitch*&&, unsigned long&&) at invoke.h:95:14
frame #9: 0x00007ffff628eda9 libsimpleswitch_runner.so.0`void std::thread::_Invoker<std::tuple<void (SimpleSwitch::*)(unsigned long), SimpleSwitch*, unsigned long> >::_M_invoke<0ul, 1ul, 2ul>(this=0x000060400003d818, (null)=_Index_tuple<0UL, 1UL, 2UL> @ 0x00007fffefdf99a8) at thread:244:13
frame #10: 0x00007ffff628ea6d libsimpleswitch_runner.so.0`std::thread::_Invoker<std::tuple<void (SimpleSwitch::*)(unsigned long), SimpleSwitch*, unsigned long> >::operator(this=0x000060400003d818)() at thread:251:11
frame #11: 0x00007ffff628e9e5 libsimpleswitch_runner.so.0`std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (SimpleSwitch::*)(unsigned long), SimpleSwitch*, unsigned long> > >::_M_run(this=0x000060400003d810) at thread:195:13
frame #12: 0x00007ffff5555df4 libstdc++.so.6`___lldb_unnamed_symbol7640 + 20
frame #13: 0x00007ffff57ba609 libpthread.so.0`start_thread(arg=<unavailable>) at pthread_create.c:477:8
frame #14: 0x00007ffff5391353 libc.so.6`__clone at clone.S:95
from behavioral-model.
I do not know how many people are reading issues created for the behavioral-model that might know about this, but hopefully someone will respond.
I would recommend checking in any ONOS help or support forums you know of, to see if anyone there has run across this behavior.
from behavioral-model.
Related Issues (20)
- how to achieve a timer in bmv2 HOT 3
- Can BMv2 interfaces be bound to virtual network cards of two virtual machines? How should this be done specifically? HOT 2
- Can I get the index of a value in the register by custom_lib? HOT 4
- import thrift
- TCP packets seem not to be processed correctly by bmv2 HOT 2
- Problem using multicast in runtime HOT 2
- How to build behavioral-model on the MacOS(Apple M1 Pro(13.5)) HOT 2
- How to track fileds of metadata with p4dbg? HOT 2
- Approximate conversion of bmv2 p4 performance to hardware performance HOT 3
- Applying the same table twice HOT 2
- Required to set forwarding pipeline before using the dataplane for streaming packets HOT 10
- Update project to require C++17 HOT 9
- Race conditions when passing in a BMv2 JSON config HOT 12
- To Add PNA support into BMv2. HOT 5
- How to build simple_switch / simple_switch_grpc on Ubuntu 24.04 ? HOT 4
- Why bmi_port.c is a C code? HOT 2
- Race conditions when processing packet in the egress pipeline. HOT 6
- Heap Buffer Overflow when installing many table entries HOT 1
- CMake support HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from behavioral-model.