As noted in bug 715299 comment 1 and 715299 comment 2, we don't have any way of deleting ping data from disk save by sending those pings in. And if we don't send those pings in (e.g. short sessions, disconnected from the network for a long time, ping server downtime, etc.), they will live on the disk indefinitely, which is bad from a privacy perspective. We should have a better way of handling this.
We could use timestamps and delete pings > 1 week old
Created attachment 665552 [details] [diff] [review] patch
Comment on attachment 665552 [details] [diff] [review] patch I think that's ok assuming the other codepath exercises the same expiry code and does not evict saved pings with a more recent timestamp
(In reply to Taras Glek (:taras) from comment #3) > I think that's ok assuming the other codepath exercises the same expiry code > and does not evict saved pings with a more recent timestamp I made this a little more robust by sticking the check in loadHistograms rather than loadSavedPings; that way the tests exercise the codepath too. (The tests were subtly wrong before because I rebased incorrectly.) https://hg.mozilla.org/integration/mozilla-inbound/rev/acb61f5a441c
Comment on attachment 665552 [details] [diff] [review] patch [Approval Request Comment] Bug caused by (feature/regressing bug #): adding persistent telemetry User impact if declined: Persistent telemetry was approved on the assumption ping files would be short-lived on disk. This is not necessarily true with the current system. Users may have private data exposed through these long-lived ping files. Testing completed (on m-c, etc.): On m-c for ~2 weeks. Risk to taking this patch (and alternatives if risky): Low risk. String or UUID changes made by this patch: None.
Comment on attachment 665552 [details] [diff] [review] patch approving for aurora . Please land before monday oct 8th merge.
Backed out of aurora for XPCshell bustage TEST-INFO | (xpcshell/head.js) | exiting test /Users/cltbld/talos-slave/test/build/xpcshell/tests/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js:87: NS_ERROR_FILE_TARGET_DOES_NOT_EXIST: Component returned failure code: 0x80520006 (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) [nsIFile.remove] WARNING: nsExceptionService ignoring thread destruction after shutdown: file ../../../xpcom/base/nsExceptionService.cpp, line 166 Assertion failure: !connections[i]->ConnectionReady(), at ../../../storage/src/mozStorageService.cpp:853 <<<<<<< e.g. https://tbpl.mozilla.org/php/getParsedLog.php?id=15913417&tree=Mozilla-Aurora https://hg.mozilla.org/releases/mozilla-aurora/rev/8ce7c8f9059f
Re-pushed: https://hg.mozilla.org/releases/mozilla-aurora/rev/5979ad5526e8 This bug was committed after bug 783054, which included this hunk in test_TelemetryPing.js in one of its patches: https://hg.mozilla.org/integration/mozilla-inbound/rev/08764617f060#l1.12 The absence of bug 783054 on aurora accounts for the failure Justin saw. I felt that this hunk was trivial enough to bring over without asking for re-approval.
Is there something QA can do to verify this fix?
There's a testcase included in the patch; I don't think there's a need for QA to do anything beyond that. (Should this be in-testsuite+, then?)