New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SR-14556] Release version of Swift/LLDB is built with asserts #4314
Comments
The packaged used was https://swift.org/builds/swift-5.4-release/ubuntu2004/swift-5.4-RELEASE/swift-5.4-RELEASE-ubuntu20.04.tar.gz from swift.org. |
@swift-ci create |
1 similar comment
@swift-ci create |
As a side note, for completeness, this particular assertion looks like it would just result in a crash if removed. |
Ouch :-/ Thanks for clarification. Unfortunately it didn't give me a reproducer, but basically it seems easy to break lldb by simply stopping arbitrary Swift programs and try to inspect structs/objects/... in this case it was the NIOPerformanceTester from SwiftNIO I used. (basically I wanted to validate if I could move from my 5.3.3 custom built toolchain without asserts to the official 5.4 release, as I'd prefer not to have to roll my own...) |
Ok, played a bit more and now got a reproducer with the same assert AFAICT. Here you go: |
Short version:
|
Thanks Joakim! Do you happen to have instructions for how to build NIOPerformanceTester? Unfortunately LLDB reproducers involving Swift are not quite as reliable yet. |
Sure! Just clone https://github.com/apple/swift-nio and build with e.g.:
break with ctrl-c or let it run through, then run it in lldb:
after it has run for a few seconds, just ctrl-c to break into debugger, use "f xxx" to pick a frame with symbols and try to use "p" on some relevant object in the frame. Repeat a few times and move to a different frame if needed, for me it usually crashes on the first try. |
@hassila FYI, I created It just creates 2000 totally random breakpoints, and when hit runs Instructions how to use:
|
Thanks @weissi - I just tried that on Linux - crashed both times I tried it within a few seconds in different places - very nice smoker, would be awesome if it was part of the qualification of lldb in the future! Samples from 5.4-release on Ubuntu 20.04:
|
PR: #3048 |
Environment
Additional Detail from JIRA
md5: e2ec1ebdcffcd4242cb78f6fb98d0312
Issue Description:
Basically, the shipped release versions of LLDB are unusable on Linux as asserts are built in that are triggered for basically most p/po operations. Simple example attached.
Would be great if the release versions could be built without asserts, as it is quite painful for new Linux server developers to try to use Swift/LLDB as it basically can't be used in the current state. If rolling ones own without asserts, it works ok though - so this case is just to ask to please change the build infrastructure for releases to not have asserts - please and thank you! :-)
The text was updated successfully, but these errors were encountered: