Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Experiments service still reaches out to server even when disabling telemetry #104293

Closed
joaomoreno opened this issue Aug 8, 2020 · 9 comments
Closed
Assignees
Labels
bug Issue identified by VS Code Team member as probable bug candidate Issue identified as probable candidate for fixing in the next release verified Verification succeeded
Milestone

Comments

@joaomoreno
Copy link
Member

From @rob3c, #103159 (comment):

@joaomoreno VSCode Insiders build still connects to https://default.exp-tas.com/vscode/ab even when telemetry is disabled. It does this every 30 minutes.

Here's a sample redacted request/response pair:

GET https://default.exp-tas.com/vscode/ab HTTP/1.1
Host: default.exp-tas.com
Connection: keep-alive
X-MSEdge-ClientId: [REDACTED]
X-VSCode-TargetPopulation: insider
X-VSCode-Build: Visual Studio Code - Insiders
User-Agent: [REDACTED]
X-FD-Corpnet: 
X-VSCode-AppVersion: 1.48.0-insider
Accept: application/json, text/plain, */*
X-VSCode-Language: en
X-VSCode-ExtensionName: vscode-core
X-MSEdge-Market: 
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US
If-None-Match: [REDACTED]
HTTP/1.1 304 Not Modified
ETag: [REDACTED]
X-Content-Type-Options: nosniff
X-ExP-TrackingId: [REDACTED]
X-MSEdge-Ref: [REDACTED]
Access-Control-Allow-Origin: *
Date: [REDACTED]
@joaomoreno joaomoreno added important Issue identified as high-priority candidate Issue identified as probable candidate for fixing in the next release labels Aug 8, 2020
@joaomoreno joaomoreno added this to the July 2020 milestone Aug 8, 2020
@joaomoreno joaomoreno changed the title Experiments service should be disabled when telemetry is disabled Experiments service still reaches out to server even when disabling telemetry Aug 8, 2020
@joaomoreno joaomoreno assigned joaomoreno and unassigned sbatten Aug 8, 2020
@joaomoreno joaomoreno removed candidate Issue identified as probable candidate for fixing in the next release important Issue identified as high-priority labels Aug 8, 2020
@joaomoreno joaomoreno removed this from the July 2020 milestone Aug 8, 2020
@joaomoreno
Copy link
Member Author

joaomoreno commented Aug 8, 2020

Oh silly me. There's actually a separate configuration setting for the experiments service. @rob3c can you still reproduce if you disable workbench.enableExperiments?

@joaomoreno joaomoreno added the info-needed Issue requires more information from poster label Aug 8, 2020
sbatten added a commit to sbatten/vscode that referenced this issue Aug 10, 2020
@sbatten sbatten added bug Issue identified by VS Code Team member as probable bug candidate Issue identified as probable candidate for fixing in the next release and removed info-needed Issue requires more information from poster labels Aug 10, 2020
@sbatten sbatten added this to the July 2020 milestone Aug 10, 2020
@sbatten sbatten reopened this Aug 10, 2020
@sbatten
Copy link
Member

sbatten commented Aug 10, 2020

reopening until PR is merged

@joaomoreno
Copy link
Member Author

joaomoreno commented Aug 10, 2020

@sbatten Can you give a summary of what's happening here? Given that you reopened this I take it that the setting exists, but it isn't being respected at all... so it was just a coincidence that @rob3c was poking around here? Did I get that right?

@sbatten
Copy link
Member

sbatten commented Aug 10, 2020

I just added the new experiment service this milestone. I was not aware of this setting existing for the old service, but now that I am, it should be respected in the new service as well.

sbatten added a commit that referenced this issue Aug 11, 2020
* fixes #104293

* do not poll
@isidorn
Copy link
Contributor

isidorn commented Aug 11, 2020

As far as I see there is a PR which is merged on top of the releaser branch that fixed this issue. Thus closing it.
@joaomoreno and @sbatten please reopen if I am mistaken

@isidorn isidorn closed this as completed Aug 11, 2020
@joaomoreno joaomoreno assigned sbatten and unassigned joaomoreno Aug 11, 2020
@rebornix rebornix added the verified Verification succeeded label Aug 11, 2020
@rob3c
Copy link

rob3c commented Aug 19, 2020

@joaomoreno Thanks for tracking down the root cause so quickly!

By characterizing my "poking around" as "just a coincidence", are you suggesting that it's acceptable and expected for vscode to still collect and send experiment-related telemetry even when the global telemetry.* settings are disabled?

If they're intended to be orthogonal settings, it would be much less suspicious from a privacy perspective if the workbench.enableExperiments setting were discoverable when typing telemetry in the settings search box instead of seemingly hidden. Currently, the "Workbench: Enable Experiments" description is "Fetches experiments to run from a Microsoft online service", which doesn't directly disclose that it's sending collected user telemetry data as part of the process.

In any case, at least it's possible to disable it along with the other telemetry settings once you know about it 👍

@sbatten
Copy link
Member

sbatten commented Aug 20, 2020

@rob3c If telemetry is disabled, experiments will not work and that is honored. Disabling telemetry effectively disables experiments. However, there was an issue that we would still ask for experiment information (not upload telemetry) if experiments were disabled which is a separate setting to allow users to opt out of experiments without opting out of telemetry.

@rob3c
Copy link

rob3c commented Aug 21, 2020

@sbatten Thanks for clarifying the settings and intentions behind them.

IMO, whether you choose to define the info as telemetry or not, vscode phoning home with info that uniquely identifies my machine is not expected behavior when I have telemetry globally disabled - even if the seemingly-hidden, on-by-default, practically-undiscoverable, not-using-the-telemetry-keyword, un(der)documented setting for disabling experiments is separate for a good reason.

To avoid even the appearance of bad faith on the part of Microsoft, I again suggest having that any any other such settings appear in the settings UI search results when people go looking for how to disable telemetry.

The easiest way seems to be to work it into the enableExperiments description, even if it's only to explicitly state it does not enable experiment telemetry. Maybe a (better-worded) version of something like this would work: "when telemetry is disabled globally, only minimal info strictly related to current experiments will be sent to Microsoft".

@sbatten
Copy link
Member

sbatten commented Aug 21, 2020

@rob3c since the initial ping is of no value unless the experiment service can work fully, I've just made a commit to prevent it as well.

@github-actions github-actions bot locked and limited conversation to collaborators Sep 25, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Issue identified by VS Code Team member as probable bug candidate Issue identified as probable candidate for fixing in the next release verified Verification succeeded
Projects
None yet
Development

No branches or pull requests

6 participants
@joaomoreno @rebornix @rob3c @isidorn @sbatten and others