Skip to content
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-5345] Crash when using DispatchSourceUserDataReplace #686

Closed
sharplet opened this issue Jun 30, 2017 · 8 comments
Closed

[SR-5345] Crash when using DispatchSourceUserDataReplace #686

sharplet opened this issue Jun 30, 2017 · 8 comments

Comments

@sharplet
Copy link

Previous ID SR-5345
Radar rdar://problem/33090753
Original Reporter @sharplet
Type Bug
Status Closed
Resolution Cannot Reproduce
Environment

Swift version 4.0-DEVELOPMENT-SNAPSHOT-2017-06-25-a

Additional Detail from JIRA
Votes 0
Component/s libdispatch
Labels Bug
Assignee None
Priority Medium

md5: e86c2c118d43675b6635116bcd10e0de

Issue Description:

The following code crashes under the latest Swift 4 snapshot:

import Dispatch

let source = DispatchSource.makeUserDataReplaceSource()

source.setEventHandler {
  print("here")
  exit(0)
}

source.resume()
source.replace(data: 1)
dispatchMain()

Crash info:

% lldb .build/debug/dispatch-source-replace
(lldb) target create ".build/debug/dispatch-source-replace"
Current executable set to '.build/debug/dispatch-source-replace' (x86_64).
(lldb) run
Process 52717 launched: '/Users/adsharp/src/sharplet/dispatch-source-replace/.build/debug/dispatch-source-replace' (x86_64)
Process 52717 stopped
* thread #​1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #​0: 0x00000001003ccd11 libswiftCore.dylib`swift::_swift_getClass(void const*) + 33
libswiftCore.dylib`swift::_swift_getClass:
->  0x1003ccd11 <+33>: andq   (%rdi), %rax
    0x1003ccd14 <+36>: retq
    0x1003ccd15 <+37>: nopw   %cs:(%rax,%rax)

libswiftCore.dylib`swift::convertStringToNSString:
    0x1003ccd20 <+0>:  pushq  %rbp
Target 0: (dispatch-source-replace) stopped.
@belkadan
Copy link

belkadan commented Jul 1, 2017

@swift-ci create

@gparker42
Copy link
Mannequin

gparker42 mannequin commented Sep 13, 2017

Can't reproduce with near-TOT swift nor with a recent Xcode 9 build.

Adam, are you still having trouble here? If so, please attach:

  • the swiftc command you use to build

  • an executable that was built using that command

  • a crash log that was generated by running that executable

@sharplet
Copy link
Author

I can still reproduce it with this commit: sharplet/dispatch-source-replace-crash@0c66b74

Tested on Xcode 9 GM, with swift version:

% swift --version
Apple Swift version 4.0 (swiftlang-900.0.65 clang-900.0.37)
Target: x86_64-apple-macosx10.9

Output of swift build --verbose:

% swift build --verbose
xcrun --sdk macosx --show-sdk-path
xcrun --sdk macosx --show-sdk-platform-path
xcrun --find clang
getconf DARWIN_USER_TEMP_DIR
getconf DARWIN_USER_CACHE_DIR
sandbox-exec -p '(version 1)
(deny default)
(import "system.sb")
(allow file-read*)
(allow process*)
(allow sysctl*)
(allow file-write*
    (regex #"^/private/var/tmp/org\.llvm\.clang.*")
    (regex #"^/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/org\.llvm\.clang.*")
    (regex #"^/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/org\.llvm\.clang.*")
    (regex #"^/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/C/org\.llvm\.clang.*")
)
' /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc --driver-mode=swift -L /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/3 -lPackageDescription -swift-version 3 -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/3 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk /Users/adsharp/src/sharplet/dispatch-source-replace-crash/Package.swift -fileno 5
sandbox-exec -p '(version 1)
(deny default)
(import "system.sb")
(allow file-read*)
(allow process*)
(allow sysctl*)
(allow file-write*
    (regex #"^/private/var/tmp/org\.llvm\.clang.*")
    (regex #"^/private/var/tmp/ar.*")
    (regex #"^/private/var/tmp/xcrun.*")
    (regex #"^/private/var/tmp/.*\.(swift|c)-[0-9a-f]+\.autolink")
    (regex #"^/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/org\.llvm\.clang.*")
    (regex #"^/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/ar.*")
    (regex #"^/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/xcrun.*")
    (regex #"^/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/.*\.(swift|c)-[0-9a-f]+\.autolink")
    (regex #"^/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/org\.llvm\.clang.*")
    (regex #"^/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/ar.*")
    (regex #"^/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/xcrun.*")
    (regex #"^/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/.*\.(swift|c)-[0-9a-f]+\.autolink")
    (regex #"^/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/C/org\.llvm\.clang.*")
    (regex #"^/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/C/ar.*")
    (regex #"^/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/C/xcrun.*")
    (regex #"^/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/C/.*\.(swift|c)-[0-9a-f]+\.autolink")
    (subpath "/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/swiftpm")
    (subpath "/Users/adsharp/src/sharplet/dispatch-source-replace-crash/.build")
    (subpath "/private/var/folders/nl/09nb5jwj5934y_z1cl7wbxg00000gn/T/org.swift.swiftpm.tests-3")
)
' /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-build-tool -f /Users/adsharp/src/sharplet/dispatch-source-replace-crash/.build/debug.yaml main -v
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -module-name dispatch_source_replace -incremental -emit-dependencies -emit-module -emit-module-path /Users/adsharp/src/sharplet/dispatch-source-replace-crash/.build/x86_64-apple-macosx10.10/debug/dispatch_source_replace.swiftmodule -output-file-map /Users/adsharp/src/sharplet/dispatch-source-replace-crash/.build/x86_64-apple-macosx10.10/debug/dispatch_source_replace.build/output-file-map.json -num-threads 8 -c /Users/adsharp/src/sharplet/dispatch-source-replace-crash/Sources/main.swift -I /Users/adsharp/src/sharplet/dispatch-source-replace-crash/.build/x86_64-apple-macosx10.10/debug -swift-version 4 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -F /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -Onone -g -enable-testing -j8 -DSWIFT_PACKAGE -module-cache-path /Users/adsharp/src/sharplet/dispatch-source-replace-crash/.build/x86_64-apple-macosx10.10/debug/ModuleCache
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -target 'x86_64-apple-macosx10.10' -sdk '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk' -F /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -g -L '/Users/adsharp/src/sharplet/dispatch-source-replace-crash/.build/x86_64-apple-macosx10.10/debug' -o '/Users/adsharp/src/sharplet/dispatch-source-replace-crash/.build/x86_64-apple-macosx10.10/debug/dispatch-source-replace' -module-name dispatch-source-replace -emit-executable '/Users/adsharp/src/sharplet/dispatch-source-replace-crash/.build/x86_64-apple-macosx10.10/debug/dispatch_source_replace.build/main.swift.o'

@gparker42
Copy link
Mannequin

gparker42 mannequin commented Sep 13, 2017

Thanks, I'll take another look. Which OS version are you running?

@sharplet
Copy link
Author

I'm on the latest version of Sierra.

@gparker42
Copy link
Mannequin

gparker42 mannequin commented Sep 14, 2017

Still can't reproduce. My versions aren't identical to those versions. It'll take a couple of hours to update everything.

Adam, can you attach (1) a built executable, and (2) a crash log generated by running that executable?

@bob-wilson
Copy link

I just tried to reproduce this with Xcode 10.0b3 (Swift 4.2). I checked out the specified commit from Adam's git repo and it builds and runs without errors.

Adam, can you try a recent version of Swift and confirm that you're not hitting this anymore?

@sharplet
Copy link
Author

Can confirm this runs for me on 10.0b3!

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
@shahmishal shahmishal transferred this issue from apple/swift May 5, 2022
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants