Skip to content

RDKEMW-18434 : [BCM Rogers Monarch IUI V2] RialtoServer process crash observed while switching between Xumo FAST channels during CC verification#554

Open
rekhap2kandhavelan wants to merge 18 commits into
masterfrom
feature/RDKEMW-18434_dev
Open

RDKEMW-18434 : [BCM Rogers Monarch IUI V2] RialtoServer process crash observed while switching between Xumo FAST channels during CC verification#554
rekhap2kandhavelan wants to merge 18 commits into
masterfrom
feature/RDKEMW-18434_dev

Conversation

@rekhap2kandhavelan

Copy link
Copy Markdown
Contributor

Summary: handling race conditions for GstPlayer
Type: Fix
Test Plan: UT/CT, Fullstac
Jira: RDKEMW-18434

Copilot AI review requested due to automatic review settings July 3, 2026 03:31
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

Pull request must be merged with a description containing the required fields,

Summary:
Type: Feature/Fix/Cleanup
Test Plan:
Jira:

If there is no jira releated to this change, please put 'Jira: NO-JIRA'.

Description can be changed by editing the top comment on your pull request and making a new commit.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to prevent RialtoServer crashes seen during FAST channel switching by hardening MediaPipelineServerInternal against race conditions involving GstGenericPlayer teardown and late/overlapping callbacks.

Changes:

  • Reset m_gstPlayer during MediaPipelineServerInternal destruction.
  • Gate notifyPlaybackInfo() forwarding on m_gstPlayer validity and add a warning when skipped.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread media/server/main/source/MediaPipelineServerInternal.cpp Outdated
Comment thread media/server/main/source/MediaPipelineServerInternal.cpp Outdated
Comment thread media/server/main/source/MediaPipelineServerInternal.cpp Outdated
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

Coverage statistics of your commit:
Lines coverage stays unchanged and is: 84.3%
Functions coverage stays unchanged and is: 92.7%

@svc-rdkeportal01

Copy link
Copy Markdown

CCI-Build-Verified -1
sha: d822db8

@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

Coverage statistics of your commit:
Lines coverage stays unchanged and is: 84.3%
Functions coverage stays unchanged and is: 92.7%

@rekhap2kandhavelan
rekhap2kandhavelan force-pushed the feature/RDKEMW-18434_dev branch from 15ed5e5 to 73254e2 Compare July 3, 2026 09:33
Copilot AI review requested due to automatic review settings July 3, 2026 09:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment thread media/server/gstplayer/source/GstGenericPlayer.cpp Outdated
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

Coverage statistics of your commit:
Lines coverage stays unchanged and is: 84.3%
Functions coverage stays unchanged and is: 92.7%

@rekhap2kandhavelan
rekhap2kandhavelan force-pushed the feature/RDKEMW-18434_dev branch from 73254e2 to 0382aee Compare July 3, 2026 10:05
@rekhap2kandhavelan
rekhap2kandhavelan force-pushed the feature/RDKEMW-18434_dev branch from 0382aee to e660c09 Compare July 3, 2026 10:36
Copilot AI review requested due to automatic review settings July 3, 2026 10:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment thread media/server/gstplayer/source/GstGenericPlayer.cpp Outdated
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

Coverage statistics of your commit:
Lines coverage stays unchanged and is: 84.3%
Functions coverage stays unchanged and is: 92.7%

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 4, 2026 14:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment thread media/server/gstplayer/source/GstGenericPlayer.cpp Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 4, 2026 14:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings July 6, 2026 07:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Copilot AI review requested due to automatic review settings July 9, 2026 16:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

Comment thread media/server/gstplayer/source/GstGenericPlayer.cpp
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

Coverage statistics of your commit:
Lines coverage stays unchanged and is: 84.3%
Functions coverage stays unchanged and is: 92.7%

Copilot AI review requested due to automatic review settings July 10, 2026 04:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 3 changed files in this pull request and generated 3 comments.

