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 RotatingId backup#1 from master #7

Merged
merged 21 commits into from
Dec 14, 2020

Conversation

hnnajh
Copy link
Owner

@hnnajh hnnajh commented Dec 14, 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>>>>>

erjiaqing and others added 21 commits December 10, 2020 11:26
* [doc] Add instruction for running cirque tests

* Restyled by prettier-markdown

* Add instruction for running single test

* Move doc to src/test_driver/linux-cirque/cirque.md

* Fix doxygen

* Restyled by prettier-markdown

Co-authored-by: Restyled.io <[email protected]>
* [cirque] Add cirque test for Echo

* Install common packages in base image
* Add Workflow for ZAP template generation

* Update ZAP submodule and remove tracking of master in CI

* Update workflow file
Add the initial API for the key value storage interface. Other changes
will implement this API for the various platforms.
* 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

* Rename Clone to CloneData

* Replace minimal-mdns with minimal

* Clariy update for interface iteration
When lighting-app is built with the Pigweed RPC server
using 'rpc.overlay' configuration overlay, it must build
pw_sys_io backend using Zephyr Console API. Pigweed,
however, uses more strict warning settings than Zephyr and
the build fails due to some warnings which are not fixed in
the currently supported version of nRF Connect SDK.

Suppress those warnings and clean the CMakeLists.txt file
a bit.
* Fix CHIPDeviceController when storage delegate is nullptr

CHIPDeviceController releases results of the
Rendezvous session assuming that they have been persisted.
However some platforms, like Android, don't provide
implementation of PersistentStorageDelegate yet.

* Apply code review comment

* Add TODO comment
* Add regen all script

* Make the directory check more flexible
* Start CHIP event-loop by default during initialization.

* Add CHIP memory init during initialization
* Update SPAKE2p pairing code to match spec

- update message handshake to include PBKDF param exchange
- update msg types and error codes
- add error handling via error message handshake

* delete commented out code

* use little endian byte ordering in the messages

* address review comments

* fix build
The default configuration for the reporting plugin that is contained in `EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS` is currently not loaded.

There are a few different issues:
 * `EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_CALLS` which contains some bits of the plugins initialization is never called
 * The dynamically generated `EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS_TABLE_SIZE` is bigger than `EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE`
 * The `EmberAfPluginReportingEntry` has trying to be load/save from the disk, which is not supported yet.
 * Some of the plugins callbacks that are loaded by `EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_CALLS` does not exists. Either because the plugin is not part of CHIP or because the plugin has been hand crafted and this method was missing.
…4175)

* [controller] Support ble connect using discriminator on linux python cli

* Add macOS support

* dbus.Dictionary can be iterable

* Output format update

* Print traceback on exception

* Fix exception

* Simple cleanup on CoreBluetoothMgr
* [nrfconnect] Build CHIP as out-of-tree Zephyr module

Redesign the way nRF Connect examples integrate with CHIP
libraries. Instead of importing CMake modules which directly
configure build of CHIP libraries, create a separate CMake
project for CHIP which also satisfies the Zephyr module
requirements (e.g. it provides a module manifest file).
It allows a nRF Connect application to simply add CHIP to
the Zephyr module list and load Zephyr build scripts to
make sure that CHIP is properly pulled into the project.

The new design, apart from following recommendations from
the Zephyr community, will allow to easily integrate CHIP
into projects that need CHIP as an in-tree Zephyr module
(like nRF Connect SDK itself or other Zephyr-based projects).

By the way, clean some things up in the build scripts area.

* Bump nRF Docker image version in the workflow

* Restyled by prettier-markdown

* Restyled by prettier-yaml

* Set more Kconfig variables by default for CHIP

Co-authored-by: Restyled.io <[email protected]>
@hnnajh hnnajh merged commit 9bd6414 into hnnajh:rotating-id-test-backup Dec 14, 2020
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.

9 participants