Open eeckstein opened 5 years ago
Issue Description:
To reproduce:
utils/build-script --compiler-vendor=apple --skip-ios --skip-tvos --skip-watchos --skip-test-osx --swift-runtime-enable-leak-checker --build-subdir=buildbot_incremental_leaks_RA_R --release --assertions --swift-stdlib-enable-assertions=false
build/buildbot_incremental_leaks_RA_R/swift-macosx-x86_64$ ./bin/Benchmark_RuntimeLeaksRunner
It reports some FAILs.
To run a single benchmark individually (select one of the fails), for example:
build/buildbot_incremental_leaks_RA_R/swift-macosx-x86_64$ ./bin/Benchmark_Onone --num-samples=2 435
It outputs a json with the number of leaked objects: swift_count and objc_count. The numbers must be 0 or equivalent in the last 2 runs. For example, this is a good output:
{"name":"JSONPerfDecode", "swift_count": 0, "objc_count": 4, "swift_objects": [], "objc_objects": ["NSPlaceholderArray","NSPlaceholderDictionary","NSPlaceholderString","NSPlaceholderNumber"]} {"name":"JSONPerfDecode", "swift_count": 0, "objc_count": 4, "swift_objects": [], "objc_objects": ["NSPlaceholderArray","NSPlaceholderDictionary","NSPlaceholderString","NSPlaceholderNumber"]} {"name":"JSONPerfDecode", "swift_count": 0, "objc_count": 4, "swift_objects": [], "objc_objects": ["NSPlaceholderArray","NSPlaceholderDictionary","NSPlaceholderString","NSPlaceholderNumber"]} 435,JSONPerfDecode,2,302,306,304,3,302
A bad output lists all the leaked objects (can be very long).
This leak was triggered by enabling the existential specializer: https://github.com/apple/swift/pull/19820
Reverting in https://github.com/apple/swift/pull/24646
PR https://github.com/apple/swift/pull/25038
Additional Detail from JIRA
| | | |------------------|-----------------| |Votes | 0 | |Component/s | Compiler | |Labels | Bug | |Assignee | @atrick | |Priority | Medium | md5: 30c18f8f73d5ed5581bb3f22a1b75165Issue Description:
To reproduce:
utils/build-script --compiler-vendor=apple --skip-ios --skip-tvos --skip-watchos --skip-test-osx --swift-runtime-enable-leak-checker --build-subdir=buildbot_incremental_leaks_RA_R --release --assertions --swift-stdlib-enable-assertions=false
build/buildbot_incremental_leaks_RA_R/swift-macosx-x86_64$ ./bin/Benchmark_RuntimeLeaksRunner
It reports some FAILs.
To run a single benchmark individually (select one of the fails), for example:
build/buildbot_incremental_leaks_RA_R/swift-macosx-x86_64$ ./bin/Benchmark_Onone --num-samples=2 435
It outputs a json with the number of leaked objects: swift_count and objc_count. The numbers must be 0 or equivalent in the last 2 runs. For example, this is a good output:
,TEST,SAMPLES,MIN(μs),MAX(μs),MEAN(μs),SD(μs),MEDIAN(μs)
{"name":"JSONPerfDecode", "swift_count": 0, "objc_count": 4, "swift_objects": [], "objc_objects": ["NSPlaceholderArray","NSPlaceholderDictionary","NSPlaceholderString","NSPlaceholderNumber"]} {"name":"JSONPerfDecode", "swift_count": 0, "objc_count": 4, "swift_objects": [], "objc_objects": ["NSPlaceholderArray","NSPlaceholderDictionary","NSPlaceholderString","NSPlaceholderNumber"]} {"name":"JSONPerfDecode", "swift_count": 0, "objc_count": 4, "swift_objects": [], "objc_objects": ["NSPlaceholderArray","NSPlaceholderDictionary","NSPlaceholderString","NSPlaceholderNumber"]} 435,JSONPerfDecode,2,302,306,304,3,302
A bad output lists all the leaked objects (can be very long).
This leak was triggered by enabling the existential specializer: https://github.com/apple/swift/pull/19820