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-test-backup from remote master #6

Merged
merged 57 commits into from
Dec 10, 2020

Conversation

hnnajh
Copy link
Owner

@hnnajh hnnajh commented Dec 10, 2020

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 December 3, 2020 09:22
Due to unknown openthread change, simulated rcp cannot be generated by
ot, which is needed for cirque thread tests. We will temporarily disable
this test to unblock the master, and renable it in pr/3995
#### Problem

Code should use `PacketBufferHandle` rather than `PacketBuffer` directly,
and `//src/protocols/bdx` contains structures that must not outlive the
correponding `PacketBuffer`.

#### Summary of Changes

Pass `PacketBufferHandle` to the various `Parse()` functions, and hold
on to it in the structure so that pointers into the buffer remain valid.

Part of issue #2707 - Figure out a way to express PacketBuffer ownership in the type system
* Add separate transport for IPv4 and IPv6 in controller

- The controller was using IPv6 by default. However the demos accessories
  still use/support IPv4. The controller code was detecting this using
  device's IP address, and closing and reopening the socket. This however,
  caused select loop to error out sometimes (race condition between when
  select loop picked up the sock FD, and when the controller closed it).

- Changing controller code to use two separate transports, one for IPv6 and
  the other for IPv4.

- The controller can still close the socket, but this happens only when the
  current socket times out.

* use IPv4 only if its enabled

* Address review comments
* [hotfix] Fix cirque test due to openthread change

* Revert "temporary disable cirque test (#4076)"

This reverts commit 69a35c0.
There are a few issues with the current template.
 1. {{isArray}} is not taken into account. It results into a mismatch between
    the signatures of some clusters methods
 2. Instead of using raw types, such as 'uint8_t', 'uint16_t', the current template
    uses 'enum'. It creates 2 types of issues:
     * The current template generates code that rely on sizeof(type) to move the
       pointer for the payload buffer. It does not work well with 'enum'.
     * The signatures of methods are using raw types. So it ask for a change
       in all the cluster signatures.
  3. The buffer start pointer is mispositioned: It uses 0 instead of cmd->payloadStartIndex
  4. String are using 'uint8_t *', which is OK but the pointer to the payload buffer is not
     moved to take into account the additional bytes with the size of the string
* [android/CHIPTool] Re-add proper Thread provisioning

1. Implement a function to pass Thread Channel, PANID,
   XPANID and Master Key from Java to the JNI layer.
2. When network credentials are to be entered during the
   rendezvous, display a tabbed fragment with two tabs:
   - one with the existing fragment for entering Wi-Fi
     credentials
   - one with a new fragment for entering Thread credentials.

* Handle provisioning completion and add copyright headers

* Restyled by google-java-format

Co-authored-by: Restyled.io <[email protected]>
Part of a larger cleanup. Replacing folder one by one since mass-replacement seemed to have resulted in some harder to track dependency errors.
* [cirque] Create dedicated dockerfile for cirque

* Fix docker build

* Address comments

* Restyled by shellharden

* Restyled by shfmt

* Revert "temporary disable cirque test (#4076)"

This reverts commit 69a35c0.

* Fix build

Co-authored-by: Restyled.io <[email protected]>
* Extract README CLI section to separate guide

Co-authored-by: Grzegorz Ferenc <[email protected]>

* Created example configuration section.

* Restyled by prettier-markdown

* Reworked Intro/Overview/Device UI sections of examples's READMEs.

* Rework Building section

* Restyled by prettier-markdown

* Tech writer review: CLI and configuration page review

Signed-off-by: Grzegorz Ferenc <[email protected]>
Co-authored-by: Kamil Kasperczyk <[email protected]>

* Tech writer review: apply some comments from Damian

Signed-off-by: Grzegorz Ferenc <[email protected]>

* Fixed description in the configuration structure overview section.

* Tech writer review: review apps

Edited the docs for lighting and lock app.

Signed-off-by: Grzegorz Ferenc <[email protected]>

* Added nRF Connect platform overview guide.

* Tech writer review

Reworked figure. Reviewed doc.

Signed-off-by: Grzegorz Ferenc <[email protected]>

* Final review of READMEs

- Clarify some sections
- Remove redundant sections
- Fix some paths used in the docs
- Use nRF52840 DK board image encoded as jpg instead of png
- Fix after rebase to master

* Restyled by prettier-markdown

* Restyled by prettier-markdown

Co-authored-by: Grzegorz Ferenc <[email protected]>
Co-authored-by: Kamil Kasperczyk <[email protected]>
Co-authored-by: Restyled.io <[email protected]>
* Convert support tests to auto test driver building

* Restyle fixes

* Rename unit tests

* Allow persisted storage test only on mac and linux

* Restyle fixes

* Update TestUtils.h to UnitTestRegistration.h

* Move TestPool to auto test driver generation
Encapsulate setting ESP32's BLEManagerImpl::CHIPoBLEConState.

(Requested in review comments on PR #4011. Other existing `BLEManagerImpl`s
don't use this pattern.)
The `gen/` folder of `examples/` apps has not been updated with the latest changes from
`src/app/zap-templates`.

Those changes are:
 * Add back `client-command-macro.h` files
 * Update the command/response decoding code in `gen/call-command-handler.cpp`
 * Use `{{asUnderlyingZclType}}` in more places instead of using `zap-templates/override.js` which relies on labels to decide on the underlying type.
* Fix empty struct generation

* Update PR

* Restyled by clang-format

* Restyled by clang-format

Co-authored-by: Restyled.io <[email protected]>
…o creating a parsing function. (#3970)

* Fix issue #3874

* Update error status
…4014)

* Create a 'Buffer Writer' class modeled after BufBound.

We already have a 'BufferReader' that is in an endian-specific
namespace, it seems natural to have a 'BufferWriter' that does the
writing part.

It maintains the same logic as BufBound, except it only holds 'Put'
versions (rather than LE/BE named ones)

* Convert mdns to BufferWriter. Allow mixed buffer writing in the API and add unit test for it

* Restyle fixes

* Remove useless cast in put code on resourcerecord

* Code review comments, including ensuring that StartingFrom will preserve Fits()

* Fix include name after merging to master

* Code review comments: do not memmove on potentially invalid pointer

* Update after merge: move to BigEndian::BufferWriter

* Restyle fixes
…oid CHIPTool (#4074)

* [doc] Add a guide about commissioning nRF Connect examples

Describe how to commission a Thread device running CHIP
firmware like nRF Connect Lock Example using Android
CHIPTool.

* doc: tech writer review

Signed-off-by: Grzegorz Ferenc <[email protected]>

* Further improvements

- Add information about DHCP server on Ubuntu 18.04
- Update Thread provisioning procedure

* Apply code review comments

* Restyled by prettier-markdown

Co-authored-by: Grzegorz Ferenc <[email protected]>
Co-authored-by: Restyled.io <[email protected]>
)

The `src/app/chip-zcl-zpro-codec-api.h` and `src/app/encoder.cpp` code
has been generated using `Dotdot` XML definition while the `examples/` are
now generated using the `SiLabs` XML definition.

The above changes update those files to use `Silabs` XML definition and
add the used templates to generate those files to `src/app/zap-templates`.

`examples/chip-tool/commands/clusters/Commands.h` also needs to be updated
to match the new code gen. The changes are mostly names changes, even if a few
attributes are not reporting anymore. Should not hurt at that point.

This is basically the groundwork to be able to generate more wrappers.
vidhis88 and others added 27 commits December 7, 2020 20:51
Add distinct buttons to Android app to provision
Wi-Fi vs Thread network during CHIP device setup.
- support legacy respones (include query in the response)
- Some refactoring for better readability
Breaking out fault injection and signalling from the header
into two separate headers.

Renaming implementations to Test*Posix.cpp to show there may
be other platforms that implement those headers.
#### Problem

Code is being converted to use `PacketBufferHandle`, but some
`PacketBuffer` declarations were left behind.

#### Summary of Changes

Delete and/or rename obsolete `using` declarations.

Part of issue #2707 - Figure out a way to express PacketBuffer ownership in the type system
* Drop "StartingFrom" from BufferWriter

* Remove one more unused constructor
#3836)

* Add echo example apps to conduct end-to-end connectivity sanity check on protocol level

* Address review comments

* Using c++ style of conversion

* Relocate echo from example to src/messaging/tests

* Update due to system API update

* Remvoe BUILD_RELEASE from build.gn

* Update SecureSessionManager init due to API changes in Transport

* Remove extra build constructs and update against the latest system API changes

* Address review comments

* Remove 'using chip' from common.h
* Use 16 bits service UUID on esp32 platform

* Update src/platform/Darwin/UUIDHelperImpl.mm

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

* Update src/platform/Darwin/UUIDHelperImpl.mm

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

* Update src/platform/Darwin/UUIDHelperImpl.mm

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

Co-authored-by: Boris Zbarsky <[email protected]>
… device (#4092)

* Serialize and initlaize network interface ID used to communicate with device

* handle LWIP usecase

* Reference issue for byte ordering

* use static_assert

* reference LWIP issue

* Serialize the device name instead of index

* Fix build errors

* Add lwip headers
* Begin 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

- Consolidated PacketBuffer and PacketBufferHeader method descriptions
  into the header; clarified which are in transition.
- Most uses of Next(), which returns a raw pointer, only checked
  existence; added PacketBuffer::HasChainedBuffer() to replace these.
- Removed DetachTail_ForNow(), as it has no remaining callers.
- Converted TestSystemPacketBuffer to friended class, so that it can
  continue to use and test private methods. (Refactoring to focus on the
  PacketBufferHandle interface will follow.)

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

* Fix Doxygen

* Fix Doxygen ONCE AND FOR ALL

* Fix description

* Description proofreading
* Convert PacketBuffer::Next() to return a PacketBufferHandle

#### Problem

Code should use `PacketBufferHandle` rather than `PacketBuffer *`.
`Next()` returned a raw pointer.

#### Summary of Changes

- Return PacketBufferHandle from Next().
- Added PacketBuffer::Last() and PacketBufferHandle::Advance() to
  streamline particular cases.
- Retain Next_ForNow() for a new cases remaining to be converted
  (particularly testing and TLV).

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

* Review
* Add IP rendezvous to ChipDeviceController

* Fix NodeId issue

* Disable network provisioning for IP rendezvous

* Update cirque tests

* Remove bypass_rendezvous flag for cirque tests

* Fix BLE rendezvous

* Fix format issue

* Rollback most style changes in python scripts

* Address comments

* Address comments

* Restyled by clang-format

* Add copyright header

* Fix log in cirque test

* Fix cirque test

* Add todo for mIsIPRendezvous flag

Co-authored-by: Restyled.io <[email protected]>
#### Problem

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

#### Summary of Changes

Simply by using `Create` factory instead of declare-adopt-move.

Part of issue #2707 - Figure out a way to express PacketBuffer ownership in the type system
Breaking out fault injection and signalling from the header
into two separate headers.

Renaming implementations to Test*Posix.cpp to show there may
be other platforms that implement those headers.
@hnnajh hnnajh merged commit 2e9b0c0 into hnnajh:rotating-id-test-backup Dec 10, 2020
hnnajh pushed a commit that referenced this pull request Feb 18, 2021
* Fix unwinding on Android

Android isn't able to unwind the CHIP native stack, which interferes
with debugging. Turn on unwind tables to fix this.  Unclear if we want
this in optimized builds, but Android OS seems to be able to unwind all
of its frameworks and native libraries, so for now assume we do. There's
only a space cost, and we can revisit that later.

This is the difference between this:

backtrace:
02-16 20:49:34.628  3872  3872 F DEBUG   : backtrace:
02-16 20:49:34.628  3872  3872 F DEBUG   :       #00 pc 000000000008246c  /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) (BuildId: 5812256023147338b8a9538321d4c456)
02-16 20:49:34.628  3872  3872 F DEBUG   :       #1 pc 00000000000a836c  /data/app/com.google.chip.chiptool-rPVLWEFRvE413khV9YptWg==/base.apk (offset 0x97a000) (chip::NetworkProvisioning::SendNetworkCredentials(char const*, char const*)+96)

and this:
02-16 20:56:04.323  5040  5040 F DEBUG   : backtrace:
02-16 20:56:04.323  5040  5040 F DEBUG   :       #00 pc 000000000008246c  /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) (BuildId: 5812256023147338b8a9538321d4c456)
02-16 20:56:04.323  5040  5040 F DEBUG   :       #1 pc 00000000000a839c  /data/app/com.google.chip.chiptool-dz3iwqwmItgQDBBaEcevJw==/base.apk (offset 0x97a000) (chip::NetworkProvisioning::SendNetworkCredentials(char const*, char const*)+96)
02-16 20:56:04.323  5040  5040 F DEBUG   :       #2 pc 000000000009bb58  /data/app/com.google.chip.chiptool-dz3iwqwmItgQDBBaEcevJw==/base.apk (offset 0x97a000) (chip::RendezvousSession::SendNetworkCredentials(char const*, char const*)+44)
02-16 20:56:04.323  5040  5040 F DEBUG   :       #3 pc 000000000009bb94  /data/app/com.google.chip.chiptool-dz3iwqwmItgQDBBaEcevJw==/base.apk (offset 0x97a000) (non-virtual thunk to chip::RendezvousSession::SendNetworkCredentials(char const*, char const*)+44)
02-16 20:56:04.323  5040  5040 F DEBUG   :       #4 pc 0000000000051488  /data/app/com.google.chip.chiptool-dz3iwqwmItgQDBBaEcevJw==/base.apk (offset 0x97a000) (AndroidDeviceControllerWrapper::SendNetworkCredentials(char const*, char const*)+128)
02-16 20:56:04.323  5040  5040 F DEBUG   :       #5 pc 0000000000054188  /data/app/com.google.chip.chiptool-dz3iwqwmItgQDBBaEcevJw==/base.apk (offset 0x97a000) (Java_chip_devicecontroller_ChipDeviceController_sendWiFiCredentials+188)
02-16 20:56:04.323  5040  5040 F DEBUG   :       #6 pc 000000000013f350  /apex/com.android.runtime/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: ccd73e8ae9b59d5596b3b8aeef234d43)
<snip>
02-16 20:56:04.327  5040  5040 F DEBUG   :       #75 pc 00000000000be560  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+116) (BuildId: e5b25f8fb9f6bb45ccbeca8c07061dad)
02-16 20:56:04.327  5040  5040 F DEBUG   :       #76 pc 00000000000c13d0  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+776) (BuildId: e5b25f8fb9f6bb45ccbeca8c07061dad)
02-16 20:56:04.327  5040  5040 F DEBUG   :       #77 pc 00000000000034e0  /system/bin/app_process64 (main+1168) (BuildId: ade4367f7cc82a88f668180d34ce79fe)
02-16 20:56:04.327  5040  5040 F DEBUG   :       #78 pc 000000000007dc24  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 5812256023147338b8a9538321d4c456)

* Make it an argument
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.