Skip to content

Commit 9ba4f5b

Browse files
committed
Merge branch 'release-v66.1.0' into release
2 parents 593fa99 + ace9b6e commit 9ba4f5b

File tree

32 files changed

+3858
-443
lines changed

32 files changed

+3858
-443
lines changed

.buildconfig.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
libraryVersion: 66.0.1
1+
libraryVersion: 66.1.0
22
groupId: org.mozilla.telemetry
33
projects:
44
glean:

.dictionary

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
personal_ws-1.1 en 304 utf-8
1+
personal_ws-1.1 en 306 utf-8
22
AAR
33
AARs
44
ABI
@@ -233,13 +233,15 @@ pdoc
233233
perrymcmanis
234234
pidcat
235235
pipenv
236+
plaintext
236237
polyfill
237238
pre
238239
prebuilt
239240
preinit
240241
profiler
241242
py
242243
pytest
244+
regenerations
243245
rethrow
244246
retransmission
245247
rfloor

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
# Unreleased changes
22

3-
[Full changelog](https://github.com/mozilla/glean/compare/v66.0.1...main)
3+
[Full changelog](https://github.com/mozilla/glean/compare/v66.1.0...main)
4+
5+
# v66.1.0 (2025-11-03)
6+
7+
[Full changelog](https://github.com/mozilla/glean/compare/v66.0.1...v66.1.0)
8+
9+
* General
10+
* Store the client ID in an additional plaintext file and report on regeneration ([#3292](https://github.com/mozilla/glean/pull/3292))
411

512
# v66.0.1 (2025-10-30)
613

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

DEPENDENCIES.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4606,9 +4606,9 @@ SOFTWARE.
46064606

46074607
The following text applies to code linked from these dependencies:
46084608

4609-
* [glean-core 66.0.1]( https://github.com/mozilla/glean )
4609+
* [glean-core 66.1.0]( https://github.com/mozilla/glean )
46104610
* [glean-build 18.0.6]( https://github.com/mozilla/glean )
4611-
* [glean 66.0.1]( https://github.com/mozilla/glean )
4611+
* [glean 66.1.0]( https://github.com/mozilla/glean )
46124612
* [zeitstempel 0.2.0]( https://github.com/badboy/zeitstempel )
46134613

46144614
```

docs/dev/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,5 @@
4040
- [Debug Pings](core/internal/debug-pings.md)
4141
- [Upload mechanism](core/internal/upload.md)
4242
- [Implementations](core/internal/implementations.md)
43+
- [Client ID recovery](core/internal/client_id_recovery.md)
4344
- [API Documentation](api/index.md)

docs/dev/book.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ build-dir = "book"
88
create-missing = false
99

1010
[output.html]
11-
additional-css = ["../shared/glean.css", "../shared/mermaid.css"]
11+
additional-css = ["../shared/glean.css"]
1212
additional-js = ["../shared/tabs.js", "../shared/mermaid.min.js", "../shared/mermaid-init.js"]
1313
git-repository-url = "https://github.com/mozilla/glean"
1414
edit-url-template = "https://github.com/mozilla/glean/edit/main/docs/dev/{path}"
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Client ID recovery
2+
3+
Currently (2025-10-31, Glean v66) we see some unexplained Glean SDK database resets.
4+
These are noticeable in data as client ID regenerations:
5+
A client application with telemetry enabled, which previously already sent data,
6+
regenerates its client ID on initialize and thus looks like a new client.
7+
8+
That's undesirable and a bug.
9+
However we have yet to track down the actual faulty code path.
10+
Until that bug is found and fixed, the Glean SDK provides an extra mitigation.
11+
12+
From Glean v66.1.0 on the SDK will store the client ID in a `client_id.txt` in the provided data path.
13+
Any inconsistencies in that data compared to the database will be reported
14+
and, if applicable, the client ID restored.
15+
16+
**Note:** Glean v66.1.0 will only report the inconsistency, but will not restore a recovered client ID.
17+
This allows us to measure the impact.
18+
The mitigation will be enabled in a later release ([bug 1996862](https://bugzilla.mozilla.org/show_bug.cgi?id=1996862)).
19+
20+
The exact flow of decisions is depicted in the chart below.
21+
The implementation is in [`glean-core/src/core/mod.rs`](https://github.com/mozilla/glean/blob/HEAD/glean-core/src/core/mod.rs#L264)
22+
23+
```mermaid
24+
flowchart TD
25+
A["Glean.init"] -->B
26+
B{client_id.txt exists?} -->|yes| C
27+
B -->|no| D
28+
C["(a) load file ID"] --> E
29+
D["load DB ID"] --> D3
30+
D3{DB ID empty} -->|yes| D4
31+
D3 -->|no| S
32+
D4["generate DB ID"] --> S
33+
E{valid file and ID?} -->|yes| H
34+
E -->|no| G
35+
G["(b) record file read error"] --> H
36+
H{"(c) DB size <= 0"} -->|yes| J
37+
H -->|no| F
38+
J["(d) record empty DB error
39+
report recovered ID: file ID"] --> Q
40+
F["load DB ID"] --> N
41+
L{file ID == DB ID} --> |yes| Z
42+
L -->|no| T
43+
N{DB ID empty?} -->|yes| O
44+
N -->|no| L
45+
O["(f) record regen error"] --> Q
46+
P["(g) record mismatch error
47+
report recovered ID: file ID"] --> S
48+
Q["(e) mitigation:
49+
set DB ID = file ID"] --> Z
50+
S["(h) write DB ID to file"] --> Z
51+
T{"DB ID == 'c0ffee'"}
52+
T -->|yes| U
53+
T -->|no| P
54+
U["(i) record c0ffee error
55+
report recovered ID: file ID"] --> Q
56+
57+
Z(normal operation)
58+
```

docs/dev/core/internal/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ This includes:
1717
* [Clearing metrics when disabling/enabling Glean](clearing.md)
1818
* [Database format](database.md)
1919
* [Payload format](payload.md)
20-
* [Directory structure](directory-structure.md)
20+
* [Directory & file structure](directory-structure.md)
2121
* [Debug Pings](debug-pings.md)
22+
* [Upload mechanism](upload.md)
2223
* [Implementations](implementations.md)
24+
* [Client ID recovery](client_id_recovery.md)

docs/dev/core/internal/upload.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,17 @@ All language bindings implement ping uploading around a common API and protocol.
2020

2121
```mermaid
2222
classDiagram
23-
class UploadResult {
24-
}
23+
class UploadResult { }
2524
2625
class HttpResponse {
2726
int statusCode
2827
}
2928
30-
class UnrecoverableFailure {
31-
}
29+
class UnrecoverableFailure { }
3230
33-
class RecoverableFailure {
34-
}
31+
class RecoverableFailure { }
3532
36-
class Incapable {
37-
}
33+
class Incapable { }
3834
3935
UploadResult <|-- HttpResponse
4036
UploadResult <|-- UnrecoverableFailure

0 commit comments

Comments
 (0)