Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Rotating-Id-Generation branch from master #11

Merged
merged 32 commits into from
Jan 14, 2021

Conversation

hnnajh
Copy link
Owner

@hnnajh hnnajh commented Jan 14, 2021

Problem

<<<<<FILL ME IN - the issue this PR is intended to address>>>>>

Summary of Changes

<<<<<FILL ME IN - what's in this PR>>>>>

Fixes #<<<<<FILL ME IN - issue number(s). If no issue, please create one>>>>>

yufengwangca and others added 30 commits January 7, 2021 13:53
* Integrate CRMP to messaging layer and enable it by default

* Address review comments

* Add re-transmition test with dropped sent packets

* Use reference to share mContextPool between ReliableMessageManager and ExchangeManager

* Use PacketBufferHandle instead of raw PacketBuffer to store message buffer in retransmit table

* Retain an extra handle of msgBuf before sending for following rewinding

* Retain the buffer within SecureSessionMgr and update the retrans entry

* Address the review comments

Update src/transport/SecureSessionMgr.h

Co-authored-by: Boris Zbarsky <[email protected]>

* Take care of various error cases in HandleMessage

* Update src/messaging/ExchangeContext.cpp

Co-authored-by: Boris Zbarsky <[email protected]>

* Update src/messaging/ExchangeContext.cpp

Co-authored-by: Boris Zbarsky <[email protected]>

* Update src/messaging/ExchangeContext.cpp

Co-authored-by: Boris Zbarsky <[email protected]>

* Update src/messaging/ExchangeContext.cpp

Co-authored-by: Boris Zbarsky <[email protected]>

* Update src/messaging/ExchangeContext.cpp

Co-authored-by: Boris Zbarsky <[email protected]>

* Update src/messaging/ExchangeMgr.cpp

Co-authored-by: Boris Zbarsky <[email protected]>

* Use initializer to initilize the EncryptedPacketBufferHandle memebers

* Simplify sendMessage API for sending encrypted message

* Skip re-setting up the packet header when the message is already encrypted.

* Add the Unit test for SecureSessionMgr

Co-authored-by: Boris Zbarsky <[email protected]>
This PR introduces a folder inside `src/app/zap-templates` to host custom
ZCL extensions such as the `MfgSpecificPing` command introduced in #4127 as
well as a `Binding Cluster` from #4156.

The `Binding Cluster` exposes 2 methods, `Bind` and `Unbind`. The current spec
defines `bindings` has an `RW` attribute but an issue has been opened since it does
not look very convenient (see CHIP-Specifications/connectedhomeip-spec#627)

The `gen/` folders are also updated to reflect the addition of the `Binding Cluster`.
Futhermore, the 2 scripts used to generates the `gen/` folders have also been updated to
points to the `src/app/zap-templates/zcl/zcl.json` instead of `third_party/zap/repo/zcl-builtin/silabs/zcl.json`
since the former is a superset of the later.
In #3879, an `OnOffCluster` class has been introduced. This class has been
handrolled to have a base template.

This PR generates C++ wrappers for the ZCL clusters from the `all-clusters-app`,
which is what has been used to generate the code inside `chip-tool` and `src/app`.

Included in this PR are the templates used for generating the wrappers.
Problem
We don't have e2e validation for Interaction Model.

Summary of Changes
-- Add e2e validation test for Interaction Mode in cirque

Fixes #4282
This code add a new `Binding Cluster` that contains a `Bind` and `Unbind` method in order to create bindings between devices using the underlying ZCL code.

I have added it to be compile in all the `examples/`, similarly to `reporting` even if it is unused now.
In fact one may noticed that there it no headers for it. This is because the declarations are going to be generated as part of `gen/callbacks.h`.
* Convert mdns Builder classes to use PacketBufferHandle

#### Problem

Code should use `PacketBufferHandle` rather than `PacketBuffer`
directly.

#### Summary of Changes

Convert mdns::Minimal::QueryBuilder and mdns::Minimal::ResponseBuilder
to take and hold PacketBufferHandle.

Part of issue #2707 - Figure out a way to express PacketBuffer ownership in the type system

* Review: make QueryBuilder take const&

* WIP

* Revise to match ResponseBuilder in #4102

* Restyled by clang-format

* remove PacketReporter.cpp change

Co-authored-by: Restyled.io <[email protected]>
…4177)

