smartdevicelink / sdl_core

SmartDeviceLink In-Vehicle Software and Sample HMI
BSD 3-Clause "New" or "Revised" License
242 stars 244 forks source link

SDL calculates an erroneous timeout for VR and UI PerformInteraction requests #3914

Open GetmanetsIrina opened 2 years ago

GetmanetsIrina commented 2 years ago

Bug Report

SDL calculates an erroneous timeout for VR and UI PerformInteraction requests

Precondition:
  1. SDL and HMI are started
  2. Mobile app is registered and activated
  3. CreateInteractionChoiseSet with VR command is added
Reproduction Steps
  1. Mobile app requests PerformInteraction(BOTH) -> HMI does not send response to VR and UI part
  2. Mobile app requests PerformInteraction(BOTH) -> HMI responds only to VR.PerformInteraction
  3. Mobile app requests PerformInteraction(VR_ONLY) -> HMI does not send response to VR and UI part
  4. Mobile app requests PerformInteraction(VR_ONLY) -> HMI responds only to UI.PerformInteraction
  5. Mobile app requests PerformInteraction(MANUAL_ONLY) -> HMI does not send response to VR and UI part
  6. Mobile app requests PerformInteraction(MANUAL_ONLY) -> HMI responds only to VR.PerformInteraction
Expected Behavior
  1. SDL starts <default timeout> + <RPC timeout> for expecting VR.PerformInteraction (timeout for UI.PerformInteraction should be started only after receiving response to VR part ) -> SDL sends PerformInteraction response to mobile app in <default timeout>+<RPC timeout>
  2. SDL starts <default timeout> + <RPC timeout> for expecting UI.PerformInteraction after receiving VR.Performinteraction response -> SDL sends PerformInteraction response to mobile app in <default timeout> + <RPC timeout> + <time to send VR.PerformIniteraction> PerformInteraction_BOTH_diagram

3.4. SDL starts <default timeout> + <RPC timeout> for expecting VR.PerformInteraction -> SDL sends PerformInteraction response to mobile app in <default timeout> + <RPC timeout> PerformInteraction_VR_ONLY_diagram

5.6. SDL starts <default timeout> + <RPC timeout> for expecting UI.PerformInteraction -> SDL sends PerformInteraction response to mobile app in <default timeout> + <RPC timeout> PerformInteraction_MANUAL_ONLY_diagram

Observed Behavior
  1. SDL has never answers to current and all next PerformInteraction requests without responses from HMI
  2. SDL starts <default timeout>+2*<RPC timeout> for expecting UI.PerformInteraction
  3. SDL starts <default timeout>+2*<RPC timeout> for expecting VR.PerformInteraction
  4. SDL starts <default timeout>+2*<RPC timeout> + <time to send UI.PerformIniteraction> for expecting VR.PerformInteraction
OS & Version Information
Logs

Logs.zip