Closed akkrat closed 2 years ago
We use the latest docker image and Xcode 12.1.
The crash log:
[ NOTICE ] 22/03/2021 17:06:05 [ProcessMetricsJob] fetching log from file:///tmp/7277A4A2-7D1D-4FE5-BDA3-BCFCD68157DC/D6F72682-AEE4-466F-8DCE-FCA4A027B08F.xcactivitylog [job_id: 4DE44B28-C790-462D-A6C9-1AA8E556C4C7] [ NOTICE ] 22/03/2021 17:06:05 [ProcessMetricsJob] log fetched to file:///tmp/7277A4A2-7D1D-4FE5-BDA3-BCFCD68157DC/D6F72682-AEE4-466F-8DCE-FCA4A027B08F.xcactivitylog [job_id: 4DE44B28-C790-462D-A6C9-1AA8E556C4C7] 0x7fd68045d97f 0x5598e503ee3f, Swift runtime failure: Unexpectedly found nil while unwrapping an Optional value at .build/checkouts/xclogparser/Sources/XCLogParser/parser/SwiftCompilerTimeOptionParser.swift:0 0x5598e503ee3f, function signature specialization <Arg[1] = Dead> of generic specialization <XCLogParser.SwiftCompilerTypeCheckOptionParser> of (extension in XCLogParser):XCLogParser.SwiftCompilerTimeOptionParser.parseNameAndLocation(from: Swift.String) -> Swift.Optional<(Swift.String, Swift.Int, Swift.Int)> at .build/checkouts/xclogparser/Sources/XCLogParser/parser/SwiftCompilerTimeOptionParser.swift:59 0x5598e503ee3f, generic specialization <XCLogParser.SwiftCompilerTypeCheckOptionParser> of (extension in XCLogParser):XCLogParser.SwiftCompilerTimeOptionParser.parseNameAndLocation(from: Swift.String) -> Swift.Optional<(Swift.String, Swift.Int, Swift.Int)> at /build/<compiler-generated>:0 0x5598e503ee3f, closure #1 (Swift.String) -> Swift.Optional<XCLogParser.SwiftTypeCheck> in XCLogParser.SwiftCompilerTypeCheckOptionParser.(parse in _EDF18D047378C5B6247F84B294158F58)(command: Swift.String, occurrences: Swift.Int) -> Swift.Optional<Swift.Array<XCLogParser.SwiftTypeCheck>> at /build/.build/checkouts/xclogparser/Sources/XCLogParser/parser/SwiftCompilerTypeCheckOptionParser.swift:61 0x5598e503ee3f, reabstraction thunk helper from @callee_guaranteed (@guaranteed Swift.String) -> (@owned Swift.Optional<XCLogParser.SwiftTypeCheck>, @error @owned Swift.Error) to @escaping @callee_guaranteed (@in_guaranteed Swift.String) -> (@out Swift.Optional<XCLogParser.SwiftTypeCheck>, @error @owned Swift.Error) at /build/<compiler-generated>:0 0x5598e503ee3f, generic specialization <Swift.Array<Swift.String>, XCLogParser.SwiftTypeCheck> of (extension in Swift):Swift.Sequence.compactMap<A>((A.Element) throws -> Swift.Optional<A1>) throws -> Swift.Array<A1> at /build/<compiler-generated>:0 0x5598e503ee3f, XCLogParser.SwiftCompilerTypeCheckOptionParser.(parse in _EDF18D047378C5B6247F84B294158F58)(command: Swift.String, occurrences: Swift.Int) -> Swift.Optional<Swift.Array<XCLogParser.SwiftTypeCheck>> at /build/.build/checkouts/xclogparser/Sources/XCLogParser/parser/SwiftCompilerTypeCheckOptionParser.swift:48 0x5598e503ee3f, closure #1 ((key: Swift.String, value: Swift.Int)) -> Swift.Optional<Swift.Array<XCLogParser.SwiftTypeCheck>> in XCLogParser.SwiftCompilerTypeCheckOptionParser.parse(from: Swift.Dictionary<Swift.String, Swift.Int>) -> Swift.Dictionary<Swift.String, Swift.Array<XCLogParser.SwiftTypeCheck>> at /build/.build/checkouts/xclogparser/Sources/XCLogParser/parser/SwiftCompilerTypeCheckOptionParser.swift:33 0x5598e503ee3f, reabstraction thunk helper from @callee_guaranteed (@guaranteed Swift.String, @unowned Swift.Int) -> (@owned Swift.Optional<Swift.Array<XCLogParser.SwiftTypeCheck>>, @error @owned Swift.Error) to @escaping @callee_guaranteed (@in_guaranteed (key: Swift.String, value: Swift.Int)) -> (@out Swift.Optional<Swift.Array<XCLogParser.SwiftTypeCheck>>, @error @owned Swift.Error) at /build/<compiler-generated>:0 0x5598e503ee3f, generic specialization <Swift.Dictionary<Swift.String, Swift.Int>, Swift.Array<XCLogParser.SwiftTypeCheck>> of (extension in Swift):Swift.Sequence.compactMap<A>((A.Element) throws -> Swift.Optional<A1>) throws -> Swift.Array<A1> at /build/<compiler-generated>:0 0x5598e503ee3f, XCLogParser.SwiftCompilerTypeCheckOptionParser.parse(from: Swift.Dictionary<Swift.String, Swift.Int>) -> Swift.Dictionary<Swift.String, Swift.Array<XCLogParser.SwiftTypeCheck>> at /build/.build/checkouts/xclogparser/Sources/XCLogParser/parser/SwiftCompilerTypeCheckOptionParser.swift:33 0x5598e503d9a4, XCLogParser.SwiftCompilerParser.parse() -> () at /build/.build/checkouts/xclogparser/Sources/XCLogParser/parser/SwiftCompilerParser.swift:73 0x5598e502d872, XCLogParser.ParserBuildSteps.(decorateWithSwiftcTimes in _3469993AC311903DEC578A49106939F6)(XCLogParser.BuildStep) -> XCLogParser.BuildStep at /build/.build/checkouts/xclogparser/Sources/XCLogParser/parser/ParserBuildSteps.swift:298 0x5598e5028456, XCLogParser.ParserBuildSteps.parse(activityLog: XCLogParser.IDEActivityLog) throws -> XCLogParser.BuildStep at /build/.build/checkouts/xclogparser/Sources/XCLogParser/parser/ParserBuildSteps.swift:95 0x5598e50b7258, function signature specialization <Arg[7] = Dead> of static XCMetricsBackendLib.LogParser.parseFromURL(_: Foundation.URL, machineName: Swift.String, projectName: Swift.String, userId: Swift.String, userIdSHA256: Swift.String, isCI: Swift.Bool, sleepTime: Swift.Optional<Swift.Int>) throws -> XCMetricsBackendLib.BuildMetrics at /build/Sources/XCMetricsBackendLib/UploadMetrics/LogProcessing/LogParser.swift:54 0x5598e50b7dd0, static XCMetricsBackendLib.LogParser.parseFromURL(_: Foundation.URL, machineName: Swift.String, projectName: Swift.String, userId: Swift.String, userIdSHA256: Swift.String, isCI: Swift.Bool, sleepTime: Swift.Optional<Swift.Int>) throws -> XCMetricsBackendLib.BuildMetrics at /build/<compiler-generated>:0 0x5598e50b7dd0, function signature specialization <Arg[3] = Dead> of static XCMetricsBackendLib.MetricsProcessor.process(metricsRequest: XCMetricsBackendLib.UploadMetricsRequest, logURL: Foundation.URL, redactUserData: Swift.Bool) throws -> XCMetricsBackendLib.BuildMetrics at /build/Sources/XCMetricsBackendLib/UploadMetrics/LogProcessing/MetricsProcessor.swift:13 0x5598e50a7812, static XCMetricsBackendLib.MetricsProcessor.process(metricsRequest: XCMetricsBackendLib.UploadMetricsRequest, logURL: Foundation.URL, redactUserData: Swift.Bool) throws -> XCMetricsBackendLib.BuildMetrics at /build/<compiler-generated>:0 0x5598e50a7812, closure #1 () -> () in XCMetricsBackendLib.ProcessMetricsJob.dequeue(Queues.QueueContext, XCMetricsBackendLib.UploadMetricsRequest) -> NIO.EventLoopFuture<()> at /build/Sources/XCMetricsBackendLib/UploadMetrics/Jobs/ProcessMetricsJob.swift:68 0x5598e444d68d, reabstraction thunk helper from @escaping @callee_guaranteed () -> () to @escaping @callee_unowned @convention(block) () -> () at /build/<compiler-generated>:0 0x7fd67fa68406 0x7fd67fa73c28 0x7fd67fa748cd 0x7fd67fa7c521 0x7fd6804526da 0x7fd67e65d71e 0xffffffffffffffff
I create issue on XCLogParser
It's clearly stating that the crash is caused by an optional with nil value. Safely unwrap the optionals
The PR in XCLogParser has been merged and XCMetrics uses the most recent version, which includes a fix.
We use the latest docker image and Xcode 12.1.
The crash log:
I create issue on XCLogParser