Comment thread media/server/gstplayer/source/GstGenericPlayer.cpp
Copilot AI review requested due to automatic review settings July 10, 2026 04:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment on lines 1744 to 1746
std::unique_ptr<common::ITimer> timerMock = std::make_unique<StrictMock<TimerMock>>();
EXPECT_CALL(dynamic_cast<StrictMock<TimerMock> &>(*timerMock), isActive()).WillOnce(Return(true));
EXPECT_CALL(dynamic_cast<StrictMock<TimerMock> &>(*timerMock), isActive()).WillOnce(Return(true)).WillRepeatedly(Return(false));
EXPECT_CALL(*m_timerFactoryMock, createTimer(kPlaybackInfoTimerMs, _, common::TimerType::PERIODIC))
Copilot AI review requested due to automatic review settings July 10, 2026 04:59
@github-actions

Copy link
Copy Markdown

Coverage statistics of your commit:
Lines coverage stays unchanged and is: 84.3%
Functions coverage stays unchanged and is: 92.7%

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

@github-actions

Copy link
Copy Markdown

Coverage statistics of your commit:
Lines coverage stays unchanged and is: 84.3%
Functions coverage stays unchanged and is: 92.7%

@github-actions

Copy link
Copy Markdown

Coverage statistics of your commit:
Lines coverage stays unchanged and is: 84.3%
Functions coverage stays unchanged and is: 92.7%

@rdkcentral rdkcentral deleted a comment from github-actions Bot Jul 10, 2026
{
expectShutdown();
expectStop();
EXPECT_CALL(*m_timerFactoryMock, createTimer(_, _, _)).Times(AnyNumber());

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please apply this copilot comment. Create timer is not called during the GstGenericPlayer teardown, so this expect_call should be moved to the dedicated method, e.g. void expectPlaybackInfoTimerCreation() and void expectPlaybackInfoTimerCancel(). EXPECT_CALLs should not have any .Times(AnyNumber()); and expects should be added only for tests, that really need it.

{
willNotifyPlaybackInfo();
std::unique_ptr<common::ITimer> playbackInfoTimerMock = std::make_unique<StrictMock<TimerMock>>();
EXPECT_CALL(dynamic_cast<StrictMock<TimerMock> &>(*playbackInfoTimerMock), isActive()).WillRepeatedly(Return(false));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please apply the copilot comment.
isActive should return true and cancelling timer in the destructor should be covered

{
willNotifyPlaybackInfoWithAudioFade();
std::unique_ptr<common::ITimer> playbackInfoTimerMock = std::make_unique<StrictMock<TimerMock>>();
EXPECT_CALL(dynamic_cast<StrictMock<TimerMock> &>(*playbackInfoTimerMock), isActive()).WillRepeatedly(Return(false));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please apply the copilot comment.
isActive should return true and cancelling timer in the destructor should be covered

Copilot AI review requested due to automatic review settings July 15, 2026 05:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

{
willNotifyPlaybackInfo();
std::unique_ptr<common::ITimer> playbackInfoTimerMock = std::make_unique<StrictMock<TimerMock>>();
EXPECT_CALL(dynamic_cast<StrictMock<TimerMock> &>(*playbackInfoTimerMock), isActive()).WillRepeatedly(Return(false));
Comment on lines +1745 to +1747
EXPECT_CALL(dynamic_cast<StrictMock<TimerMock> &>(*timerMock), isActive())
.WillOnce(Return(true))
.WillRepeatedly(Return(false));
{
expectShutdown();
expectStop();
EXPECT_CALL(*m_timerFactoryMock, createTimer(_, _, _)).Times(AnyNumber());
@github-actions

Copy link
Copy Markdown

Coverage statistics of your commit:
Lines coverage stays unchanged and is: 84.3%
Functions coverage stays unchanged and is: 92.7%

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.

5 participants