summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix mutex deadlock around app button subscriptionsfix/fix_button_subscriptions_mutex_deadlockAndrii Kalinich2020-06-232-10/+12
| | | | | | | | | | | | | | | | | | | | | Sometimes there was observed mutex deadlock while more then one thread are accessing buttons subscriptions container protected with data accessor class. The issue is happening when one thread is trying to unregister application, acquires applications lock and trying to save application resumption data which at some point requires app subscribed buttons lock to be acquired. At the same moment another thread is trying to resume application data and acquires subscribed buttons accessor after which is trying to send notifications to HMI, which at some point requires applications lock to be acquired. When these two threads have a time intersection, mutex deadlock is happening. To resolve this deadlock, button subscription accessor has been replaced with temporary accessor + copying protected content to a local variable which allows to release that lock beforehand.
* add DEPRECATED notice to OnFindApplications (#3451)Collin2020-06-231-0/+1
|
* Fixes race condition in messagemeter.h (#3377)Alexander Kutsan (GitHub)2020-06-221-1/+24
| | | | | | | | | | SDLCORE-373 Unprotected critical section accessed by two different threads, timing_map was being modified by clearing the map identifiers causing a crash in boost::date_time Review: Change RWLock to Lock, Added FrequencyImpl private method Co-authored-by: Mario Godinez <mgodine6@ford.com>
* Add Destructor to BluetoothTransportAdapter (#3442)Collin2020-06-192-7/+0
| | | prevent override of bluetooth destructor so that the default transport adapter destructor impl will be called
* Fix potential deadlock in PolicyHandler (#3383)Alexander Kutsan (GitHub)2020-06-181-6/+10
| | | | | | | | | | | | | | | | | | | | | | | SYNC-10345 There was a vulnerability in the PolicyHandler which causes a mutex deadlock. For example - MessageLoop thread of RpcService handles incoming messages. In case when SDL receives AllowSDLFunctionality notification, this thread calls OnAllowSDLFunctionalityNotification inside PolicyHandler. At some point of time this function captures accessor from AM which holds applications_list_lock_ there. At this moment thread AM Pool 0 of RequestController processes some RPC from queue and captures policy_manager_lock_ in PolicyHandler. After that at some moment thread AM Pool 0 tries to get application shared pointer from AM and locks itself as this mutex are already locked with thread MessageLoop. Also, MessageLoop thread at some moment tries to acquire policy_manager_lock_ and locks itself as this mutex are already locked with thread AM Pool 0, which is waiting for applications_list_lock_ to unlock. As a result we have a classical thread deadlock after which SDL stuck forewer. To avoid such situations, there was analyzed all bottlenecks related to applications_list_lock_ and its accessors. Accessors were scoped in several places to avoid similar deadlocks in future. Co-authored-by: Elvis Kuliiev <ekuliiev@luxoft.com>
* Fix Handshake Flow issues (#3441)Jacob Keeler2020-06-184-27/+30
| | | | | | | | | * Fix issue with External PTU timeout When attempting to start an encrypted service, the mobile proxy would not receive a response if the PTU timed out. This is because the retry count is based on the number of OnSystemRequests received from the HMI. Since that number would never exceed the number of retries, `IsAllowedRetryCountExceeded` would never return false. This will now return false after the final retry times out. * Add error code check in ProcessInternalError If the proxy responds with NOT_SUPPORTED or SSL_INVALID_DATA, Core will mark the handshake as failed.
* Revert "remove hci_inquiry call"collin2020-06-171-0/+31
| | | | This reverts commit 1e5d115dd5c12b15c5667961c24737f08691b988.
* remove hci_inquiry callcollin2020-06-171-31/+0
|
* Fix deadlock in timer.cc (#3379)fix/sdl_build_problemsAlexander Kutsan2020-06-161-1/+0
| | | | | | | | | SDLCORE-458 Fix deadlock in timer.cc call lock two times for Lock, second lock was removed, cause using of it hadn't any benefits. Regarding of Helgrind report. Co-authored-by: Maksym Shvaiko <MShvaiko@luxoft.com>
* only set language in rai response if it is valid (#3435)Collin2020-06-151-4/+12
|
* Update to filter unknown enums (#3436)JackLivio2020-06-158-27/+59
| | | | | | | | | | | | | * Add HMI warnings response for filtered enums * Only filter enums with valid typing Invalid types with an enum schema item were being silently filtered, so we need to look for a specific result code from validate() instead of looking for a general failure. * Fix source for messages from hmis * Fix unit tests Co-authored-by: jacobkeeler <jacob.keeler@livioradio.com>
* clean up choice_set_map_ in DynamicApplicationDataImpl destructor (#3420)Collin2020-06-151-0/+5
|
* Filter unknown enums when removing unknown parameters (#3385)Jacob Keeler2020-06-1038-138/+696
| | | | | | | | | * Add enum filtering step to applySchema This step is triggered when `remove_unknown_parameters` is enabled * Add unit tests * Pass warning info to message response after processing
* Fix style (#3432)Jacob Keeler2020-06-101-2/+1
|
* Merge pull request #3417 from smartdevicelink/feature/daemon_scriptJacob Keeler2020-06-097-30/+187
|\ | | | | Add SDL Core Daemon Script
| * Fix usage logJacob Keeler2020-06-091-1/+1
| |
| * Remove debug logJacob Keeler2020-06-091-1/+0
| |
| * Add daemon.sh to unify scripts for external and regularfeature/daemon_scriptjacobkeeler2020-06-084-196/+155
| |
| * Fix missing -H flag in policy server dependency stepJacob Keeler2020-06-081-1/+1
| |
| * Add start.sh which uses the new core.shjacobkeeler2020-06-082-0/+22
| |
| * Address commentsjacobkeeler2020-06-082-43/+43
| |
| * Fix broken return code in core_stopjacobkeeler2020-06-022-2/+2
| |
| * Add features to make the daemon script more reliablejacobkeeler2020-06-023-32/+154
| | | | | | | | | | | | | | Create dedicated PID file directory Check running processes before starting or stopping Core Add `kill` command to destroy all running instances of Core Change main SDL thread to be identifiable by name
| * First version of daemon script from proposaljacobkeeler2020-05-215-30/+85
| |
* | fix build error in http unit tests (#3422)Collin2020-06-091-1/+3
| | | | | | | | | | * fix build error in http unit tests * fix style
* | Sdl must store onWayPointChange internally (#2490)Pavel Zhdanov (GitHub)2020-06-088-11/+93
| | | | | | | | | | | | | | | | | | | | | | | | * Add saving way points during notification - When OnWayPointNotification appeared the wayPoint is saving - When new app subscribing on wayPointNotification stored way points are sending to app * Add unit tests * fix style, update to remove (uint32_t) overload of SubscribeAppForWayPoints Co-authored-by: collin <collin+i@collinmcqueen.com>
* | Bugfix/protocol handler memory issues (#2270)Sho Amano2020-06-064-8/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix: memory leak in ProtocolHandlerImpl::NotifySessionStarted() This is detected by valgrind. * fix: buffer over-run in ProtocolPayloadTest This is an issue of unit test implementation and only affects unit testing. * fix: invalid memory accesses in ProtocolHandlerImplTest These affect unit testing only. Invalid memory accesses occurred because the mock class didn't configure protocol version field properly. * fix: valgrind warning in IncomingDataHandlerTest This is not actually an issue. valgrind reported a warning since the memory area was not initialized. Co-authored-by: Collin <iCollin@users.noreply.github.com>
* | fix: memory leaks in data_resumption_test (#2273)Sho Amano2020-06-062-1/+37
| | | | | | | | | | This issue only affects unit testing. Co-authored-by: Collin <iCollin@users.noreply.github.com>
* | Remove defunct `appID` parameter from UnsubscribeVehicleData (#2331)Jacob Keeler2020-06-051-3/+0
| |
* | trigger ptu on startup only in proprietary policy mode (#3415)Collin2020-06-051-1/+1
| |
* | Fix: handle network interface removal (#2759)Sho Amano2020-06-045-101/+200
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix: IP address isn't notified when network interface is removed When RTM_DELLINK is notified, corresponding network interface has been already destroyed so if_indextoname() won't return a valid name. To handle such case, status_table_ is updated to use network interface index as key. * fix: generate DeviceDisconnected event when network interface is removed * fix a few comments * Reflect review comments - Add const where applicable - Add more descriptions * Reflect code review Replace FindInterfaceStatus() with std::find_if() call. * Reflect code review Remove unnecessary include. * fix style issue
* | Add workaround to handle problem, caused by gcc compiler (#3418)Yana Chernysheva (GitHub)2020-06-041-1/+8
| |
* | fix: memory leak in DynamicApplicationDataImpl class (#2259)Sho Amano2020-06-031-0/+15
| |
* | Fix defect: revoked app still be resumed as FULL. (#2546)Igor Gapchuk (GitHub)2020-05-294-8/+51
| | | | | | | | | | | | App was resumed with Full HMI Level when it has been flagged as revoked in the policy table. This PR adds a check that app is not revoked to continue with HMI Level resumption.
* | Fix onsystemrequest retry logic (#3400)JackLivio2020-05-2811-25/+100
| | | | | | | | | | | | | | | | | | * Fix onsystemrequest retry logic * Cache policy update file from HMI for retries * Fix issues with previous commit Co-authored-by: jacobkeeler <jacob.keeler@livioradio.com>
* | ensure delegates are destroyed before their threads (#3388)Collin2020-05-282-1/+4
| |
* | Fix style (#3398)Mykhailo Vorobiov (GitHub)2020-05-274-27/+36
| | | | | | The style has been broken on develop branch - commit f5cfd151d82
* | Increase policy unit-tests speed (#2315)Pavel Zhdanov (GitHub)2020-05-228-271/+755
| | | | | | | | | | | | | | | | | | | | | | * Increase speed for Policy unit-tests: External policy Increase speed for unit-tests: - External policy tests - Regular policy tests * Increase speed for Policy unit-tests: Regular policy Co-authored-by: Collin <iCollin@users.noreply.github.com>
* | Rewrite unit tests for PolicyManagerImpl from External flow (#3353)Yana Chernysheva (GitHub)2020-05-2149-61422/+5217
| | | | | | | | | | | | | | | | | | | | | | | | | | * Add new file with unit tests for CacheManager * Add new tests for PolicyManagerImpl * Add new preloaded tables * Add changes in CMakeLists.txt * Delete unused files * Re-add file with test
* | Rewrite unit tests for PolicyManagerImpl from Proprietary flow (#3352)Yana Chernysheva (GitHub)2020-05-2123-24251/+6389
| | | | | | | | | | | | | | | | | | | | | | | | | | * Add new file with unit tests for CacheManager * Add new tests for PolicyManagerImpl * Add changes in CMakeLists.txt * Add new preloaded tables * Delete unused files * Re-add test files
* | Fix messages protocol version check (#2771)Stanislav Kobziev (GitHub)2020-05-217-17/+62
|/ | | | | | | | | | | | * Fix messages protocol version check Fixed the messages protocol version check and name of ProcessData method parameter 'result' was changed to 'out_result' for more clarity * fix copy-paste error and fix style Co-authored-by: Collin <iCollin@users.noreply.github.com> Co-authored-by: collin <collin+i@collinmcqueen.com>
* unsubscripe app from waypoints when it is unregistered (#3373)Collin2020-05-214-19/+71
| | | | | | | * unsubscripe app from waypoints when it is unregistered * address review comments * fix style
* Forward OnButtonPressNotifications where HMI specifies appID to apps in ↵Collin2020-05-202-3/+5
| | | | | | | | | LIMITED HMI Level (#3378) * initialize app in non custom button path of on_button_press run * fixup! initialize app in non custom button path of on_button_press run fix unit tests with changes in run
* Fix/gufm check syntax (#3369)Collin2020-05-206-28/+72
| | | | | | | | | | | * Fix implementation for SDLGetUserFriendlyMessage * Unit test for SDLGetUserFriendlyMessage: checking syntax * Changes according to comments * add invalid syntax error response info Co-authored-by: ZhdanovP <pzhdanov@luxoft.com>
* fix memory error in TcpDevice::IsSameAs (#3386)Collin2020-05-201-2/+2
|
* Release delegate only after full thread stopping (#2534)Pavel Zhdanov (GitHub)2020-05-201-1/+1
|
* Fix SendUpdateAppList and SendOnAppUnreg order (#2517)Kostiantyn Grygoriev2020-05-191-5/+7
| | | Co-authored-by: collin <collin@livio.io>
* Add RPCService unit tests (#3250)Yana Chernysheva (GitHub)2020-05-184-0/+900
| | | | | | | | | | | * Add RPCService unit tests * Add prerequisites for execution of unit tests * Rearrange and delete unused includes * Add minor changes Co-authored-by: JackLivio <jack@livio.io>
* Change reason to IGNITION_OFF only if reason wasn't defined before (#3274)Yana Chernysheva (GitHub)2020-05-181-2/+6
|
* Fix/issue 1951 (#3371)Collin2020-05-184-19/+56
| | | | | | | | | | | | | | | * remove deadlock danger when removing Connections from a ConnectionMap * fix style, use log debug instead of trace for singular messages * Revert "fix style, use log debug instead of trace for singular messages" This reverts commit c83288ec9fc9007e48044b09ad038edbf612e038. * fix style, use log debug instead of trace for singular messages * restore condition updates lost with merge of old versions Co-authored-by: Frank <fronneburg@xevo.com>