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

SDL does not send GENERIC_ERROR in case HMI does NOT respond during <DefaultTimeout>+<RPCs_internal_timeout> #1880

Closed
6 of 9 tasks
LitvinenkoIra opened this issue Nov 23, 2017 · 8 comments
Labels
Projects

Comments

@LitvinenkoIra
Copy link
Contributor

LitvinenkoIra commented Nov 23, 2017

Occurrence: Always

Description

SDL must send GENERIC_ERROR to app in case HMI does NOT respond during DefaultTimeout+2*RPCs_internal_timeout for all RPCs with own timer

Preconditions

  • Core, HMI started.
  • App is registered on HMI.
  • App is activated.

Steps to reproduce

  1. SDL transfers RPC with own timeout from mobile app to HMI
    and HMI does NOT respond during DefaultTimeout+2
    RPCs_own_timeout

Script for reproducing: https://github.com/smartdevicelink/sdl_atf_test_scripts/blob/develop/test_scripts/Defects/4_5/1880_DefaultAndRPCTimeoutGENERIC_ERROR.lua

Actual result

N/A

Expected result

SDL must respond 'GENERIC_ERROR, success:false' to mobile app

Environment

Attachments

Note: Extract attached folder with script to test_scripts folder.
Defects.zip

Expected delivery

  • Source code updates
  • Code comments
  • UTs add/update (not required)
  • ATF tests add/update
  • Manual tests (not required)
  • Add/update CI plans/jobs (not required)
  • SDD updates (not required)
  • Guidelines update (sdl_core_guides) (not required)
  • Guidelines update (sdl_hmi_integration_guidelines) (not required)
@aderiabin
Copy link

Contributor priority is set High with reason: The issue is related to critical functionality: existence of response from HMI/SDL.

@Jack-Byrne
Copy link
Collaborator

Similar issue to #1871 and #792

@jacobkeeler
Copy link
Contributor

jacobkeeler commented Mar 8, 2018

Looks like a duplicate of #792, but with the specification of 2*RPCs_internal_timeout added to the default timeout instead. @LitvinenkoIra Why is this?

@yang1070
Copy link

@LitvinenkoIra I have the same question as Jacob here, Why is 2*RPCs_internal_timeout + default?

@GetmanetsIrina
Copy link

GetmanetsIrina commented May 15, 2018

@JackLivio , @yang1070 , according to requirements:
SDL must start DefaultTimeout(from .ini file) + RPCs_internal_timeout for waiting the response from HMI side.
RPCs_internal_timeout for RPCs:
a. Alert (“duration” param)
b. PerformInteraction (“timeout” param -> increased two times for BOTH and MANUAL_ONLY modes)
c. Slider (“timeout” param)
d. ScrollableMessage (“timeout” param)

So described case DefaultTimeout+2*RPCs_internal_timeout is related to PerformInteraction RPC with BOTH and MANUAL_ONLY modes.

@yang1070
Copy link

@GetmanetsIrina
I'm kind of understand the requirement in the case of PerformInteraction RPC with BOTH mode, as the work flow is to show VR portion, after some system defined time out (handled by the platform), it shows the MAUNAL portion (the timeout paramter in RPC). So the sdl wait time shall be longer than DefaultTimeout+RPCs_internal_timeout due to the added VR portion. But it does not specify how much longer as we don't known what's the timeout for VR portion. This might be the reason that we treat it as the same as the timeout parameter. Therefore the result DefaultTimeout+2*RPCs_internal_timeout.

But whyMANUAL_ONLY mode also need DefaultTimeout+2*RPCs_internal_timeout?

From the mobile API, I get the following description in PerformInteraction RPC

        <param name="timeout" type="Integer" minvalue="5000" maxvalue="100000" defvalue="10000" mandatory="false">
            <description>
                Timeout in milliseconds.
                If omitted a standard value of 10000 milliseconds is used.
                Applies only to the menu portion of the interaction. The VR timeout will be handled by the platform.
            </description>
        </param>

and from integration guideline, I get the following description about timeout

Timeout in milliseconds. 
The amount of time the HMI must wait for the   User to make a choice. 
After the time is up HMI respond with timed_out result   code.

@GetmanetsIrina
Copy link

@yang1070 , @jacobkeeler , @JackLivio
According to discussion in emails the expected behavior is the same, updated with more details:

Steps to reproduce

  1. SDL transfers RPC with own timeout from mobile app to HMI with the same timeout value received from mobile app
    and HMI does NOT respond during DefaultTimeout+*RPCs_own_timeout

Note:

RPCs_own_timeout for RPCs:
a. Alert (“duration” param)
b. PerformInteraction (“timeout” param -> increased two times for BOTH and MANUAL_ONLY modes)
c. Slider (“timeout” param)
d. ScrollableMessage (“timeout” param)

@Jack-Byrne
Copy link
Collaborator

Fixed by #2495

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
6.0.0
Completed Bug Fixes/Enhancements
Development

No branches or pull requests

6 participants