分析案例:界面提示“基础链接已经关闭:接收时发生错误”----本质为StackOverflow
问题描述:
一个业务复杂、执行时间很长的功能,经常报出“基础链接已经关闭:接收时发生错误”,很是蹊跷。。。


问题分析:
首先,查阅应用服务器的系统日志,发现问题发生时总是会伴随着w3wp进程崩溃的错误,很有问题呀。。。

错误存储段 ,类型 0
事件名称: APPCRASH
响应: 不可用
Cab Id: 0 问题签名:
P1: w3wp.exe
P2: 7.5.7601.17514
P3: 4ce7afa2
P4: oracommon11.dll
P5: 11.2.0.3
P6: 4eb215cc
P7: c00000fd
P8: 00000000001714b3
P9:
P10: 附加文件: 可在此处获取这些文件:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_7d10d2c9218567c5ec5b216598b20a1b57c250_54fec352 分析符号:
重新检查解决方案: 0
报告 Id: 48b4afbc-6dcf-11e6-b732-f4e9d489a2e0
报告状态: 4
哈希存储段: %22
找到一个自动收集了dump的日志,打开查看错误信息,噢噢。。。。
0:351> !pe -nested
Exception object: 000000073fdb1158
Exception type: System.StackOverflowException
Message: <none>
InnerException: <none>
StackTrace (generated):
<none>
StackTraceString: <none>
HResult: 800703e9 Nested exception -------------------------------------------------------------
Exception object: 00000008c0a98f50
Exception type: System.Data.OracleClient.OracleException
Message: ORA-
00001
: 违反唯一约束条件 (LCXXXXX.PK_XXXXXXX) InnerException: <none>
StackTrace (generated):
SP IP Function
000000004E4AB990 000007FEF43B0458 System_Data_ni!System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(System.Data.Common.RowUpdatedEventArgs, BatchCommandInfo[], Int32)+0x19a0e8
000000004E4ABA10 000007FEF4216295 System_Data_ni!System.Data.Common.DbDataAdapter.UpdatedRowStatus(System.Data.Common.RowUpdatedEventArgs, BatchCommandInfo[], Int32)+0x35
000000004E4ABA40 000007FEF421550A System_Data_ni!System.Data.Common.DbDataAdapter.Update(System.Data.DataRow[], System.Data.Common.DataTableMapping)+0x92a
000000004E4ABB20 000007FEF4215ED9 System_Data_ni!System.Data.Common.DbDataAdapter.UpdateFromDataTable(System.Data.DataTable, System.Data.Common.DataTableMapping)+0x39
000000004E4ABB60 000007FEF4214AB5 System_Data_ni!System.Data.Common.DbDataAdapter.Update(System.Data.DataSet, System.String)+0xc5
000000004E4ABBE0 000007FE9AD15365 UNKNOWN!xxxxx.Platform.Core.DataAccess.Oracle.OracleDatabase.DataBatchImportPart(System.Data.DataTable, System.String)+0x225
000000004E4ABC80 000007FE9AD15093 UNKNOWN!xxxxx.Platform.Core.DataAccess.Database.DataBatchImport(System.Data.DataTable, System.String)+0xe3
000000004E4ABCE0 000007FE9D2D339A UNKNOWN!xxxxx.Platform.AppFramework.CCMCore.XXXBatchLockDAC.AddBatchLock(System.Collections.Generic.List`1<xxxxx.Platform.AppFramework.CcmSPI.XXXLockData>, System.String ByRef, Boolean, System.String ByRef)+0x29a
000000004E4ABDB0 000007FE9D2D304A UNKNOWN!xxxxx.Drp.Biz.Com.DataLockMgr.AddBatchLock(System.Collections.Generic.List`1<xxxxx.Platform.AppFramework.CcmSPI.XXXLockData>, System.String ByRef, System.String ByRef)+0x9a
000000004E4ABE00 000007FE9D2D2D75 UNKNOWN!xxxxx.Drp.Biz.Com.DataLockMgr.AddBatchLock(System.Collections.Generic.List`1<xxxxx.Platform.AppFramework.CcmSPI.XXXLockData>, System.String, System.String ByRef)+0x45
反编译现场的对应的DLL发现貌似存在递归调用???



对应的删除SQL
delete from SYLOCK_APBill where SYLOCK_OWNERID = '0ae7c1e5-fc23-4ea7-ad34-9ca03fd2ea02' and SYLOCK_FUNCID = ''
原来,最初反馈问题的功能执行时间太长,在此期间因为别的功能报出栈溢出错误,进而造成进程崩溃,所以才会出现最初看到的疑似网络问题的错误!
问题结论:
至此问题定位:未完全覆盖所有条件场景,造成应用系统递归死循环!直至栈溢出!
解决问题的方法很简单:数据库库对应字段设置为非空,或应用系统代码中增加兼容性处理,增强系统自身的健壮性。
分析案例:界面提示“基础链接已经关闭:接收时发生错误”----本质为StackOverflow的更多相关文章
- C#使用HttpWebRequest 进行请求,提示 基础连接已经关闭: 发送时发生错误。
本人今天遇到的错误,C#使用HttpWebRequest 进行请求,提示 基础连接已经关闭: 发送时发生错误. 测试了很久,才发现,是安全协议问题,把安全协议加上就可以了
- 请求被中止: 未能创建 SSL/TLS 安全通道,设置 TLSv1.2和TLSv1.1版本 .基础链接已经关闭,发送时发生错误
WSO2 API访问的安全要求, 只能提供TLSv1.2和TLSv1.1版本,其它SSL版本协议因为存在较高安全漏洞问题会被disable. A 改成TLSv1.1或TLSv1.2,最好使用TLSv1 ...
- HttpWebRequest 基础连接已经关闭: 接收时发生错误
HttpWebRequest request = null; Stream webStream = null; HttpWebResponse response = null; StreamReade ...
- FTP上传文件时 System.Net.WebException: 基础连接已经关闭: 接收时发生错误。
在c#中使用HttpWebRequest时,频繁请求一个网址时,过段时间就会出现“基础连接已经关闭: 接收时发生意外错误”的错误提示.将webRequest的属性设置成下面的,经测试可以解决.Syst ...
- HttpWebRequest 基础连接已经关闭: 接收时发生错误 GetRequestStream 因为算法不同,客户端和服务器无法通信。
在代码行 HttpWebRequest objRequest = (HttpWebRequest)HttpWebRequest.Create(sUrl 前面加上 ServicePointManager ...
- .NET HttpWebRequest(请求被中止: 未能创建 SSL/TLS 安全通道)和(基础连接已经关闭: 发送时发生错误)问题查找解决
前言: 前段时间在对接第三方接口的时候发生了一个非常奇葩的问题,就是使用 .NET Framework 4.6 HttpWebRequest进行网络请求的相关问题.背景,关于调用第三方的接口都是使用使 ...
- 【已解决】Https请求——基础连接已经关闭 发送时发生错误
本人在做商用项目的推送消息功能时,借助第三方推送服务.这里避免有打广告的嫌疑,就不报名字了.由于是通过调用API接口,所以Post方法是自己写的,但是在开发环境是可以正常推送的,但是一上线就出各种问题 ...
- C# HttpRequest基础连接已经关闭: 接收时发生意外错误
在c#中使用HttpWebRequest时,频繁请求一个网址时,过段时间就会出现“基础连接已经关闭: 接收时发生意外错误”的错误提示. 将webRequest的属性设置成下面的,经测试可以解决. we ...
- C# 基础连接已经关闭: 发送时发生错误
在程序中获取某个https网址的源码,GetRespose()时 出现了“基础连接已经关闭: 发送时发生错误.”的错误提示. 翻了论坛后,有个仁兄说: //.net 4 ...
随机推荐
- 对象序列化到本地文件 ObjectOutputstream ObjcetInputstream
package com.main.test; import java.io.FileInputStream; import java.io.FileNotFoundException; import ...
- 【Java讨论】引用类型赋值为null对加速垃圾回收的作用(转载)
:有一些人认为等于null可以帮助垃圾回收机制早点发现并标识对象是垃圾.其他人则认为这没有任何帮助.是否赋值为null的问题首先在方法的内部被人提起.现在,为了更好的阐述提出的问题,我们来撰写一个Wi ...
- ArcMap常用VBA
--点坐标X VBA部分: Dim pGeo As IGeometry Set pGeo = [Shape] Dim pPoint As IPoint Set pPoint = pGeo 赋值部分: ...
- TableView遇到的问题
1.所建立的TableView滑动不到底部的问题: tableView继承scrollerView,当tableview开始建立的时候,会先计算每个cell的高度和每个headerview的高度.fo ...
- What is the difference between the ways to implement inheritance in javascript.
see also : http://www.w3school.com.cn/js/pro_js_inheritance_implementing.asp http://davidshariff.com ...
- 【Python】将4*4数组旋转90度新数组
需求:将一个4*4的数组90度旋转生成新的4*4数组 原来的4*4数组:[0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3]90度旋转后的4*4数组:[0, ...
- Android Studio项目目录结构介绍——android菜鸟成长之路
在Android Studio中,提供了以下几种项目结构类型 我们一般常用的有以下两种结构: Project 结构类型 app/build/ app模块build编译输出的目录 app/build.g ...
- LinuxMint17.1 Rebecca中安装设置输入法
LinuxMint14使用了几年一直未更新,突然想去更新一下去发现源已经不支持了,所以就直接安装了最新版本. 安装好以后发现还是跟以前一样的毛病,没有中文输入法,直接sudo aptitude ins ...
- 分布式blog系统 TFS总结
解决的问题 文件总量太大 一台服务器无法存放 只能放在网络集群中分节点存放 也就是通过屏蔽网络部分 形成一个“ one big CPU” 和 “one big disk” .Client只需要向 ...
- 折腾域名的dns
最近,购买域名的时候遇到了几个概念,刚开始不是很懂,最后都是直接找客服给我改好的,现在小结一下帮助理解. DNS域名管理是按后缀进行分组的,比如.com域名,作为最早的商用域名,有很高的推广价值.再比 ...