* Initial definition of an mDNS advertiser

* Make chip app server listen on mdns by default

* Replace DiscoveryManager with advertiser

* Fix compilation, ensure we shutdown before we listen for mDNS server, to make sure multiple start calls work

* Always advertise as operational, add some more logging

* Register delegates, add some logging, fix PTR records

* Remove errand space

* Fix crash in ESP code on broadcast

* Fix return value: ref return does not work well

* Update logging verbosity on ESP32: chip already configures its logging, so mark esp verbosity to verbose

* hex format server name

* Better logging, fix server discovery

* Update registration of names

* Restyle fixes

* Make ipv4 in minmdns optional

* Fix logic error in interface lister

* Move Clone into SystemPacketBuffer. Clean up a bit of handle usage in mdns

* Make stringbuilder a support class

* Restyle fixes

* Fix build after merge with master

* Use dynamic memory allocation for responders

* Update to use dynamic memory for qnames as well

* Use clear to reset state

* Move Flat allocated qnames in separate file and add unit tests

* Add some doccomments

* Remove redundant information from srv responder contructor arguments

* Order of init fix

* Rename Clone to CloneData

* Add nullptr setting during clear

* Replace minimal-mdns with minimal

* Clariy update for interface iteration

* Validate qname memory allocation

* Restyle fixes

* Make doxygen happy

* Make doxygen happy

* Cleanup doccomments

* Minimize template-specific code within minimal mdns memory allocation code - hoping for a size reduction of code
* SystemPacketBuffer.h cleanup

#### Problem

Code should use `PacketBufferHandle` rather than `PacketBuffer *`.
Some existing methods should be removed or made private so that code
does not have unnecessary access to the raw pointer.

#### Summary of Changes

- convert public use of `PacketBufferHandle::Adopt()`.
- convert internal use of `Adopt()` to private `Free()`.
- renamed `PacketBuffer::Create()` factory to `Adopt()`.
- rename private `PacketBuffer::Next()` to `ChainedBuffer()`.
- explicity note `PacketBuffer::Next_ForNow()` remaining use in TLV.
- make `PacketBuffer::Free()` private.
- make `PacketBuffer::Consume()` private.
- make `PacketBuffer::AddToEnd_ForNow()` private (still used in tests).
- remove `PacketBuffer::FreeHead_ForNow()`.
- remove `operator*`.

Part of issue #2707 - Figure out a way to express PacketBuffer ownership in the type system

