logd: remove start filtration from flushTo (part deux)
We have already searched for the start point, the start filter check is paranoia that removes out-of-order entries that we are undoubtably interested in. Out-of-order entries occur under reader pressure, as the writer gets pushed back from in-place sorted order and lands it at the end for the reader to pick it up. If this occurred during a batch run or a logger thread wakeup, the entry could be filtered out and never output to the reader. We have to treat exact finds for start in the list as terminal when we search as they represent restarts, depending on the fact that it is impossible to have the exact same time reported in two log entries or requested from a batched reader. This does break down if a log entry has xxxxxx000 nanoseconds reported, we fix that by making sure we never log such a case and slip it by a ns. Found one case where logcat.tail_time* tests failed which was fixed with this adjustment. Test: gTest logd-unit-tests, liblog-unit-tests and logcat-unit-tests Bug: 38046067 Bug: 37791296 Bug: 38341453 Change-Id: I4dd2e2596dd67b8d602160dd79661e01805227a9
Loading
Please register or sign in to comment