Skip to content

Commit 37dcfdf

Browse files
committed
Allow same buildID with different archs
1 parent 20faa5c commit 37dcfdf

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed
Binary file not shown.

src/commands/elf-symbols/__tests__/upload.test.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,8 @@ describe('elf-symbols upload', () => {
276276
},
277277
{
278278
...commonMetadata,
279-
file_hash: 'e8a12b7f5702d7a4f92da4983d75e9af',
280-
gnu_build_id: 'a8ac08faa0d114aa65f1ee0730af38903ac506de',
279+
file_hash: '40a0f8378cf61c89c325a397edaa0dd2',
280+
gnu_build_id: '90aef8b4a3cd45d758501e49d1d9844736c872cd',
281281
go_build_id: '',
282282
arch: 'x86_64',
283283
filename: 'dyn_x86_64',
@@ -321,7 +321,7 @@ describe('elf-symbols upload', () => {
321321

322322
return JSON.parse((payload.content.get('event') as MultipartStringValue).value)
323323
})
324-
const getId = (m: any) => m.gnu_build_id || m.go_build_id || m.file_hash
324+
const getId = (m: any) => ((m.gnu_build_id || m.go_build_id || m.file_hash) as string) + '-' + (m.arch as string)
325325
metadata.sort((a, b) => getId(a).localeCompare(getId(b)))
326326
expectedMetadata.sort((a, b) => getId(a).localeCompare(getId(b)))
327327
expect(metadata).toEqual(expectedMetadata)

src/commands/elf-symbols/elf.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,6 @@ export const getOutputFilenameFromBuildId = (buildId: string): string => {
622622
return buildId.replace(/\//g, '-')
623623
}
624624

625-
export const getBuildId = (fileMetadata: ElfFileMetadata): string => {
626-
return fileMetadata.gnuBuildId || fileMetadata.goBuildId || fileMetadata.fileHash
625+
export const getBuildIdWithArch = (fileMetadata: ElfFileMetadata): string => {
626+
return (fileMetadata.gnuBuildId || fileMetadata.goBuildId || fileMetadata.fileHash) + '-' + fileMetadata.arch
627627
}

src/commands/elf-symbols/upload.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
ElfFileMetadata,
2424
getElfFileMetadata,
2525
isSupportedElfType,
26-
getBuildId,
26+
getBuildIdWithArch,
2727
getOutputFilenameFromBuildId,
2828
copyElfDebugInfo,
2929
isSupportedArch,
@@ -282,7 +282,7 @@ export class UploadCommand extends Command {
282282
private removeBuildIdDuplicates(filesMetadata: ElfFileMetadata[]): ElfFileMetadata[] {
283283
const buildIds = new Map<string, ElfFileMetadata>()
284284
for (const metadata of filesMetadata) {
285-
const buildId = getBuildId(metadata)
285+
const buildId = getBuildIdWithArch(metadata)
286286
const existing = buildIds.get(buildId)
287287
if (existing) {
288288
if (
@@ -328,7 +328,7 @@ export class UploadCommand extends Command {
328328
try {
329329
const results = await doWithMaxConcurrency(this.maxConcurrency, elfFilesMetadata, async (fileMetadata) => {
330330
const metadata = this.getMappingMetadata(fileMetadata)
331-
const outputFilename = getOutputFilenameFromBuildId(getBuildId(fileMetadata))
331+
const outputFilename = getOutputFilenameFromBuildId(getBuildIdWithArch(fileMetadata))
332332
const outputFilePath = buildPath(tmpDirectory, outputFilename)
333333
await copyElfDebugInfo(fileMetadata.filename, outputFilePath, fileMetadata, true)
334334

0 commit comments

Comments
 (0)