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

[PVR] Fix stack overflow while trying to get play resume point from PVR client #11223

Merged
merged 2 commits into from
Dec 20, 2016

Conversation

ksooo
Copy link
Member

@ksooo ksooo commented Dec 19, 2016

This is a bugfix followup to #11115.

There was a crash caused by a stack overflow reported in the forum: http://forum.kodi.tv/showthread.php?tid=298461&pid=2481973#pid2481973

Interesting part of the user supplied crash log:

...
#2892 0x007cb5ec in PVR::CPVRRecording::GetResumePoint() const ()
#2893 0x00710cf0 in PVR::CPVRClient::WriteClientRecordingInfo(PVR::CPVRRecording const&, PVR_RECORDING&) ()
#2894 0x00711010 in PVR::CPVRClient::GetRecordingLastPlayedPosition(PVR::CPVRRecording const&) ()
#2895 0x007ee1d4 in PVR::CPVRClients::GetRecordingLastPlayedPosition(PVR::CPVRRecording const&) ()
#2896 0x007cb5ec in PVR::CPVRRecording::GetResumePoint() const ()
#2897 0x00710cf0 in PVR::CPVRClient::WriteClientRecordingInfo(PVR::CPVRRecording const&, PVR_RECORDING&) ()
#2898 0x00711010 in PVR::CPVRClient::GetRecordingLastPlayedPosition(PVR::CPVRRecording const&) ()
#2899 0x007ee1d4 in PVR::CPVRClients::GetRecordingLastPlayedPosition(PVR::CPVRRecording const&) ()
#2900 0x007cb5ec in PVR::CPVRRecording::GetResumePoint() const ()
#2901 0x00710cf0 in PVR::CPVRClient::WriteClientRecordingInfo(PVR::CPVRRecording const&, PVR_RECORDING&) ()
#2902 0x00711010 in PVR::CPVRClient::GetRecordingLastPlayedPosition(PVR::CPVRRecording const&) ()
#2903 0x007ee1d4 in PVR::CPVRClients::GetRecordingLastPlayedPosition(PVR::CPVRRecording const&) ()
#2904 0x007cb5ec in PVR::CPVRRecording::GetResumePoint() const ()
#2905 0x00710cf0 in PVR::CPVRClient::WriteClientRecordingInfo(PVR::CPVRRecording const&, PVR_RECORDING&) ()
#2906 0x00711010 in PVR::CPVRClient::GetRecordingLastPlayedPosition(PVR::CPVRRecording const&) ()
#2907 0x007ee1d4 in PVR::CPVRClients::GetRecordingLastPlayedPosition(PVR::CPVRRecording const&) ()
#2908 0x007cb5ec in PVR::CPVRRecording::GetResumePoint() const ()
#2909 0x00710cf0 in PVR::CPVRClient::WriteClientRecordingInfo(PVR::CPVRRecording const&, PVR_RECORDING&) ()
#2910 0x00711010 in PVR::CPVRClient::GetRecordingLastPlayedPosition(PVR::CPVRRecording const&) ()
#2911 0x007ee1d4 in PVR::CPVRClients::GetRecordingLastPlayedPosition(PVR::CPVRRecording const&) ()
#2912 0x007cb5ec in PVR::CPVRRecording::GetResumePoint() const ()
#2913 0x00710cf0 in PVR::CPVRClient::WriteClientRecordingInfo(PVR::CPVRRecording const&, PVR_RECORDING&) ()
#2914 0x00710fa0 in PVR::CPVRClient::SetRecordingLastPlayedPosition(PVR::CPVRRecording const&, int) ()
#2915 0x007ee12c in PVR::CPVRClients::SetRecordingLastPlayedPosition(PVR::CPVRRecording const&, int, PVR_ERROR*) ()
#2916 0x007cb380 in PVR::CPVRRecording::SetResumePoint(CBookmark const&) ()
#2917 0x00579188 in CVideoInfoTag::SetResumePoint(double, double, std::string const&) ()
#2918 0x007cbe28 in PVR::CPVRRecording::CPVRRecording(PVR_RECORDING const&, unsigned int) ()
#2919 0x006d42a0 in KodiAPI::PVR::CAddonCallbacksPVR::PVRTransferRecordingEntry(void*, ADDON_HANDLE_STRUCT*, PVR_RECORDING const*) ()
#2920 0x6b775fd4 in cPVRClientMediaPortal::GetRecordings(ADDON_HANDLE_STRUCT*) () from /usr/lib/kodi/addons/pvr.mediaportal.tvserver/pvr.mediaportal.tvserver.so.3.0.2
#2921 0x0070ff18 in PVR::CPVRClient::GetRecordings(PVR::CPVRRecordings*, bool) ()
#2922 0x007f0524 in PVR::CPVRClients::GetRecordings(PVR::CPVRRecordings*, bool) ()
#2923 0x007ccb84 in PVR::CPVRRecordings::UpdateFromClients() ()
#2924 0x007cc52c in PVR::CPVRRecordings::Update() ()
#2925 0x007cc5b4 in PVR::CPVRRecordings::Load() ()
#2926 0x007f6604 in PVR::CPVRManager::Load(bool) ()
#2927 0x007f86a0 in PVR::CPVRManager::Process() ()
#2928 0x005f36ec in CThread::Action() ()
#2929 0x005f3dd0 in CThread::staticThread(void*) ()
#2930 0x76efaf40 in start_thread (arg=0x5b88d3a0) at pthread_create.c:335
#2931 0x75339e18 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:86 from /usr/lib/libc.so.6

@Jalle19 mind doing the review.
@MilhouseVH could you please include this PR into your build and ask 'bmonster' whether this fixes his issue?

@ksooo ksooo added Type: Fix non-breaking change which fixes an issue Component: PVR v18 Leia labels Dec 19, 2016
@ksooo ksooo added this to the L 18.0-alpha1 milestone Dec 19, 2016
@ksooo ksooo requested a review from Jalle19 December 19, 2016 18:38
Copy link
Member

@Jalle19 Jalle19 left a comment

Choose a reason for hiding this comment

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

Let's wait for the reporter to report back

@ksooo
Copy link
Member Author

ksooo commented Dec 20, 2016

Fix has been confirmed by the problem reporter.

@ksooo
Copy link
Member Author

ksooo commented Dec 20, 2016

jenkins build this please

@ksooo ksooo merged commit b2fa60d into xbmc:master Dec 20, 2016
@ksooo ksooo deleted the pvr-pr11115-followup branch December 20, 2016 17:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: PVR Type: Fix non-breaking change which fixes an issue v18 Leia
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants