Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 490112

Summary: Add unique id to p2 user agent information
Product: [Eclipse Project] Equinox Reporter: Ian Skerrett <ian.skerrett>
Component: p2Assignee: Pascal Rapicault <pascal>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: antoine.thomas, daniel_megert, david_williams, markus.kell.r, mike.milinkovich, mn, pascal, tjwatson, wayne.beaton
Version: unspecifiedFlags: daniel_megert: review+
tjwatson: review+
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
See Also: https://git.eclipse.org/r/71512
https://git.eclipse.org/c/platform/eclipse.platform.runtime.git/commit/?id=b97ef3f4f4fc248edcabf714c36ad7980529f399
https://git.eclipse.org/r/71555
https://git.eclipse.org/c/equinox/rt.equinox.p2.git/commit/?id=f64681eca06c4f8142bac7f0a1c91df8113a232d
https://bugs.eclipse.org/bugs/show_bug.cgi?id=492916
https://git.eclipse.org/r/73878
https://git.eclipse.org/r/73991
https://git.eclipse.org/r/73994
https://git.eclipse.org/c/platform/eclipse.platform.runtime.git/commit/?id=4561fb4325bb3edf0d40dff5dfca9a474273501e
https://git.eclipse.org/c/equinox/rt.equinox.p2.git/commit/?id=3bcec796ae83cd5400228185662275446056993f
https://git.eclipse.org/r/74610
https://git.eclipse.org/r/74611
https://git.eclipse.org/c/equinox/rt.equinox.p2.git/commit/?id=e421fd9ec19155d412a64851f348e23dbbd3a948
https://git.eclipse.org/r/74655
https://git.eclipse.org/c/equinox/rt.equinox.p2.git/commit/?id=41688dd1563f4ccb6dd6921bef46c2a805c7d9da
https://git.eclipse.org/r/74660
Whiteboard: stalebug
Bug Depends on:    
Bug Blocks: 494852, 495484    

Description Ian Skerrett CLA 2016-03-21 14:31:47 EDT
For each Eclipse installation, when p2 checks for updates the user agent includes information about the Eclipse installation. I would like to add to this information a unique id. This will allow us to get a more accurate count of the number of active Eclipse installations.

The unique id should be anonymous. It would also be nice if other projects could access the unique id and include it in their own user agent.
Comment 1 Pascal Rapicault CLA 2016-04-09 21:26:36 EDT
what is the "scope" of the unique ID?
- The Eclipse installation 
- The machine

The difference between the two is the following. With the first one, if the user has two installations they will be reported with two different UUIDs, whereas with the second one, they will be reported with the same UUID.

Let me know which one you prefer.
Comment 2 Ian Skerrett CLA 2016-04-11 09:46:34 EDT
(In reply to Pascal Rapicault from comment #1)
> what is the "scope" of the unique ID?
> - The Eclipse installation 
> - The machine
> 
> The difference between the two is the following. With the first one, if the
> user has two installations they will be reported with two different UUIDs,
> whereas with the second one, they will be reported with the same UUID.
> 
> Let me know which one you prefer.

I would prefer the machine. We want to count users, not installations.  I do appreciate if a user has more than one machine it will count as 2.
Comment 3 Wayne Beaton CLA 2016-04-11 10:24:30 EDT
(In reply to Ian Skerrett from comment #2)
> I would prefer the machine. We want to count users, not installations.  I do
> appreciate if a user has more than one machine it will count as 2.

Is there any reason to not include the installation? Or even the workspace?
Comment 4 Pascal Rapicault CLA 2016-04-11 19:37:41 EDT
(In reply to Wayne Beaton from comment #3)
> (In reply to Ian Skerrett from comment #2)
> > I would prefer the machine. We want to count users, not installations.  I do
> > appreciate if a user has more than one machine it will count as 2.
> 
> Is there any reason to not include the installation? Or even the workspace?
   What insight do you hope to gain from this? 

Know that at this point p2 currently reports the following information:
- os name and version, arch, langugage
- product id & version
- application
- java vendor & version 
- p2 version
With this information we can know which version of Eclipse or eclipse based product is being used. 
With the addition of the unique ID will be able to know if a user has multiple eclipse based products installed, and we will also be able to know if they look for updates, install software from the MPC, and probably even more.

Should we be able to coordinate with the error reporter to both use the same id, then we will be able to know if a user reports errors.

So to go back to your initial question, I'm not seeing what the addition of the installation path (or hash of that) will bring. For example we will know that a lot of users are install Eclipse in (c:\Program Files\Eclipse\).

As for the workspace id, as much as this may be useful in some context, I would rather not use the ping back home done by p2 to carry this informatio because it is out-of-context of the goals of identifying what users are doing with Eclipse. This is not to say that there may not be other contexts where this could be useful (like the mechanism to store preferences on the foundation servers).
Comment 5 Eclipse Genie CLA 2016-04-27 07:04:24 EDT
New Gerrit change created: https://git.eclipse.org/r/71512
Comment 6 Thomas Watson CLA 2016-04-27 09:37:38 EDT
(In reply to Ian Skerrett from comment #0)
> For each Eclipse installation, when p2 checks for updates the user agent
> includes information about the Eclipse installation. I would like to add to
> this information a unique id. This will allow us to get a more accurate
> count of the number of active Eclipse installations.
> 
> The unique id should be anonymous. It would also be nice if other projects
> could access the unique id and include it in their own user agent.

Is this critical for Neon?
Comment 7 Ian Skerrett CLA 2016-04-27 09:41:24 EDT
(In reply to Thomas Watson from comment #6)
> (In reply to Ian Skerrett from comment #0)
> > For each Eclipse installation, when p2 checks for updates the user agent
> > includes information about the Eclipse installation. I would like to add to
> > this information a unique id. This will allow us to get a more accurate
> > count of the number of active Eclipse installations.
> > 
> > The unique id should be anonymous. It would also be nice if other projects
> > could access the unique id and include it in their own user agent.
> 
> Is this critical for Neon?

Yes
Comment 8 Dani Megert CLA 2016-04-27 09:51:51 EDT
(In reply to Ian Skerrett from comment #0)
> The unique id should be anonymous. It would also be nice if other projects
> could access the unique id and include it in their own user agent.

Well, it would still be possible to connect the id to the IP address.

I think there should at least be a way for users to turn this off.
Comment 9 Dani Megert CLA 2016-04-27 09:53:57 EDT
(In reply to Ian Skerrett from comment #7)
> > Is this critical for Neon?
> 
> Yes

Note that we have our last build for the last milestone (M7) today. After that any feature work needs to be brought to the PMC for approval.
Comment 10 Ian Skerrett CLA 2016-04-27 11:47:00 EDT
(In reply to Dani Megert from comment #8)
> (In reply to Ian Skerrett from comment #0)
> > The unique id should be anonymous. It would also be nice if other projects
> > could access the unique id and include it in their own user agent.
> 
> Well, it would still be possible to connect the id to the IP address.

We already capture information by IP address so I am not sure why adding a UUID makes this less anonymous. The key concern is not to collect personally identifiable information and that is certainly not the case here.
Comment 11 Pascal Rapicault CLA 2016-04-27 11:58:30 EDT
(In reply to Dani Megert from comment #8)
> (In reply to Ian Skerrett from comment #0)
> > The unique id should be anonymous. It would also be nice if other projects
> > could access the unique id and include it in their own user agent.
> 
> Well, it would still be possible to connect the id to the IP address.
   This depends on the kind of UUID you compute. In this case we are using a version that does not allow for this.
Comment 13 Eclipse Genie CLA 2016-04-27 15:45:59 EDT
New Gerrit change created: https://git.eclipse.org/r/71555
Comment 15 Markus Keller CLA 2016-04-28 14:18:09 EDT
(In reply to Ian Skerrett from comment #0)
> The unique id should be anonymous.

An "anonymous UUID" is an oxymoron. Just the fact that a name or IP address is not included in the UUID doesn't mean it can't be used to track individuals down by combining it with other data. E.g. via the originating IP address of the update request, or via an error report or a log file that includes the user's identity and the new system property "eclipse.uuid".

Users can at least remove their UUID in 
~/.eclipse/eclipse.uuid if they want to.
Comment 16 Dani Megert CLA 2016-05-02 12:19:52 EDT
Is there more work to be done? If not, please close per M7.
Comment 17 Thomas Watson CLA 2016-05-02 16:20:33 EDT
(In reply to Dani Megert from comment #16)
> Is there more work to be done? If not, please close per M7.

I believe this is done.  Pascal, please reopen if otherwise.
Comment 18 Eclipse Genie CLA 2016-05-29 11:19:30 EDT
New Gerrit change created: https://git.eclipse.org/r/73878
Comment 19 Mykola Nikishov CLA 2016-05-29 11:35:52 EDT
(In reply to Markus Keller from comment #15)

> An "anonymous UUID" is an oxymoron.

+1

> Users can at least remove their UUID in 
> ~/.eclipse/eclipse.uuid if they want to.

Opt-out, effectively, doesn't work because UUID it will be re-created,
see [1].

Adding Oomph-derived installations to the mix, not sure users not
willing to share their Eclipse UUID will run 'rm
~/.eclipse/eclipse.uuid' _every_ signle time before running _any_
Eclipse-based application (well, any that uses ~/.eclipse/)...

Change [2] suggests another solution that follows 'secure/anonymous by
default' principle.

[1] https://git.eclipse.org/c/platform/eclipse.platform.runtime.git/commit/?id=b97ef3f4f4fc248edcabf714c36ad7980529f399
[2] https://git.eclipse.org/r/73878
Comment 20 Pascal Rapicault CLA 2016-05-30 14:05:01 EDT
> Opt-out, effectively, doesn't work because UUID it will be re-created,
> see [1].
   This is incorrect. If the property is set then no file gets created.
Comment 21 Ian Skerrett CLA 2016-05-30 15:18:36 EDT
(In reply to Mykola Nikishov from comment #19)
> Opt-out, effectively, doesn't work because UUID it will be re-created,
> see [1].
> 

The way to opt-out is to manually set the eclipse.uuid value to 0. I agree this might have not been obvious.

Therefore, I`d like to suggest we add a comment in the file that describes how to opt-out.  I`d suggest the following text for the comment:
"#To opt-out from using a UUID, please change this value to 0. If you delete this file, a new UUID will be created."

I would also like to make sure the UUID is included in the user agent for only http requests made to Eclipse Foundation servers, ie. *.eclipse.org.
Comment 22 Mykola Nikishov CLA 2016-05-30 16:39:13 EDT
(In reply to Ian Skerrett from comment #21)
> (In reply to Mykola Nikishov from comment #19)
> > Opt-out, effectively, doesn't work because UUID it will be re-created,
> > see [1].
> 
> The way to opt-out is to manually set the eclipse.uuid value to 0. I agree
> this might have not been obvious.

Must admit I failed this test.

> Therefore, I`d like to suggest we add a comment in the file that describes
> how to opt-out.

It seems UUID generation is a matter of a separate bug against Platform.

> I would also like to make sure the UUID is included in the user agent for only http requests made to Eclipse Foundation servers, ie. *.eclipse.org.

WRT p2, UUID is just one of the parameters leaking out w/o user's consent.

-1 for opt-out
+1 for opt-in, bug 494852
Comment 23 Eclipse Genie CLA 2016-05-30 16:51:38 EDT
New Gerrit change created: https://git.eclipse.org/r/73991
Comment 24 Eclipse Genie CLA 2016-05-30 17:00:25 EDT
New Gerrit change created: https://git.eclipse.org/r/73994
Comment 25 Dani Megert CLA 2016-05-31 09:45:14 EDT
(In reply to Ian Skerrett from comment #21)
> (In reply to Mykola Nikishov from comment #19)
> > Opt-out, effectively, doesn't work because UUID it will be re-created,
> > see [1].
> > 
> 
> The way to opt-out is to manually set the eclipse.uuid value to 0. I agree
> this might have not been obvious.

This *is* not obvious ;-). And even with the comment, I doubt that anyone not involved with this change knows where to search for such a file.

I'm not as strict as requesting an opt-in, but the user should be asked before the UID is created. This might be too late fro 4.6 but should be considered for 4.6.1. For 4.6 this needs to be documented and put into the New and Noteworthy.
Comment 26 Ian Skerrett CLA 2016-05-31 14:35:11 EDT
(In reply to Dani Megert from comment #25)
> (In reply to Ian Skerrett from comment #21)
> > (In reply to Mykola Nikishov from comment #19)
> > > Opt-out, effectively, doesn't work because UUID it will be re-created,
> > > see [1].
> > > 
> > 
> > The way to opt-out is to manually set the eclipse.uuid value to 0. I agree
> > this might have not been obvious.
> 
> This *is* not obvious ;-). And even with the comment, I doubt that anyone
> not involved with this change knows where to search for such a file.
> 
> I'm not as strict as requesting an opt-in, but the user should be asked
> before the UID is created. This might be too late fro 4.6 but should be
> considered for 4.6.1. For 4.6 this needs to be documented and put into the
> New and Noteworthy.

OK, how can we provide content for the new and noteworthy? Where else would it make sense to document it?
Comment 27 Wayne Beaton CLA 2016-05-31 14:52:56 EDT
(In reply to Ian Skerrett from comment #26)
> OK, how can we provide content for the new and noteworthy? Where else would
> it make sense to document it?

I'm using Bug 485299 to track the aggregate new and noteworthy. Add a comment there. It would be great if somebody can provide some descriptive words in paragraph form.
Comment 28 Antoine THOMAS CLA 2016-06-01 04:10:09 EDT
(In reply to Mykola Nikishov from comment #19)
> Opt-out, effectively, doesn't work because UUID it will be re-created,
> see [1].

Question to be sure I understand how it works: if a user delete the "eclipse.uuid" file, Eclipse will re-create a file with the same exact UUID? or a new one will be created?
Comment 29 Antoine THOMAS CLA 2016-06-01 04:14:36 EDT
(In reply to Ian Skerrett from comment #21)
> Therefore, I`d like to suggest we add a comment in the file that describes
> how to opt-out.  I`d suggest the following text for the comment:
> "#To opt-out from using a UUID, please change this value to 0. If you delete
> this file, a new UUID will be created."

I checked my "eclipse.uuid" and this comment is not in the file. Is it something already implemented? or should we open another bug?
Comment 30 Dani Megert CLA 2016-06-01 07:16:19 EDT
(In reply to Antoine THOMAS from comment #29)
> (In reply to Ian Skerrett from comment #21)
> > Therefore, I`d like to suggest we add a comment in the file that describes
> > how to opt-out.  I`d suggest the following text for the comment:
> > "#To opt-out from using a UUID, please change this value to 0. If you delete
> > this file, a new UUID will be created."
> 
> I checked my "eclipse.uuid" and this comment is not in the file. Is it
> something already implemented? or should we open another bug?

No, it's proposed in the new Gerrit changes.
Comment 31 Antoine THOMAS CLA 2016-06-01 08:18:38 EDT
Is too late to approve it for Neon?
Comment 32 Thomas Watson CLA 2016-06-01 08:53:47 EDT
There is still more work and reviews going on in gerrit for RC4.  Reopening bug.
Comment 35 Dani Megert CLA 2016-06-01 09:22:25 EDT
(In reply to Thomas Watson from comment #32)
> There is still more work and reviews going on in gerrit for RC4.  Reopening
> bug.

(In reply to Thomas Watson from comment #32)
> There is still more work and reviews going on in gerrit for RC4.  Reopening
> bug.

+1 for RC4. I think we're done here. Tom, please also add your review+ to this bug.

Change 73878 should be removed or moved to another bug.
Comment 36 Antoine THOMAS CLA 2016-06-01 11:35:29 EDT
Dany, what is your deadline for the UUID description in the "new and noteworthy"? I am at Eclipse Con France next week, so maybe it is possible to have it approved there
Comment 37 Dani Megert CLA 2016-06-01 11:39:40 EDT
(In reply to Antoine THOMAS from comment #36)
> Dany, what is your deadline for the UUID description in the "new and
> noteworthy"? I am at Eclipse Con France next week, so maybe it is possible
> to have it approved there

Officially, we (Eclipse SDK, bug 494022) have our last build today 20:00 EDT. For "Waynes" N&N you have to talk to Wayne.
Comment 38 Ian Skerrett CLA 2016-06-01 12:25:10 EDT
(In reply to Dani Megert from comment #37)
> (In reply to Antoine THOMAS from comment #36)
> > Dany, what is your deadline for the UUID description in the "new and
> > noteworthy"? I am at Eclipse Con France next week, so maybe it is possible
> > to have it approved there
> 
> Officially, we (Eclipse SDK, bug 494022) have our last build today 20:00
> EDT. For "Waynes" N&N you have to talk to Wayne.

I would really like to get something into the Eclipse SDK N&N. I am not sure if Antoine will have time to make the deadline so I will suggest something here.  Pascal and Dani does this look correct?

Title: New UUID 
The Eclipse SDK now includes an automatically generated uuid. This uuid is stored in an eclipse.uuid file found in the .eclipse properties directory. The uuid is automatically added to the user agent on requests made to eclipse.org servers, including requests made by p2. If you do not want to include a uuid in these requests, please edit the eclipse.uuid file and set the eclispe.uuid property to be 0, ex eclipse.uuid=0
Comment 39 Dani Megert CLA 2016-06-01 16:12:24 EDT
(In reply to Ian Skerrett from comment #38)
> I would really like to get something into the Eclipse SDK N&N. 

Done, see at the end of https://www.eclipse.org/eclipse/news/4.6/platform.php
Comment 40 Eclipse Genie CLA 2016-06-05 20:58:51 EDT
New Gerrit change created: https://git.eclipse.org/r/74610
Comment 41 Eclipse Genie CLA 2016-06-05 20:59:08 EDT
New Gerrit change created: https://git.eclipse.org/r/74611
Comment 43 Eclipse Genie CLA 2016-06-06 09:11:55 EDT
New Gerrit change created: https://git.eclipse.org/r/74655
Comment 45 Eclipse Genie CLA 2016-06-06 09:27:36 EDT
New Gerrit change created: https://git.eclipse.org/r/74660
Comment 46 Dani Megert CLA 2016-06-06 09:57:02 EDT
This feature was removed from Neon, see bug 495484 for details.
Comment 47 Eclipse Genie CLA 2019-11-01 12:32:43 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.