* Fix build (crossed paths with #4132)

* Remove PacketBufferHandle::Free()

* Fixes for #4241
* Disable CRMP if sending over non-UDP transport

* Address review comments
nrfconnect platform is based on the Zephyr and in many cases it uses
Zephyr specific components implementation. Zephyr specific files should
be located in the Zephyr platform.

* Moved Zephyr specific modules from the nrfconnect to the Zephyr platform
* Moved BLEManagerImpl and ThreadStackManagerImpl implementations from Generic_Zephyr files.
* Removed Generic_Zephyr files.
* Aligned READMEs for nrfconnect and Zephyr platforms.
* Call Platform::MemoryInit in the setup code parser library.

- MemoryInit is required since some setup parsing methods may use
Platform::Memory
- cleanup the code for parsing: "SuccessOrExit(size == 0)" reads oddly
... it exists when the condition is false.

* Remove extra added file
* Some cleanup in secure session manager code

* Address review comments

* address review comments

* review comments

* update enum variants
#4219)

* Define global attributes ids only once instead of repeating them for all clusters

* Update src/app/zap-templates/attribute-id.zapt

Co-authored-by: Boris Zbarsky <[email protected]>

Co-authored-by: Boris Zbarsky <[email protected]>
#### Problem

The `CHECK_RETURN_VALUE` macro is conditionally defined to a
non-standard attribute that indicates that a function return value
should not be ignored. C++17 standardizes this as `[[nodiscard]]`
and some compilers also support this attribute in earlier versions.

#### Summary of Changes

Use `[[nodiscard]]` when it is known to be available.
- C++17 or later
- gcc 7 or later, per https://gcc.gnu.org/projects/cxx-status.html
- clang 4 or later, per https://clang.llvm.org/cxx_status.html
Spec requirement is that device shall require explicit trigger
of NFC pairing mode via a physical interaction on the device, while
currently NFC tag emulation is started automatically after init.

* Moved NFC tag starting method from init to the button handler
* Added GetTagState method to the NFCWidget
* Aligned samples documentation
* Add Common protocol definations

* Rename CommonProtocol.h to Constants.h

* Rename secure_channel/SecureChannelProtocol.h to secure_channel/Constants.h
* Add more unit tests for sending pre-encrypted messages

* restyled

* Fix test compilation

* restyled
* Revise CHIPTLV to increase PacketBuffer safety

#### Problem

CHIPTLV stores pointers to PacketBuffers (and CHIPCircularTLVBuffers)
as integers, and its code also uses some unsafe PacketBuffer methods
that are used nowhere else and should be removed.

#### Summary of Changes

- Replace the `int mBufHandle` used to hold pointers in TLV classes,
  and the associated callbacks, with a TLVBackingStore interface.
- Implement the TLVBackingStore interface on CHIPCircularTLVBuffers.
- Implement the TLVBackingStore interface for PacketBuffers, and add
  PacketBufferTLVReader/Writer modelled on CHIPCircularTLVReader/Writer.
- Incidentally, move existing interface documentation to CHIPTLV.h.

fixes #4163 Revise CHIPTLV for PacketBuffer safety

* Fix doxygen

* Correct copyright dates

* Code review

* Remove #pragma GCC diagnostic
* Initial definition of an mDNS advertiser

* Make chip app server listen on mdns by default

* Replace DiscoveryManager with advertiser

* Fix compilation, ensure we shutdown before we listen for mDNS server, to make sure multiple start calls work

* Always advertise as operational, add some more logging

* Register delegates, add some logging, fix PTR records

* Remove errand space

* Fix crash in ESP code on broadcast

* Fix return value: ref return does not work well

* Update logging verbosity on ESP32: chip already configures its logging, so mark esp verbosity to verbose

* hex format server name

* Better logging, fix server discovery

* Update registration of names

* Restyle fixes

* Make ipv4 in minmdns optional

* Fix logic error in interface lister

* Move Clone into SystemPacketBuffer. Clean up a bit of handle usage in mdns

* Make stringbuilder a support class

* Restyle fixes

* Fix build after merge with master

* Use dynamic memory allocation for responders

* Update to use dynamic memory for qnames as well

* Use clear to reset state

* Move Flat allocated qnames in separate file and add unit tests

* Add some doccomments

* Remove redundant information from srv responder contructor arguments

* Order of init fix

* Rename Clone to CloneData

* Add nullptr setting during clear

* Replace minimal-mdns with minimal

* Clariy update for interface iteration

* Validate qname memory allocation

* Restyle fixes

* Make doxygen happy

* Make doxygen happy

* Cleanup doccomments

* Minimize template-specific code within minimal mdns memory allocation code - hoping for a size reduction of code

* Add methods for commisionable advertisement in the minmdns advertiser

* Create an example advertiser app, that uses the mdns advertiser

* Added some documentation, renamed advertiser to exclude minimal since we use the platform advertiser in this example

* Added error handling and remove -v option (apparently we auto-use it for version, which seems unfortunate)

* Only enable -4 option if ipv4 is configured

* Fix ipv4 listening for minmdns

* Update parameters to match examples in spec

* Vid/pid are 16-bit apparently

* Make the example app server advertise operational as well

* Rename Commisionable to Commsioning - this is what we actually added. Naming is a bit too close for comfort ...

* Restyle fixes

* Add back method definition (merge error)

* Implement assignment operator in Optional since =default does not work

* Replace commisionable with commisioning

* Update based on code review feedback

* Shorten the advertiser parameters code: do not build everything into one

* Fix compilation (missing braces on method call)

* Fix crash min minmdns query builder - header buffer assignment is required on reset
* [zephyr] Fix compatibility with newer Zephyr

As a result of
zephyrproject-rtos/zephyr#29357
BLE indication callback parameter type has changed in
recent Zephyr revisions.

* Restyled by clang-format

Co-authored-by: Restyled.io <[email protected]>
* CHIP Certificate Implementation.

  -- Implements core logic to load, process, validate CHIP certificates.
  -- Implements CHIP to X509 certificate conversion functions.
  -- Implements X509 to CHIP Certificate conversion functions.

* Addressed Review Comments.

* Addressed Review Comments.

* CHIP Certificate Implementation.

  -- Implements core logic to load, process, validate CHIP certificates.
  -- Implements CHIP to X509 certificate conversion functions.
  -- Implements X509 to CHIP Certificate conversion functions.

* Apply suggestions from code review

Co-authored-by: Boris Zbarsky <[email protected]>

* Addressed Review Comments

* Fixed compile error

Co-authored-by: Boris Zbarsky <[email protected]>
* Add TCP support to chip echo test app

* Change argument 'tcp' to '--tcp'
)

* Initial support of the Texas Instruments CC13X2 CC26X2 MCU family

* Update headers to match repository

 * Switched License header to Apache 2.0 for SysConfig file.

 * Replaced C ternary statements with boolean returns.

 * Replaced Pre-processor include guards with `#pragma once`.

 * Removed unnecessary forward declarations.

* Restyled by whitespace

* Restyled by clang-format

* Restyled by gn

* Restyled by prettier-markdown

* fix whitespace (tab) issue from restyled

* fix clang-format build issues from restyled

Includes for board specific header files need path delimiters.

* Restyled by whitespace

* revert incorrect changes to m5stack-tft repo

* remove common nv driver

Revert to using the SDK version of the common nv driver and enable the
POSIX-like porting layer.

* remove ti sdk files

Revert to using the platform support files in the board specific example
from the TI SDK. This adds a step to installing the TI SDK to fix-up
changes to work with the development version of OpenThread.

* Restyled by clang-format

* Restyled by gn

* Restyled by prettier-markdown

* add freertos as a submodule

* move openthread platform to simplelink build file

* clean up build graph

* fix OpenThread configuration to match TI SDK

* update lwip config header

* Restyled by clang-format

* Restyled by gn

* remove usage of $HOME

This now requires the user to set the absolute locations of the TI SDK and
SysConfig tools.

* Restyled by prettier-markdown

* fix build issues

* size sha workspace for the CC13X2 CC26X2

* Restyled by gn

* fix gn style and remove commented out code

* fix cpp elif in efr32

* re-enable openthread on efr32 and disable on esp32

* align with other platform doxygen disable defines

Co-authored-by: Restyled.io <[email protected]>
yufengwangca and others added 2 commits January 12, 2021 15:56
…low (#4302)

* Stack usage optimizations Configuration manager port functionality
* Cleanup of smaller items
* Update qpg_sdk submodule for additional API

* comments integrated
* Merge conflict with #4304 fixed - Create -> Adopt
@hnnajh hnnajh merged commit f442451 into hnnajh:rotating-id-generation Jan 14, 2021
hnnajh pushed a commit that referenced this pull request Jul 22, 2022
It's not safe to access line editing state from the IO thread while
inside readline() on the main thread.

Remove the code that attempts to redraw readline after printing logs.
This avoids segfaults during logging at the cost of those logs
overwriting the prompt (this is not trivial to fix as readline
is a blocking API).

==================
WARNING: ThreadSanitizer: data race (pid=63005)
  Write of size 1 at 0x55f81c7745ff by main thread:
    #0 InteractiveStartCommand::ParseCommand(char*) ../../examples/chip-tool/commands/interactive/InteractiveCommands.cpp:127 (chip-tool+0x874911)
    #1 InteractiveStartCommand::RunCommand() ../../examples/chip-tool/commands/interactive/InteractiveCommands.cpp:85 (chip-tool+0x874594)
    #2 CHIPCommand::StartWaiting(std::chrono::duration<unsigned int, std::ratio<1l, 1000l> >) ../../examples/chip-tool/commands/common/CHIPCommand.cpp:408 (chip-tool+0x83e478)
    #3 CHIPCommand::Run() ../../examples/chip-tool/commands/common/CHIPCommand.cpp:187 (chip-tool+0x83c839)
    #4 Commands::RunCommand(int, char**, bool) ../../examples/chip-tool/commands/common/Commands.cpp:147 (chip-tool+0x85d4f7)
    #5 Commands::Run(int, char**) ../../examples/chip-tool/commands/common/Commands.cpp:51 (chip-tool+0x85c288)
    #6 main <null> (chip-tool+0x569c0a)

  Previous read of size 1 at 0x55f81c7745ff by thread T5 (mutexes: write M185):
    #0 LoggingCallback ../../examples/chip-tool/commands/interactive/InteractiveCommands.cpp:46 (chip-tool+0x874479)
    #1 chip::Logging::LogV(unsigned char, unsigned char, char const*, __va_list_tag*) ../../src/lib/support/logging/CHIPLogging.cpp:221 (chip-tool+0x8ee4dc)
    #2 chip::Logging::Log(unsigned char, unsigned char, char const*, ...) ../../src/lib/support/logging/CHIPLogging.cpp:172 (chip-tool+0x8ee30a)
    #3 chip::app::ReadClient::RefreshLivenessCheckTimer() <null> (chip-tool+0x8b1746)
    #4 chip::app::ReadClient::ProcessSubscribeResponse(chip::System::PacketBufferHandle&&) ../../src/app/ReadClient.cpp:845 (chip-tool+0x8b20ec)
    #5 chip::app::ReadClient::OnMessageReceived(chip::Messaging::ExchangeContext*, chip::PayloadHeader const&, chip::System::PacketBufferHandle&&) ../../src/app/ReadClient.cpp:409 (chip-tool+0x8ae2a4)
    #6 chip::Messaging::ExchangeContext::HandleMessage(unsigned int, chip::PayloadHeader const&, chip::BitFlags<chip::Messaging::MessageFlagValues, unsigned int>, chip::System::PacketBufferHandle&&) <null> (chip-tool+0xa0517a)
    #7 operator()<chip::Messaging::ExchangeContext> ../../src/messaging/ExchangeMgr.cpp:219 (chip-tool+0xa08c73)
    #8 Call ../../src/lib/support/Pool.h:126 (chip-tool+0xa0912d)
    #9 chip::internal::HeapObjectList::ForEachNode(void*, chip::Loop (*)(void*, void*)) ../../src/lib/support/Pool.cpp:127 (chip-tool+0x8ee05a)
    #10 ForEachActiveObject<chip::Messaging::ExchangeManager::OnMessageReceived(const chip::PacketHeader&, const chip::PayloadHeader&, const chip::SessionHandle&, chip::SessionMessageDelegate::DuplicateMessage, chip::System::PacketBufferHandle&&)::<lambda(auto:2*)> > ../../src/lib/support/Pool.h:396 (chip-tool+0xa08d10)
    #11 chip::Messaging::ExchangeManager::OnMessageReceived(chip::PacketHeader const&, chip::PayloadHeader const&, chip::SessionHandle const&, chip::SessionMessageDelegate::DuplicateMessage, chip::System::PacketBufferHandle&&) ../../src/messaging/ExchangeMgr.cpp:212 (chip-tool+0xa07e91)
    #12 chip::SessionManager::SecureUnicastMessageDispatch(chip::PacketHeader const&, chip::Transport::PeerAddress const&, chip::System::PacketBufferHandle&&) ../../src/transport/SessionManager.cpp:616 (chip-tool+0xa1548b)
    #13 chip::SessionManager::OnMessageReceived(chip::Transport::PeerAddress const&, chip::System::PacketBufferHandle&&) ../../src/transport/SessionManager.cpp:443 (chip-tool+0xa14426)
    #14 chip::TransportMgrBase::HandleMessageReceived(chip::Transport::PeerAddress const&, chip::System::PacketBufferHandle&&) ../../src/transport/TransportMgrBase.cpp:76 (chip-tool+0xa17dfa)
    #15 chip::Transport::Base::HandleMessageReceived(chip::Transport::PeerAddress const&, chip::System::PacketBufferHandle&&) ../../src/transport/raw/Base.h:102 (chip-tool+0xb19728)
    #16 chip::Transport::UDP::OnUdpReceive(chip::Inet::UDPEndPoint*, chip::System::PacketBufferHandle&&, chip::Inet::IPPacketInfo const*) ../../src/transport/raw/UDP.cpp:122 (chip-tool+0xb1a48b)
    #17 chip::Inet::UDPEndPointImplSockets::HandlePendingIO(chip::BitFlags<chip::System::SocketEventFlags, unsigned char>) ../../src/inet/UDPEndPointImplSockets.cpp:688 (chip-tool+0xb00aa0)
    #18 chip::Inet::UDPEndPointImplSockets::HandlePendingIO(chip::BitFlags<chip::System::SocketEventFlags, unsigned char>, long) ../../src/inet/UDPEndPointImplSockets.cpp:569 (chip-tool+0xafff89)
    #19 chip::System::LayerImplSelect::HandleEvents() ../../src/system/SystemLayerImplSelect.cpp:406 (chip-tool+0xb07563)
    #20 chip::DeviceLayer::Internal::GenericPlatformManagerImpl_POSIX<chip::DeviceLayer::PlatformManagerImpl>::_RunEventLoop() ../../src/include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp:181 (chip-tool+0x98a227)
    #21 chip::DeviceLayer::PlatformManager::RunEventLoop() ../../src/include/platform/PlatformManager.h:362 (chip-tool+0x988f75)
    #22 chip::DeviceLayer::Internal::GenericPlatformManagerImpl_POSIX<chip::DeviceLayer::PlatformManagerImpl>::EventLoopTaskMain(void*) ../../src/include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp:205 (chip-tool+0x98a87c)

  Location is global '(anonymous namespace)::gIsCommandRunning' of size 1 at 0x55f81c7745ff (chip-tool+0x000000c485ff)

  Mutex M185 (0x55f81c776180) created at:
    #0 pthread_mutex_lock ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4240 (libtsan.so.0+0x4f30a)
    #1 chip::DeviceLayer::Internal::GenericPlatformManagerImpl_POSIX<chip::DeviceLayer::PlatformManagerImpl>::_LockChipStack() ../../src/include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp:78 (chip-tool+0x989e90)
    #2 chip::DeviceLayer::PlatformManager::LockChipStack() ../../src/include/platform/PlatformManager.h:410 (chip-tool+0x988fa5)
    #3 chip::DeviceLayer::Internal::GenericPlatformManagerImpl_POSIX<chip::DeviceLayer::PlatformManagerImpl>::_RunEventLoop() ../../src/include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp:170 (chip-tool+0x98a147)
    #4 chip::DeviceLayer::PlatformManager::RunEventLoop() ../../src/include/platform/PlatformManager.h:362 (chip-tool+0x988f75)
    #5 chip::DeviceLayer::Internal::GenericPlatformManagerImpl_POSIX<chip::DeviceLayer::PlatformManagerImpl>::EventLoopTaskMain(void*) ../../src/include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp:205 (chip-tool+0x98a87c)

  Thread T5 (tid=63013, running) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x5ad75)
    #1 chip::DeviceLayer::Internal::GenericPlatformManagerImpl_POSIX<chip::DeviceLayer::PlatformManagerImpl>::_StartEventLoopTask() ../../src/include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp:231 (chip-tool+0x98a40a)
    #2 chip::DeviceLayer::PlatformManager::StartEventLoopTask() ../../src/include/platform/PlatformManager.h:375 (chip-tool+0xaacca2)
    #3 chip::Controller::DeviceControllerFactory::ServiceEvents() ../../src/controller/CHIPDeviceControllerFactory.cpp:331 (chip-tool+0xab0417)
    #4 CHIPCommand::StartWaiting(std::chrono::duration<unsigned int, std::ratio<1l, 1000l> >) ../../examples/chip-tool/commands/common/CHIPCommand.cpp:403 (chip-tool+0x83e353)
    #5 CHIPCommand::Run() ../../examples/chip-tool/commands/common/CHIPCommand.cpp:187 (chip-tool+0x83c839)
    #6 Commands::RunCommand(int, char**, bool) ../../examples/chip-tool/commands/common/Commands.cpp:147 (chip-tool+0x85d4f7)
    #7 Commands::Run(int, char**) ../../examples/chip-tool/commands/common/Commands.cpp:51 (chip-tool+0x85c288)
    #8 main <null> (chip-tool+0x569c0a)

SUMMARY: ThreadSanitizer: data race ../../examples/chip-tool/commands/interactive/InteractiveCommands.cpp:127 in InteractiveStartCommand::ParseCommand(char*)
==================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.