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

Missing Clusters on Endpoint ID 1 in Linux TV Casting commissioner-generated-passcode flow #36289

Open
shaoltan-amazon opened this issue Oct 29, 2024 · 1 comment

Comments

@shaoltan-amazon
Copy link
Contributor

Description:
For the commissioner-generated passcode commissioning flow of the Linux TV casting experience, we run demo interactions with Endpoint ID 1. However, when running in an Ubuntu environment, no Clusters are available on Endpoint ID 1. This issue prevents us from subscribing to the Media Playback cluster and sending/receiving the LaunchURL between the tv-app and the tv-casting-app.

Below is a snippet from the Linux tv-casting-app logs where it shows that there are 0 Clusters for Endpoint ID 1:

[1730222035.829705][12461:12461] CHIP:SVR: simple-app-helper.cpp::LogEndpointsDetails() Number of Endpoints: 3
[1730222035.829723][12461:12461] CHIP:SVR: Endpoint::LogDetail() Endpoint ID: 1, Vendor ID: 0, Product ID: 0, Clusters: 0
[1730222035.829739][12461:12461] CHIP:SVR: Endpoint::LogDetail() Endpoint ID: 2, Vendor ID: 0, Product ID: 0, Clusters: 2
[1730222035.829755][12461:12461] CHIP:SVR: Endpoint::LogDetail() Endpoint ID: 4, Vendor ID: 65521, Product ID: 32769, Clusters: 6
[1730222035.829772][12461:12461] CHIP:SVR: simple-app-helper.cpp::ConnectionHandler(): Triggering demo interactions with CastingPlayer (ID: D83ADD0E2E015650). Endpoint ID: 1

Note: We do not receive any more messages between the tv-app and the tv-casting-app after this point, likely due to subscribing to an Endpoint with no Clusters.

On the other hand, when running the same Linux commissioning flow on MacOS, we do see 7 Clusters on Endpoint ID 1, which allows us to subscribe to the Media Playback cluster and successfully send and receive the LaunchURL between the tv-app and the tv-casting-app. This is the expected behavior when we run in an Ubuntu environment as well.

Below is a snippet of the expected output in the Linux tv-casting-app logs:

[1730156548.558] [9408:32653093] [SVR] simple-app-helper.cpp::LogEndpointsDetails() Number of Endpoints: 3
[1730156548.558] [9408:32653093] [SVR] Endpoint::LogDetail() Endpoint ID: 1, Vendor ID: 0, Product ID: 0, Clusters: 7
[1730156548.558] [9408:32653093] [SVR] Endpoint::LogDetail() Endpoint ID: 2, Vendor ID: 0, Product ID: 0, Clusters: 2
[1730156548.558] [9408:32653093] [SVR] Endpoint::LogDetail() Endpoint ID: 4, Vendor ID: 65521, Product ID: 32769, Clusters: 6
[1730156548.558] [9408:32653093] [SVR] simple-app-helper.cpp::ConnectionHandler(): Triggering demo interactions with CastingPlayer (ID: 6CB133A1E1FA5650). Endpoint ID: 1

This issue is noticed with changes up to and including this commit: 3d80093

It was not seen in an older version of the repository, with changes up to and including this commit: c98b1f5

TL;DR:
We need to root cause why no Clusters are showing up for Endpoint ID 1 in an Ubuntu environment, while 7 Clusters appear when running the same commissioning flow on MacOS.

@andy31415
Copy link
Contributor

By the description, we had some changes in how data models are accessed to use DataModel::Provider and that may explain some differences between Linux (using check) and Darwin (using ember), however linux generally was expecting check to validate identical output between the provider code and the ember code.

After #36042 linux and mac should behave identically (all using DataModel::Provider) so this may be worth rechecking on ToT on mac as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Todo
Development

No branches or pull requests

3 participants