WSMethodInvocationInvoke fails 25% of the time (thread-safety regression)
| Originator: | bakedscrod | ||
| Number: | rdar://22636834 | Date Originated: | 9/9/2015 |
| Status: | Open | Resolved: | |
| Product: | OS X | Product Version: | OS X 10.11 Beta 8 / 15A279b |
| Classification: | Serious Bug | Reproducible: | Sometimes |
Summary:
WSMethodInvocationInvoke fails when called from multiple threads. Serialized calls succeed.
Steps to Reproduce:
1. cc WebServicesTest.m -framework Cocoa -o WebServicesTest
2. ./WebServicesTest
Expected Results:
Running the WebServicesTest executable should result in the following:
$ ./WebServicesTest
2015-09-09 19:29:45.454 WebServicesTest[56286:707] finished 100 requests; 0 failed
Actual Results:
OS X 10.11 results in the following:
XML Parse error occurred: <CFBasicHash 0x7fbf9875b5d0 [0x7fff76d2d890]>{type = mutable dict, count = 4,
entries =>
2 : <CFString 0x7fff76d08630 [0x7fff76d2d890]>{contents = "kCFXMLTreeErrorStatusCode"} = <CFNumber 0xb27 [0x7fff76d2d890]>{value = +11, type = kCFNumberSInt32Type}
3 : <CFString 0x7fff76d08610 [0x7fff76d2d890]>{contents = "kCFXMLTreeErrorLocation"} = <CFNumber 0x2927 [0x7fff76d2d890]>{value = +41, type = kCFNumberSInt32Type}
4 : <CFString 0x7fff76d085d0 [0x7fff76d2d890]>{contents = "kCFXMLTreeErrorDescription"} = <CFString 0x7fbf987e90a0 [0x7fff76d2d890]>{contents = "No element found in document"}
5 : <CFString 0x7fff76d085f0 [0x7fff76d2d890]>{contents = "kCFXMLTreeErrorLineNumber"} = <CFNumber 0x227 [0x7fff76d2d890]>{value = +2, type = kCFNumberSInt32Type}
}
2015-09-09 19:31:09.888 a.out[616:14585] result: {
"/FaultCode" = "-65794";
"/FaultExtra" = {
domain = "-1";
error = "-65795";
msg = "0\U00b1\U201cv\U02c7 (line 2, pos 41, status 11)";
};
"/FaultString" = "/CFStreamFault";
"/kWSHTTPResponseMessage" = "<CFHTTPMessageRef 0x7fbf9868cac0(0x7fbf9868cad0)> { parsed response, url = https://[WEBSERVICESURLHERE], status = 200 }";
"/kWSResultIsFault" = 1;
}
2015-09-09 19:31:09.893 a.out[616:14454] finished 100 requests; 25 failed
Version:
OS X 10.11 Beta 8 / 15A279b
Notes:
WSMethodInvocationInvoke has worked safety from multiple background threads in all previous versions of OS X for over 10 years.
Configuration:
Calling WSMethodInvocationInvoke in parallel on OS X 10.10 and earlier always succeeds. Calling WSMethodInvocationInvoke serially on OS X 10.11 always succeeds.
Calling WSMethodInvocationInvoke in parallel on OS X 10.11 fails about 25% of the time.
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!
Is this bug has been reported to Apple?