- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试连接互联网以测试应用程序中的网络,如果网络已连接或没有连接,一切顺利。但是有一个特殊的情况,当手机连上了wifi,但是wifi需要登录(就是说连上了wifi会跳转到登录页面),如果我不登录,事情就很奇怪了:
应用程序检测到 wifi,但它记录(通过网络 SDK):更新在线配置失败 Error Domain=AVNetworkingErrorDomain Code=60 “无法使用给定的 CA 证书对对等证书进行身份验证”
我理解这种情况,因为我没有登录。但是,NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)
会出现无限错误,每个错误可能需要 5 秒。
并且会有 99% 的 CPU 使用率。当我使用仪器查看细节时,我发现有一个线程名为_pthread_wqthread
creates infinite thread
一段时间后,应用程序崩溃了。
这是设备的运行日志:
Nov 28 02:49:19 XXXXXXX-iPhone bird[145] <Error>: failed uploading 1 items (273 字节) in com.apple.TextInput: <CKError 0x144e7f650: "Partial Failure" (2/1011); "Failed to modify some records"; partial errors: {
documentContent/23EAA693-9E3F-4E21-BA02-08CF972FB90B:(com.apple.TextInput:__defaultOwner__) = <CKError 0x144e676b0: "Network Failure" (4/-1202); "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “p18-ckdatabase.icloud.com” which could put your confidential information at risk.">
}>
Nov 28 02:49:24 XXXXXXX-iPhone XXXXXXX[841] <Error>: SecTrustEvaluate [leaf SSLHostname]
Nov 28 02:49:24 XXXXXXX-iPhone XXXXXXX[841] <Warning>: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)
Nov 28 02:49:38 XXXXXXX-iPhone configd[37] <Notice>: Captive: CNPluginHandler en0: Maintaining (__BUILTIN__)
Nov 28 02:49:38 XXXXXXX-iPhone configd[37] <Notice>: Captive: en0: Not probing "the wifi's name" (disabled by user)
Nov 28 02:49:38 XXXXXXX-iPhone configd[37] <Notice>: Captive: CNPluginHandler en0: Authenticated (__BUILTIN__)
Nov 28 02:49:43 XXXXXXX-iPhone XXXXXXX[841] <Error>: SecTrustEvaluate [leaf SSLHostname]
Nov 28 02:49:43 XXXXXXX-iPhone XXXXXXX[841] <Warning>: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)
Nov 28 02:49:54 XXXXXXX-iPhone XXXXXXX[841] <Error>: SecTrustEvaluate [leaf SSLHostname]
Nov 28 02:49:54 XXXXXXX-iPhone XXXXXXX[841] <Warning>: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)
Nov 28 02:50:08 XXXXXXX-iPhone kernel[0] <Notice>: 028115.172774 wlan0.A[4856] updateLinkQualityMetrics@1991:Report LQM to User Land 100, fAverageRSSI -70
Nov 28 02:50:09 XXXXXXX-iPhone XXXXXXX[841] <Error>: SecTrustEvaluate [leaf SSLHostname]
Nov 28 02:50:09 XXXXXXX-iPhone XXXXXXX[841] <Warning>: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)
Nov 28 02:50:24 XXXXXXX-iPhone XXXXXXX[841] <Error>: SecTrustEvaluate [leaf SSLHostname]
Nov 28 02:50:24 XXXXXXX-iPhone XXXXXXX[841] <Warning>: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)
我发现 -9843 意味着
errSSLHostNameMismatch -9843 The host name you connected with does not match any of the host names allowed by the certificate. This is commonly caused by an incorrect value for the kCFStreamSSLPeerName property within the dictionary associated with the stream’s kCFStreamPropertySSLSettings key. Available in OS X v10.4 and later.
更多细节,我使用了 AFNetworking
库。也许此链接也有帮助:Crash in background NSURLSession "HTTPMessage::ensureParserFinished()"
最佳答案
这是一个(损坏的)强制门户网站情况,其中强制门户网站使用来自不同域的响应来响应 HTTPS 请求。您的代码显然在失败后立即重试,导致大量 CPU 开销。
您需要坐下来查看 NSURL 错误代码列表,并列出永久性代码——即在后续尝试中不太可能消失的错误,例如服务器上的证书错误。当您的应用发现任何这些永久性错误时,它不应立即重试请求,无论是否可达。
关于ios - 由于 NSURLSession/NSURLConnection HTTP 加载失败,无限 pthread 创建崩溃应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33963534/
我正在将一些 pthreads 代码添加到我使用 autotools 构建的 Linux 应用程序中。我收到关于未在 libpthreads 中链接的错误。所以我想在 autotools 中指定 pt
libpthread 库位于 Linux 系统的哪个目录中? 最佳答案 有多种方法可以找出这一点。 只需输入 find / -name 'libpthread.so' -print找到名为 libpt
pthread 属性对象是否需要在使用它们的对象的生命周期内存在,或者在使用它们后立即销毁它们是否安全?例如: // Create the mutex attributes. pthread_mute
到目前为止我读过的所有文档似乎都表明我的 vxWorks (6.8) 版本中存在 posix 线程支持,但是一个简单的测试应用程序无法按预期执行。来源如下: tTest.h #include cla
我试图找到指定 pthreads 标准的文档。我见过各种指向 IEEE 1003.1c-1995 的链接(即 Wikipedia 或 OpenGroup )。然而,当我在 IEEE 标准站点上搜索此文
我试图找到指定 pthreads 标准的文档。我见过各种指向 IEEE 1003.1c-1995 的链接(即 Wikipedia 或 OpenGroup )。然而,当我在 IEEE 标准站点上搜索此文
我在 MSVC 2010 上运行一个 pthread,我已经包含 pthreadVC2 .lib & .dll。来自以下网站 http://sourceware.org/pthreads-win32/
我的问题是: 如何在不更改其他 pthread 中的当前目录的情况下更改 pthread 中的当前目录,我找到了一个使用 openat() 函数的解决方案,但我没有找到任何解释它如何工作的示例。 使用
是否可以通过任何方式更改进程可以创建的 pthread 数量限制? 目前在我的 linux 系统上我可以创建大约 380 个线程,但我想增加它,只要内存可用。 最佳答案 减少用户的堆栈大小' ulim
问候。我正在尝试创建一个 autoconf 配置脚本,该脚本自动检查要使用的 pthread 选项,并且理想情况下,在使用 gcc 编译时指定 -pthread。 我希望 AX_PTHREAD 能够工
如何知道 pthread 是否死亡? 有办法检查 pthread 状态吗? 最佳答案 if(pthread_kill(the_thread, 0) == 0) { /* still runni
我正在从一个由互斥锁控制的固定大小的全局池中分配我的 pthread 线程特定数据。 (有问题的代码不允许动态分配内存;它允许使用的所有内存都由调用者作为单个缓冲区提供。pthreads 可能会分配内
在阅读了一些 MPI 规范后,我了解到,当使用 MPI_THREAD_SERIALIZED 进行初始化时,程序必须确保发生在不同线程中的 MPI_Send/Recv 调用不能重叠。换句话说,您需要一个
我尝试根据 this guide 安装 pthread win32 . 我将 pthreadVC2.dll 文件添加到 C:\Windows 并将 pthreadVC2.lib 文件添加到 C:\Pr
我有一个 pthreads 程序。我必须使用 Linux 中的 gcc -pthread(-pthreads 是无法识别的选项)和 Sun 中的 gcc -pthreads(-pthread 是无法识
我有一个包含文件名列表的文件,我想在其中搜索一个词并替换它我稍微修改了代码只是为了在这里只显示相关部分问题是如果我在该列表中只有一个文件,它不会用多线程处理它,因为线程只有在我有多个文件时才工作所以我
我正在编写一个 SMT 程序,并且正在尝试解决一个有趣的问题。 我需要所有函数一起退出,但是有些线程卡在障碍物上,即使我不希望它们这样做。 我的问题是:当我删除障碍时会发生什么?卡在屏障处的线程会释放
我阅读了有关 pthread 及其相关 API 的所有内容,以创建、锁定和同步不同的线程。但我经常发现线程池、消费者/生产者等词提示。我理解这些是 pthread 实现的模型。 任何人都可以让我知道
我在 man pthread_join 中读到,多个 pthread 不能加入一个已经加入的 pthread。还有另一种方法可以达到相同的结果吗?多个 pthread 挂起自己,直到某个特定的 pth
我知道 OpenMP 实际上只是一组编译成 pthread 的宏。有没有办法在编译的其余部分发生之前查看 pthread 代码?我正在使用 GCC 进行编译。 最佳答案 首先,OpenMP 不是一组简
我是一名优秀的程序员,十分优秀!