FTP 客户端
以下情况程序有可能会挂掉(仅仅只是有可能):
1. 服务器关闭
2.大量数据猛的灌入
以下情况程序没有问题,不会挂掉:
1.服务器开启,可以正常进行数据传输时
2.并行传输任务较少
3.数据灌入速度较慢
程序crush特征:access violation at ox0000002 ;且出现完全随机
场景1:
FTP客户端开启,服务器关闭,以 平均50任务每秒的速度加入任务,从第一天下午5:30到第2天下午2:00,程序无任何异常;CPU, MEMORY正常;
场景2:
测试环境同上,服务器关闭,启动时加入500任务,依次加入,执行至300左右时,crush。前后不足10s。
场景3:
同上,程序灌入任务,每10ms加入一个单个任务,累计至1000任务左右时 crush.
场景4:
同上,手工灌入文件,每次500个,累计灌入1万文件,程序OK
重点:随机
难点:无法定位错误的来源
调试过程中的经验:刚开始,有部分 共享数据没有加锁访问,程序crush的几率非常大; 后来所有共享数据访问,全部加锁,程序crush几率大大降低,但仍然会挂掉;也带来一个不好的后果,加入界面用户操作后,易死锁,且随机。
猜测错误根源:多线程的互操作,当某部分数据区已经消亡后,而其他线程继续访问时,便会出现如上的 access violation ;
现在的设计方案是:
MainThread 为界面线程,且 为每一个文件传输任务 创建 一个 WorkThread;WorkThread是一系列的;
MainThread 维护一个数据队列,保存每个文件传输线程 ,也就是WorkThread的句柄;
WorkThread中实时更新 MainThread显示数据;
WorkThread中实时更新数据队列信息;
MainThread 随时访问 WorkThread 数据;
MainThread控制WorkThread的创建,但WorkThread的loop完后自动销毁;
线程间相互操作非常的繁杂;
下一步的工作是:重写这个模块
修改设计如下:
WorkThread 绝不主动 Callback MainThread 中的函数;
MainThread poll WorkThread ,然后实时更新界面数据;
MainThread 主动 join every WorkThread,并控制 WorkThread 的 create & destroy
明天就去尝试。
一定要搞定这个问题!!!!
分享到:
相关推荐
### 与单片机Bug战斗的那些经历 #### 核心知识点提炼: 1. **调试技巧**:通过在关键位置加入串口发送指令来监控程序运行状态。 2. **程序可读性提升**:增强代码的注释及合理命名变量和函数。 3. **调试流程**:...
bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree
6. **报表与统计**:BugFree提供了丰富的报表功能,可以生成bug的数量统计、解决速度、各阶段分布等图表,帮助管理层了解项目健康状况,优化工作流程。 7. **版本控制**:与版本控制系统(如Git)集成,可以关联...
5. **集成能力**:虽然BugFree本身是独立的工具,但可以通过API与其他软件开发工具(如版本控制系统、持续集成服务器)进行集成,实现数据同步,提高工作效率。 6. **用户界面**:其用户界面设计简洁直观,使得无论...
"软件公司Bug管理系统的设计与实现"这一主题旨在通过毕业设计的方式,让学生深入理解并实践如何构建一个有效的Bug跟踪和管理系统。下面将详细解析这个系统的设计与实现过程,以及涉及的相关技术。 首先,该系统采用...
版本验收与放行标准在软件测试中的应用 版本验收与放行标准是软件测试中的一种重要标准,旨在确保软件的质量和可靠性。本标准对软件测试中的BUG等级进行了明确的规定和分析,并结合软件放行的评价标准。 一、版本...
微软的TFS(Team Foundation Server)提供了强大的Bug管理功能,与Visual Studio(VS)深度集成,同时支持Java和iOS版本的插件,使得开发人员能更高效地处理Bug。本教程将详细介绍如何使用TFS进行Bug生命周期的管理...
测试思考之bug缺陷趋势曲线图.上周参加了关于测试的培训,虽然没有想象中的那么大的帮助,感触还是有的,现对于某几个相关的问题写了一些个人的想法,这次说的是关于bug曲线图的问题, 上周参加了关于测试的培训,...
### 一、软件测试与bug统计 软件测试旨在验证软件的功能、性能、安全性等是否符合预期需求,及时发现并修复缺陷(通常称为bug)。在这个过程中,bug统计分析图表成为了一种有效的数据可视化手段,帮助测试团队和...
为了实现这样的提醒功能,开发人员可能需要集成桌面通知服务,并且确保与BugFree的API接口良好对接。同时,系统还需要考虑多用户环境下的权限管理,确保只有被指派的用户才能收到相关的bug提醒,以保护数据的安全性...
Bug 报告模板 在软件测试和质量保证过程中,_bug 报告模板是一种非常重要的文档工具。它用于记录和追踪软件中的缺陷和错误,以便在后续的开发和测试中进行修复和优化。本文将对 Bug 报告模板的主要组成部分进行详细...
《Bugfree中的Bug导出与导入功能详解》 在软件开发过程中,Bug管理是一项至关重要的任务,它确保了代码质量的提升和项目进度的顺利进行。Bugfree是一款优秀的开源缺陷跟踪系统,它提供了便捷的Bug管理功能,包括Bug...
"软件测试常见Bug大全"这个文档集合了测试人员在实际工作中可能会遇到的各种问题,为他们提供了一个全面的学习和参考资源。这里我们将深入探讨软件测试的重要性和常见的Bug类型。 首先,软件测试是为了发现并修复...
与Bug1相比,Bug2算法更倾向于贪婪地选择第一个看似最优的离开点,这可能导致在复杂环境中效率降低。 【Bug1与Bug2比较】 Bug1算法进行详尽搜索以找到最佳路径,而Bug2则采取贪心策略,可能在简单环境中快速达到...
《中文版Bug系统下载与Bug反馈系统的深度解析》 在软件开发过程中,Bug管理是至关重要的环节。一个高效、易用的Bug系统可以帮助团队更好地跟踪和解决开发过程中的问题,提高产品质量,缩短产品迭代周期。本文将围绕...
本资源摘要信息主要介绍了 bug 的定义、返工率计算统计方法以及与之相关的质量提高方案。 首先,文档对 bug 的定义进行了详细的描述。bug 定义是指在软件开发过程中出现的错误或缺陷,包括高级类、 中级类和低级类...
BugFree是一个开源的缺陷跟踪系统,它允许项目团队对软件开发中的错误(bug)进行记录、跟踪和管理。BugFree3.0.4是BugFree的一个版本,导出BUG的操作步骤通常涉及到以下知识点: 1. BugFree系统环境配置:BugFree...
供测试使用,反馈bug模板,参考Bug解决描述Bug关闭描述(bug关闭之后由测试人员填写