3f39d5cc753905874d8d93bef94f857b8808f19e |
|
13-Oct-2015 |
Alex Vakulenko <avakulenko@google.com> |
update_engine: Rename "chromeos" -> "brillo" in include paths and namespaces libchromeos is transitioning to libbrillo and chromeos namespaces and include directory is changing to brillo. Bug: 24872993 Change-Id: I770659a95be380a50fe3b2ba9f91d65818f40945
/system/update_engine/update_manager/update_manager-inl.h
|
aea4c1cea20dda7ae7e85fc8924a2d784f70d806 |
|
20-Aug-2015 |
Alex Deymo <deymo@google.com> |
Re-license update_engine to Apache2 This patch automatically replaced the license on all text files from Chromium OS (BSD style) to AOSP (Apache2), keeping the original year as a reference. The license header was added to .gyp and .gypi files, the NOTICE was replaced with a copy of the Apache2 license and MODULE_LICENSE_* file was updated. BUG=b/23084294 TEST=grep 'Chromium OS Authors' doesn't find anything. Change-Id: Ie5083750755f5180a8a785b24fe67dbf9195cd10
/system/update_engine/update_manager/update_manager-inl.h
|
0bb234147ea8f0247b733375fcf1685eaf329aac |
|
19-Jun-2015 |
Alex Deymo <deymo@chromium.org> |
update_engine: Add locations to the MessageLoop calls. When running the unittests with --v=1, this patch will show the location where the tasks were posted to the FakeMessageLoop. BUG=brillo:91 TEST=Ran unittest with --v=1 Change-Id: I0f9b0a3b67a40c26965a396258f1bd45e38f5ba3 Reviewed-on: https://chromium-review.googlesource.com/280568 Tested-by: Alex Deymo <deymo@chromium.org> Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Commit-Queue: Alex Deymo <deymo@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
509dd5376f47e38d18fe7d29da776e3dc9a9786d |
|
10-Jun-2015 |
Alex Deymo <deymo@chromium.org> |
update_engine: Convert update_manager to chromeos::MessageLoop. The update_manager/event_loop.* files were basically an abstraction of the glib main loop in order to make it easier to replace it later. This patch removes those files and replaces their functions with the chromeos::MessageLoop interface, backing it up with a FakeMessageLoop during test, and a real GlibMessageLoop during normal execution. This patch reduces the running time of the unittest considerably since there is no need to wait for the timeouts. BUG=chromium:419827,chromium:402066 TEST=Unittest still pass. Tested on a link device that the UM still runs. Change-Id: Id572248ff4c9c8be7226ef8c653a5c94ab9c1677 Reviewed-on: https://chromium-review.googlesource.com/276892 Reviewed-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Alex Deymo <deymo@chromium.org> Tested-by: Alex Deymo <deymo@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
9c155d2110381fbf7d8e4b8f840bf54c3008fe0c |
|
10-Dec-2014 |
Alex Vakulenko <avakulenko@chromium.org> |
Update libchrome to r307740 and fix build errors Updated libchrome, libchrome_crypto, metrics, feedback to the latest revisions from Chrome (r307740). Fixed build breaks due to the changes in upstream code: - scope_ptr no longer needs explicit PassAs<T>() calls. - scope_ptr<T> no longer has implicit conversion to T*. Must use scope_ptr<T>::get() instead. - base/file_util.h moved to base/files/file_util.h - ARRAYSIZE_UNSAFE() removed in favor of arraysize() - base::AppendToFile() and base::WriteFileDescriptor() now return bool instead of the number of bytes written. - dbus::Bus::AddFilterFunction() now returns void. - C++11 features are enabled in libchromeos, so all targets linking with it now have to support C++11 - OVERRIDE macro is removed in favor of native C++11 'override' keyword. BUG=chromium:416628, chromium:411508 TEST=Build the world on x86, x64, ARM. The following builders were tried: x86-generic-full amd64-generic-full arm-generic-full amd64-generic-asan daisy-full nyan-full pre-cq-group daisy-release-group sandybridge-release-group pineview-release-group CQ-DEPEND=CL:234450,CL:234980 Change-Id: I374bebe2211d533c4431c82efb8be1cdcb1f405d Reviewed-on: https://chromium-review.googlesource.com/234440 Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org> Tested-by: Alex Vakulenko <avakulenko@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
02f7c1dee242f490143791dbb73fa23fa3007cfa |
|
19-Oct-2014 |
Ben Chan <benchan@chromium.org> |
update_engine: Replace scoped_ptr with std::unique_ptr. BUG=None TEST=`FEATURES=test emerge-$BOARD update_engine` TEST=`USE='clang asan' FEATURES=test emerge-$BOARD update_engine` Change-Id: I55a2f7f53675faaac20ba25f72ed52cf938d7744 Reviewed-on: https://chromium-review.googlesource.com/224189 Tested-by: Ben Chan <benchan@chromium.org> Reviewed-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Ben Chan <benchan@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
83ffddaa3b09ceb4361e5c01ba300d57ab697a7e |
|
08-Aug-2014 |
Gilad Arnold <garnold@chromium.org> |
update_engine: UM: UpdateManager removes EvaluationContext objects. This fixes a situation where the destruction of an UpdateManager object may leave a bunch of dangling main loop events due to delayed evaluation, whose presence prevents the destruction of their corresponding EvaluationContext objects. We solve this by registering each EvaluationContext that's created for an async evaluation with the UpdateManager, and storing a (weak) reverse callback in each EvaluationContext for unregistering itself upon destruction. The UpdateManager itself cares to unregister (i.e. remove any pending events) for any outstanding EvaluationContexts that are still present during its destruction. This also ensures that these objects are properly destructed right after the destruction of the UpdateManager. This CL also fixes a bug whereas removal of pending events might have left a "live" callback handle inside the EvaluationContext, thus creating a reference-count cycle and preventing the object from being deallocated. BUG=None TEST=Unit tests. Change-Id: I5b7f4b740241ed3a5f1831ae41fead0fc1481071 Reviewed-on: https://chromium-review.googlesource.com/211720 Tested-by: Gilad Arnold <garnold@chromium.org> Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Commit-Queue: Gilad Arnold <garnold@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
fd45a731d9f9176ce134b34e2a84acc0cf403d1d |
|
08-Aug-2014 |
Gilad Arnold <garnold@chromium.org> |
update_engine: UM: Async request expiration handled differently. As discussed on the tracker issue, we're changing the way an async policy request expiration timeout is being handled: instead of failing the policy request entirely, this now only causes the UpdateManager to dump the evaluation context, reset the expiration deadline and reevaluate the policy (which is necessary in order for evaluation time and corresponding timeouts to be recomputed). This is aimed to ensure that policies are allowed to block for arbitrarily long periods, while still emitting useful information to the log (which will help diagnose if this is due to an implementation error). Since the expiration timeout no longer returns control to the caller, we remove it from the AsyncPolicyRequest() API. Instead, we use a single timeout value, which is set during the UpdateManager construction and used for all policy calls. By default, the update engine sets it to 12 hours; for testing and debugging purposes, a smaller value is used. This CL also forbids the default (fallback) policy from blocking, forcing a failure instead; a situation like that makes no sense anyway, and may lead to inconsistent return values leaking to the caller. BUG=chromium:401687 TEST=Unit tests. Change-Id: I0bf60875bb7f524c99ed72dac61720633ab2061b Reviewed-on: https://chromium-review.googlesource.com/211647 Tested-by: Gilad Arnold <garnold@chromium.org> Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Reviewed-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Gilad Arnold <garnold@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
072359ca138504065e1e0c1189eb38c09576d324 |
|
18-Jul-2014 |
Alex Vakulenko <avakulenko@chromium.org> |
update_engine: fixed remaining linter and some spelling errors Fixed remaining errors from cpplint as well as some spelling errors mostly in comments. BUG=None TEST=FEATURES=test emerge-link update_engine Change-Id: I484988ab846ac5a3c68c016ddccfb247f225ec27 Reviewed-on: https://chromium-review.googlesource.com/208897 Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Commit-Queue: Alex Vakulenko <avakulenko@chromium.org> Tested-by: Alex Vakulenko <avakulenko@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
6e5ab5c011a214aa345ecbba3d910c2ffaec3c83 |
|
24-Jun-2014 |
Gilad Arnold <garnold@chromium.org> |
UM: Dump the EvaluationContext when evaluation of a policy fails. This gives the log reader a complete picture of the state of variables at the time when a policy evaluation has failed. We slightly revise the JSON output of EvaluationContext::DumpContext() to remove trailing whitespaces (newline, etc). BUG=chromium:387937 TEST=Observed context dumping during unit testing. Change-Id: I33712a896225f3be97bc313468f89f9cd724673b Reviewed-on: https://chromium-review.googlesource.com/205896 Reviewed-by: Gilad Arnold <garnold@chromium.org> Tested-by: Gilad Arnold <garnold@chromium.org> Commit-Queue: Gilad Arnold <garnold@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
f9f85d6680164064648ce3ed1d31589e1f1b7a29 |
|
20-Jun-2014 |
Gilad Arnold <garnold@chromium.org> |
UM: Add an expiration timeout for async policy requests. This enforces a timeout on AsyncPolicyRequest() calls. The timeout applies to the overall period an async policy takes to be evaluated. If a timeout fires, the update manager defers straight to evaluating the default policy. The actual expiration handling is done by the EvaluationContext, incorporating it as part of its deferred reevaluation logic. This allows us to not add (and manage) a separate main loop event for the expiration timeout. Unit tests were added to ensure that normal/timeout events are scheduled and removed correctly, and that evaluation context expiration is enforced. BUG=chromium:384094 TEST=Unit tests. Change-Id: Ia40e0ac3d8ab68eed043013cc930d699f3c3db93 Reviewed-on: https://chromium-review.googlesource.com/205895 Tested-by: Gilad Arnold <garnold@chromium.org> Reviewed-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Gilad Arnold <garnold@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
48415f1f6c6c356bfa9ac85b76d8ebcf053f7157 |
|
27-Jun-2014 |
Gilad Arnold <garnold@chromium.org> |
UpdateManager: Adjustments for cpplint. - Rename header file guards. - Added missing #includes. Note that the linter still barks about C++11-style curly-braced member initialization; there are abundant uses of this and we should probably upstream a change to accommodate that. BUG=None TEST=Builds. Change-Id: Icccc88e6e56e56f644536147cd88ae92462a1495 Reviewed-on: https://chromium-review.googlesource.com/205894 Tested-by: Gilad Arnold <garnold@chromium.org> Reviewed-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Gilad Arnold <garnold@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
b227199133f2d694414293697c67599a761f23be |
|
19-Jun-2014 |
Gilad Arnold <garnold@chromium.org> |
UM: Make the evaluation timeout configurable. This allows the client to construct the UpdateManager with a custom evaluation timeout for sync policy requests, which is in turn being passed to each EvaluationContext instance used for sync policy evaluation. BUG=chromium:363790 TEST=Unit tests. Change-Id: I5a6ec02a3ca2a2c611276eacbcda6aac8304e929 Reviewed-on: https://chromium-review.googlesource.com/204687 Reviewed-by: Gilad Arnold <garnold@chromium.org> Commit-Queue: Gilad Arnold <garnold@chromium.org> Tested-by: Gilad Arnold <garnold@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
b3b05446d3ef9620c90084e11cd1ae4eca20f4a2 |
|
30-May-2014 |
Gilad Arnold <garnold@chromium.org> |
UM: Policy for deciding download URL. This adds a new private policy (UpdateDownloadUrl) for determining which download URL should be used for obtaining the update payload. We further extend an existing public policy (UpdateCanStart) to return the download URL details, based on the current URL index and the number of failures associated with it. This renders the explicit notion of "HTTP download allowed" in the return value unnecessary: If HTTP is not allowed, then HTTP URLs will not be considered. We also implement logic for logging the start/end of a policy evaluation, so that intermediate log messages emitted during evaluation have a clear context. BUG=chromium:358329 TEST=Unit tests. Change-Id: Ib5343417480d8825082f83bed2630a6611360b61 Reviewed-on: https://chromium-review.googlesource.com/203373 Tested-by: Gilad Arnold <garnold@chromium.org> Reviewed-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Gilad Arnold <garnold@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
897b5e592cf64e3c04ed1151d19ce5cd51a90592 |
|
21-May-2014 |
Gilad Arnold <garnold@chromium.org> |
PM: Blocking policy requests cannot be called synchronously. Policy requests that may return EvalStatus::kAskMeAgainLater are considered blocking and should only be called asynchronously. It is therefore an error to call a policy returning this value via UpdateManager::PolicyRequest(), and so we kill the program with an assertion (DCHECK) if this happens; for release builds, a warning log is emitted. Note: the associated death test builds and runs iff DCHECK is enabled. BUG=None TEST=Unit tests. Change-Id: I75e2f5e4498f85857aff41778df0300d7c8898e7 Reviewed-on: https://chromium-review.googlesource.com/200760 Reviewed-by: Gilad Arnold <garnold@chromium.org> Commit-Queue: Gilad Arnold <garnold@chromium.org> Tested-by: Gilad Arnold <garnold@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|
63784a578dd26880454d70797519358a2326291b |
|
28-May-2014 |
Alex Deymo <deymo@chromium.org> |
Rename the PolicyManager to UpdateManager. This change renames the PolicyManager class, directory, tests, etc, to avoid confusion with libpolicy and its classes. BUG=chromium:373551 TEST=emerged on link. CQ-DEPEND=CL:I43081673c7ba409f02273197da7915537bde39c6 Change-Id: Iffa76caa3b95ecbbdba87ab01006d1d8ce35a27f Reviewed-on: https://chromium-review.googlesource.com/201876 Tested-by: Alex Deymo <deymo@chromium.org> Reviewed-by: David Zeuthen <zeuthen@chromium.org> Commit-Queue: Alex Deymo <deymo@chromium.org>
/system/update_engine/update_manager/update_manager-inl.h
|