`
kofsky
  • 浏览: 201747 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

与Bug战斗的日子

阅读更多
    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战斗的那些经历

    ### 与单片机Bug战斗的那些经历 #### 核心知识点提炼: 1. **调试技巧**:通过在关键位置加入串口发送指令来监控程序运行状态。 2. **程序可读性提升**:增强代码的注释及合理命名变量和函数。 3. **调试流程**:...

    bugfree bugfree bugfree bugfree bugfree

    bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree bugfree

    bugfree,bug管理

    6. **报表与统计**:BugFree提供了丰富的报表功能,可以生成bug的数量统计、解决速度、各阶段分布等图表,帮助管理层了解项目健康状况,优化工作流程。 7. **版本控制**:与版本控制系统(如Git)集成,可以关联...

    bugfree2.0软件测试bug管理工具

    5. **集成能力**:虽然BugFree本身是独立的工具,但可以通过API与其他软件开发工具(如版本控制系统、持续集成服务器)进行集成,实现数据同步,提高工作效率。 6. **用户界面**:其用户界面设计简洁直观,使得无论...

    软件公司Bug管理系统的设计与实现

    "软件公司Bug管理系统的设计与实现"这一主题旨在通过毕业设计的方式,让学生深入理解并实践如何构建一个有效的Bug跟踪和管理系统。下面将详细解析这个系统的设计与实现过程,以及涉及的相关技术。 首先,该系统采用...

    版本验收与放行标准,主要明确了软件测试中对BUG等级的制定与分析

    版本验收与放行标准在软件测试中的应用 版本验收与放行标准是软件测试中的一种重要标准,旨在确保软件的质量和可靠性。本标准对软件测试中的BUG等级进行了明确的规定和分析,并结合软件放行的评价标准。 一、版本...

    TFS Bug管理使用教程

    微软的TFS(Team Foundation Server)提供了强大的Bug管理功能,与Visual Studio(VS)深度集成,同时支持Java和iOS版本的插件,使得开发人员能更高效地处理Bug。本教程将详细介绍如何使用TFS进行Bug生命周期的管理...

    测试思考之bug缺陷趋势曲线图

    测试思考之bug缺陷趋势曲线图.上周参加了关于测试的培训,虽然没有想象中的那么大的帮助,感触还是有的,现对于某几个相关的问题写了一些个人的想法,这次说的是关于bug曲线图的问题,  上周参加了关于测试的培训,...

    软件测试bug统计分析图表

    ### 一、软件测试与bug统计 软件测试旨在验证软件的功能、性能、安全性等是否符合预期需求,及时发现并修复缺陷(通常称为bug)。在这个过程中,bug统计分析图表成为了一种有效的数据可视化手段,帮助测试团队和...

    BugFree提醒工具(即时提醒指派给自己的bug)

    为了实现这样的提醒功能,开发人员可能需要集成桌面通知服务,并且确保与BugFree的API接口良好对接。同时,系统还需要考虑多用户环境下的权限管理,确保只有被指派的用户才能收到相关的bug提醒,以保护数据的安全性...

    Bug报告模板.docx

    Bug 报告模板 在软件测试和质量保证过程中,_bug 报告模板是一种非常重要的文档工具。它用于记录和追踪软件中的缺陷和错误,以便在后续的开发和测试中进行修复和优化。本文将对 Bug 报告模板的主要组成部分进行详细...

    bugfree中的bug导出、导入功能

    《Bugfree中的Bug导出与导入功能详解》 在软件开发过程中,Bug管理是一项至关重要的任务,它确保了代码质量的提升和项目进度的顺利进行。Bugfree是一款优秀的开源缺陷跟踪系统,它提供了便捷的Bug管理功能,包括Bug...

    软件测试与常见Bug大全

    "软件测试常见Bug大全"这个文档集合了测试人员在实际工作中可能会遇到的各种问题,为他们提供了一个全面的学习和参考资源。这里我们将深入探讨软件测试的重要性和常见的Bug类型。 首先,软件测试是为了发现并修复...

    第2章 Bug Algorithms1

    与Bug1相比,Bug2算法更倾向于贪婪地选择第一个看似最优的离开点,这可能导致在复杂环境中效率降低。 【Bug1与Bug2比较】 Bug1算法进行详尽搜索以找到最佳路径,而Bug2则采取贪心策略,可能在简单环境中快速达到...

    中文版bug系统下载 bug反馈系统

    《中文版Bug系统下载与Bug反馈系统的深度解析》 在软件开发过程中,Bug管理是至关重要的环节。一个高效、易用的Bug系统可以帮助团队更好地跟踪和解决开发过程中的问题,提高产品质量,缩短产品迭代周期。本文将围绕...

    bug定义和返工率计算统计方法

    本资源摘要信息主要介绍了 bug 的定义、返工率计算统计方法以及与之相关的质量提高方案。 首先,文档对 bug 的定义进行了详细的描述。bug 定义是指在软件开发过程中出现的错误或缺陷,包括高级类、 中级类和低级类...

    BugFree3.0.4导出BUG操作步骤

    BugFree是一个开源的缺陷跟踪系统,它允许项目团队对软件开发中的错误(bug)进行记录、跟踪和管理。BugFree3.0.4是BugFree的一个版本,导出BUG的操作步骤通常涉及到以下知识点: 1. BugFree系统环境配置:BugFree...

    bug反馈表模板

    供测试使用,反馈bug模板,参考Bug解决描述Bug关闭描述(bug关闭之后由测试人员填写

Global site tag (gtag.js) - Google Analytics