facebook / fboss

Facebook Open Switching System Software for controlling network switches.
Other
860 stars 295 forks source link

Using interface ID 1000 crashes wedge_agent #78

Open bluecmd opened 5 years ago

bluecmd commented 5 years ago

Hi,

In https://github.com/facebook/fboss/blob/master/fboss/agent/configs/sample3.json you document that a reasonable number for an interface ID is 1000. This number is not allowed by the code in TunManager.cpp.

Using interface 1000 results in a negative table ID and this trace:

[...]
1017 21:45:55.289333 10665 ArpHandler.cpp:153] sending ARP request on vlan 552 to 10.32.12.250 (ff:ff:ff:ff:ff:ff): 10.32.12.250 is 56:ab:3a:05:fc:0a
I1017 21:45:55.726236 10671 FunctionScheduler.cpp:505] Now running updateStats
I1017 21:45:56.011499 10664 SwSwitch.cpp:1129] Link state changed: 61->UP
V1017 21:45:56.011653 10664 SwSwitch.cpp:39] LinkState: Port 61 Up
I1017 21:45:56.011729 10666 SwSwitch.cpp:787] preparing state update Port OperState Update
I1017 21:45:56.011877 10666 SwSwitch.cpp:921] Updating state: old_gen=2 new_gen=3
V1017 21:45:56.012053 10666 BcmSwitch.cpp:927] Oper state changed on port 61: UP
V1017 21:45:56.012317 10666 SwSwitch.cpp:970] Update state took 437us
V1017 21:45:56.012439 10669 QsfpCache.cpp:95] Will sync port 61
V1017 21:45:56.012494 10669 QsfpCache.cpp:158] Starting new request
V1017 21:45:56.013056 10669 QsfpCache.cpp:140] Will try to sync 1 ports to qsfp_service
I1017 21:45:56.013183 10664 SwSwitch.cpp:1129] Link state changed: 62->UP
V1017 21:45:56.013342 10664 SwSwitch.cpp:39] LinkState: Port 62 Up
I1017 21:45:56.013737 10667 TunManager.cpp:229] Brought up interface fboss1000 @ index 6
F1017 21:45:56.013898 10667 TunManager.cpp:252] Check failed: tableId >= 1 (-740 vs. 1)
I1017 21:45:56.014421 10666 SwSwitch.cpp:787] preparing state update Port OperState Update
I1017 21:45:56.014553 10666 SwSwitch.cpp:921] Updating state: old_gen=3 new_gen=4
V1017 21:45:56.015269 10666 BcmSwitch.cpp:927] Oper state changed on port 62: UP
V1017 21:45:56.015559 10666 SwSwitch.cpp:970] Update state took 1000us
V1017 21:45:56.015684 10669 QsfpCache.cpp:84] Already an active outstanding request to qsfp_service
*** Check failure stack trace: ***
    @     0x7fac6b11213d  google::LogMessage::Fail()
    @     0x7fac6b113fa3  google::LogMessage::SendToLog()
    @     0x7fac6b111ccb  google::LogMessage::Flush()
    @     0x7fac6b11498e  google::LogMessageFatal::~LogMessageFatal()
    @     0x55a8782e8efb  facebook::fboss::TunManager::getTableId()
    @     0x55a8782e935b  facebook::fboss::TunManager::addRemoveRouteTable()
    @     0x55a8782f0350  facebook::fboss::TunManager::addRouteTable()
    @     0x55a8782ed5cc  _ZZN8facebook5fboss10TunManager4syncESt10shared_ptrINS0_11SwitchStateEEENKUlRN5boost9container16container_detail12vec_iteratorIPSt4pairINS0_11InterfaceIDES9_IbNS6_8flat_mapIN5folly9IPAddressEhSt4lessISD_ENS6_13new_allocatorIS9_ISD_hEEEEEEELb1EEESO_E0_clESO_SO_
    @     0x55a8782eedd2  _ZN8facebook5fboss10TunManager12applyChangesIN5boost9container8flat_mapINS0_11InterfaceIDESt4pairIbNS5_IN5folly9IPAddressEhSt4lessIS9_ENS4_13new_allocatorIS7_IS9_hEEEEEESA_IS6_ENSC_IS7_IS6_SG_EEEEEZNS1_4syncESt10shared_ptrINS0_11SwitchStateEEEUlRNS4_16container_detail12vec_iteratorIPSI_Lb1EEESS_E0_ZNS1_4syncESN_EUlSS_E1_ZNS1_4syncESN_EUlSS_E2_EEvRKT_SY_T0_T1_T2_
    @     0x55a8782edd08  facebook::fboss::TunManager::sync()
    @     0x55a8782e771a  _ZZN8facebook5fboss10TunManager12stateUpdatedERKNS0_10StateDeltaEENKUlvE_clEv
    @     0x55a8782ef76c  _ZN5folly6detail8function14FunctionTraitsIFvvEE9callSmallIZN8facebook5fboss10TunManager12stateUpdatedERKNS7_10StateDeltaEEUlvE_EEvRNS1_4DataE
    @     0x55a878106d55  folly::detail::function::FunctionTraits<>::operator()()
    @     0x55a878d13910  folly::EventBase::FunctionRunner::messageAvailable()
    @     0x55a878d165f9  folly::NotificationQueue<>::Consumer::consumeMessages()
I1017 21:45:56.099323 10669 Cpp2Channel.cpp:198] Got an EOF on channel
V1017 21:45:56.099586 10669 QsfpCache.cpp:149] Got 1 transceivers from qsfp_service
V1017 21:45:56.099711 10669 QsfpCache.cpp:172] Finished request
    @     0x55a878d15224  folly::NotificationQueue<>::Consumer::handlerReady()
    @     0x55a878d1cc33  folly::EventHandler::libeventCallback()
    @     0x7fac6aca75a0  event_base_loop
    @     0x55a878d0fd4c  folly::EventBase::loopBody()
    @     0x55a878d0f7f6  folly::EventBase::loop()
    @     0x55a878d10db5  folly::EventBase::loopForever()
    @     0x55a878292840  facebook::fboss::SwSwitch::threadLoop()
    @     0x55a878291fc2  _ZZN8facebook5fboss8SwSwitch12startThreadsEvENKUlvE1_clEv
    @     0x55a87829be84  _ZNSt12_Bind_simpleIFZN8facebook5fboss8SwSwitch12startThreadsEvEUlvE1_vEE9_M_invokeIJEEEvSt12_Index_tupleIJXspT_EEE
    @     0x55a87829bcbf  _ZNSt12_Bind_simpleIFZN8facebook5fboss8SwSwitch12startThreadsEvEUlvE1_vEEclEv
    @     0x55a87829bbf2  _ZNSt6thread11_State_implISt12_Bind_simpleIFZN8facebook5fboss8SwSwitch12startThreadsEvEUlvE1_vEEE6_M_runEv
    @     0x7fac652d4e6f  (unknown)
    @     0x7fac6ba3c494  start_thread
    @     0x7fac64a49acf  clone
    @              (nil)  (unknown)
Aborted

Configuration:

...
    "vlans": [
        {
            "id": 1,
            "ipAddresses": [],
            "name": "DEFAULT",
            "recordStats": true,
            "routable": false
        },
        {
            "id": 552,
            "ipAddresses": [],
            "name": "DEPLOY",
            "recordStats": true,
            "routable": false
        }
    ],
    "interfaces": [
        {
              "intfID": 10,
              "routerID": 0,
              "vlanID": 552,
              "ipAddresses": [
                    "10.32.12.250/24"
              ]
        }
    ]
}