Skip to content

Commit 3e90b7f

Browse files
committed
Merge branch 'master' of github.com:microsoft/vscode
2 parents 4541bbf + 4abd248 commit 3e90b7f

1 file changed

Lines changed: 19 additions & 8 deletions

File tree

src/vs/platform/userDataSync/common/userDataSyncService.ts

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ import { CancellationToken } from 'vs/base/common/cancellation';
2222
import { IHeaders } from 'vs/base/parts/request/common/request';
2323
import { generateUuid } from 'vs/base/common/uuid';
2424

25-
type SyncClassification = {
25+
type SyncErrorClassification = {
2626
resource?: { classification: 'SystemMetaData', purpose: 'FeatureInsight', isMeasurement: true };
27+
executionId?: { classification: 'SystemMetaData', purpose: 'FeatureInsight', isMeasurement: true };
2728
};
2829

2930
const LAST_SYNC_TIME_KEY = 'sync.lastSyncTime';
@@ -103,7 +104,7 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ
103104
this.updateLastSyncTime();
104105
} catch (error) {
105106
if (error instanceof UserDataSyncError) {
106-
this.telemetryService.publicLog2<{ resource?: string }, SyncClassification>(`sync/error/${error.code}`, { resource: error.resource });
107+
this.telemetryService.publicLog2<{ resource?: string, executionId?: string }, SyncErrorClassification>(`sync/error/${error.code}`, { resource: error.resource });
107108
}
108109
throw error;
109110
}
@@ -122,7 +123,7 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ
122123
this.updateLastSyncTime();
123124
} catch (error) {
124125
if (error instanceof UserDataSyncError) {
125-
this.telemetryService.publicLog2<{ resource?: string }, SyncClassification>(`sync/error/${error.code}`, { resource: error.resource });
126+
this.telemetryService.publicLog2<{ resource?: string, executionId?: string }, SyncErrorClassification>(`sync/error/${error.code}`, { resource: error.resource });
126127
}
127128
throw error;
128129
}
@@ -136,8 +137,16 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ
136137

137138
async createSyncTask(): Promise<ISyncTask> {
138139
this.telemetryService.publicLog2('sync/getmanifest');
139-
const syncHeaders: IHeaders = { 'X-Execution-Id': generateUuid() };
140-
const manifest = await this.userDataSyncStoreService.manifest(syncHeaders);
140+
const executionId = generateUuid();
141+
let manifest: IUserDataManifest | null;
142+
try {
143+
manifest = await this.userDataSyncStoreService.manifest({ 'X-Execution-Id': executionId });
144+
} catch (error) {
145+
if (error instanceof UserDataSyncError) {
146+
this.telemetryService.publicLog2<{ resource?: string, executionId?: string }, SyncErrorClassification>(`sync/error/${error.code}`, { resource: error.resource, executionId });
147+
}
148+
throw error;
149+
}
141150

142151
let executed = false;
143152
const that = this;
@@ -147,12 +156,12 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ
147156
if (executed) {
148157
throw new Error('Can run a task only once');
149158
}
150-
return that.doSync(manifest, syncHeaders, token);
159+
return that.doSync(manifest, executionId, token);
151160
}
152161
};
153162
}
154163

155-
private async doSync(manifest: IUserDataManifest | null, syncHeaders: IHeaders, token: CancellationToken): Promise<void> {
164+
private async doSync(manifest: IUserDataManifest | null, executionId: string, token: CancellationToken): Promise<void> {
156165
await this.checkEnablement();
157166

158167
if (!this.recoveredSettings) {
@@ -173,6 +182,8 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ
173182
this.setStatus(SyncStatus.Syncing);
174183
}
175184

185+
const syncHeaders: IHeaders = { 'X-Execution-Id': executionId };
186+
176187
for (const synchroniser of this.synchronisers) {
177188
// Return if cancellation is requested
178189
if (token.isCancellationRequested) {
@@ -191,7 +202,7 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ
191202
this.updateLastSyncTime();
192203
} catch (error) {
193204
if (error instanceof UserDataSyncError) {
194-
this.telemetryService.publicLog2<{ resource?: string }, SyncClassification>(`sync/error/${error.code}`, { resource: error.resource });
205+
this.telemetryService.publicLog2<{ resource?: string, executionId?: string }, SyncErrorClassification>(`sync/error/${error.code}`, { resource: error.resource, executionId });
195206
}
196207
throw error;
197208
} finally {

0 commit comments

Comments
 (0)