You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
swift-5.5 release on the swift:5.5-focal docker image.
Additional Detail from JIRA
Votes
0
Component/s
LLDB for Swift
Labels
Bug
Assignee
None
Priority
Medium
md5: b05f80d34cacf2fcbb48c008f7233815
Issue Description:
intro
I have a program (repro.swift, reproduced at the bottom of this ticket) which crashes sometimes but on Linux only (due to SR-15368).
So I thought, let's see where exactly it crashes using LLDB like so:
lldb --batch -k bt -k 'exit 123' -o run -o run -o run -o run -o run -o run -o run -o run -o run -o run -o run -o run -o run -o run -o run -o run -o run -o run -o run ./repro
or, do make it less annoying to type
swiftc repro.swift && lldb --batch -k bt -k "exit 123" $(for f in $(seq 50); do echo -o run; done) ./repro
expected
I would expect that the program runs, runs, runs, until it crashes. Then it should print the backtrace and exit LLDB.
actual
$ docker run -it --rm --privileged -v "$PWD:$PWD" -w "$PWD" swift:5.5-focal bash -c 'swiftc repro.swift && lldb --batch -k bt -k "exit 123" $(for f in $(seq 50); do echo -o run; done) ./repro'
(lldb) target create "./repro"
Current executable set to '/tmp/repro' (x86_64).
(lldb) run
Process 47 exited with status = 0 (0x00000000)
[...]
Process 1433 launched: '/tmp/repro' (x86_64)
(lldb) run
Process 1499 exited with status = 0 (0x00000000)
Process 1499 launched: '/tmp/repro' (x86_64)
(lldb) run
Process 1565 stopped
* thread #​53, name = 'repro', stop reason = signal SIGSEGV: invalid address (fault address: 0xfffffffffffffff8)
frame #​0: 0x00007ffff7bcf9dd libswiftCore.so`Swift._ContiguousArrayStorage.__deallocating_deinit + 13
libswiftCore.so`Swift._ContiguousArrayStorage.__deallocating_deinit:
-> 0x7ffff7bcf9dd <+13>: movq -0x8(%rdx), %rax
0x7ffff7bcf9e1 <+17>: movzbl 0x50(%rax), %edi
0x7ffff7bcf9e5 <+21>: leal 0x20(%rdi), %eax
0x7ffff7bcf9e8 <+24>: notl %edi
Target 0: (repro) stopped.
Process 1565 launched: '/tmp/repro' (x86_64)
(lldb) run
Process 1565 exited with status = 9 (0x00000009)
Process 1631 exited with status = 0 (0x00000000)
Process 1631 launched: '/tmp/repro' (x86_64)
Notice how after the crash it just continues and doesn't run the bt.
And please note that this doesn't happen for all programs, something seems to be special about this one.
Repro from macOS (with docker)
docker run -it --rm --privileged -v "$PWD:$PWD" -w "$PWD" swift:5.5-focal bash -c 'swiftc repro.swift && lldb --batch -k bt -k "exit 123" $(for f in $(seq 50); do echo -o run; done) ./repro'
The repro program
import Foundation
import Dispatch
let threads = 60
let sem1 = DispatchSemaphore(value: 0)
let sem2 = DispatchSemaphore(value: 0)
let g = DispatchGroup()
(0..<threads).forEach { index in
DispatchQueue(label: "\(index)").async(group: g) {
sem1.signal()
// All threads should be parked here
sem2.wait()
precondition(ProcessInfo.processInfo.hostName.utf8.count > 0)
}
}
(0..<threads).forEach { index in
sem1.wait()
}
(0..<threads).forEach { index in
sem2.signal()
}
g.wait()
The text was updated successfully, but these errors were encountered:
Environment
swift-5.5 release on the
swift:5.5-focal
docker image.Additional Detail from JIRA
md5: b05f80d34cacf2fcbb48c008f7233815
Issue Description:
intro
I have a program (
repro.swift
, reproduced at the bottom of this ticket) which crashes sometimes but on Linux only (due to SR-15368).So I thought, let's see where exactly it crashes using LLDB like so:
or, do make it less annoying to type
expected
I would expect that the program runs, runs, runs, until it crashes. Then it should print the backtrace and exit LLDB.
actual
Notice how after the crash it just continues and doesn't run the
bt
.And please note that this doesn't happen for all programs, something seems to be special about this one.
Repro from macOS (with docker)
docker run -it --rm --privileged -v "$PWD:$PWD" -w "$PWD" swift:5.5-focal bash -c 'swiftc repro.swift && lldb --batch -k bt -k "exit 123"$(for f in $ (seq 50); do echo -o run; done) ./repro'
The repro program
The text was updated successfully, but these errors were encountered: