bug 记录

bug清单表格 1、springboot上传文件,报流关闭错误 现象 : springboot上传文件,报流关闭错误 原因 : 项目中增加了全局的GlobalWebAppConfig,其中的配置导致流关闭失效 解决方式 : 移除@EnableWebMvc注解 过程总结 : 本地复现 定位问题点 (移除pom),注释依赖 确定问题点确实是新增配置 网上搜索解决方式 记录时间 : 2021-08-21 2、某些sql会在limit后追加一个limit,导致查询sql报错 现象 : 某些sql会在limit后追加一个limit,导致查询sql报错 原因 : PageHelper 非安全调用方式,项目中使用方式为PageHelper.startPage,此种方式背后实现原理为: ThreadLocal设置线程局部变量,tomcat线程次会缓存请求,可能导致threadlocal中的线程变量被其他线程访问到 解决方式 : springmvc层增加全局的拦截器, 然后手动移除一下pageHelper的变量 过程总结 : 定位问题 网上搜索确实发现limit可能会是pagehelper导致 再次定位threadlocal设置变量,设置tomcat工作线程设置为1个 本地手写分页复现场景,分页参数设置,未查询数据库,手动触发报错 增加全局分页拦截器解决 记录时间 : 2021-08-21 3、请求接口,返回90044错误 现象 : 请求接口,返回90044错误 原因 : 2.0网关配置中,只建立了bi的服务,在角色那一栏并未配置bi相关的服务 解决方式 : 2.0网关配置erp-api的相关权限 1、定位问题9004 2、查询9004为请求接口超出授权范围 3、访问灰度复现出改问题 过程总结 : 定位问题9004 查询9004为请求接口超出授权范围 访问灰度复现出改问题 找运维老师确认2.0网关的配置问题 确认配置问题、增加配置 记录时间 : 2021-08-23 4、小程序获取手机号授权,并未生成响应的学员记录 现象 : 小程序获取手机号授权,并未生成响应的学员记录 原因 : 营销服务调用crm服务,crm服务新增授权类型客户的时候没有写入电话字段 解决方式 : 入口出增加电话字段 过程总结 : httplog寻找入参数, ```sql select * from alc-http-log.http_log where system = 'marketing-center' and url = '/recruitMini/mobile' and request_time >= '20201-08-23 18:40:00' 入参拿着本地调试 定位问题为crm写入处 crm处写入值 记录时间 : 2021-08-25 5、crm服务导入数据、特定的获客渠道(异界交换)才能够导入 现象 : crm服务导入数据、特定的获客渠道(异界交换)才能够导入 原因 : crm调用基础字典服务获取获取渠道字典只能获取parentId不为空的获取渠道、 实际的数据有很多条 解决方式 : 获取字典处调整为获取所有的获客渠道, crm也调用获取所有的获客渠道 过程总结 : 下载导入模版 启动对应环境参数的项目、复现问题 定位问题为获取字典处,未获取到完全的获客渠道 记录时间 : 2021-08-25 6、支付成功后,在crm的h5页面填入分单的数据、结果分单后的比例并没有按对应比例保存 现象 : 支付成功后,在crm的h5页面填入分单的数据、结果分单后的比例并没有按对应比例保存 原因 : 历史设计如此、在填写分单业绩处逻辑为判断是否有无生成业绩, 若是业绩未生成,其对应填写的比例也不会保存 解决方式 : 无 过程总结 : 本地启动程序 复现该问题 读历史的代码,发现历史代码也是要生成业绩后才会记录分单的比例 记录时间 : 2021-08-25 7、有一个定时然后推送消息的功能,同时推送短信和微信模版消息。 现象 : 有一个定时然后推送消息的功能,同时推送短信和微信模版消息。 执行定时后,短信推送了,但是模版消息并未推送。 原因 : 服务调用链路为:教务服务 -》营销服务 -》推送消息服务 其中营销服务调用推送消息服务的请求地址被改成空了,然后调用服务出问题。 解决方式 : 还原为正确的调用地址 过程总结 : 定位问题 查看推送服务的日志 查看推送服务的http日志 查看营销调用推送服务的代码 把调用地址修改为正确的地址 记录时间 : 2021-08-25 8、订单支付成功,生成了3条相同的费用明细,同时生成了三个正式学员, 有预警邮件提醒 现象 : 订单支付成功,生成了3条相同的费用明细,同时生成了三个正式学员, 有预警邮件提醒 原因 : 支付回调后置处理策略未添加事物注解,导致部分流程成功,部分流程失败 解决方式 : 回调后置策略增加事物注解 过程总结 : 观察现象,确定费用明细生成,同时排查到正式学员生成多条,初步定位回调后置处理策略未在同一个事物里面 定位问题,确认代码中为增加事物注解 后置处理策略增加事物注解,解决改问题 扩展点 : 事物注解是如何生效的?同时默认回滚策略是RuntimeExcetipn类 记录时间 : 2021-08-25 9、在正式学员列表里面,搜索姓名姓名无法找到该学员,但是搜索学员昵称或者电话号码又可以找到该学员。 现象 : 在正式学员列表里面,搜索姓名姓名无法找到该学员,但是搜索学员昵称或者电话号码又可以找到该学员。 点击进入详细页里面,发现学员的姓名又是正常显示.包括学员费用明细里面也是一样的 初步现象就是意向学员的名字和正式学员的名字不一致 erp修改意向校区,发赠课券后所属校区为空 原因 : 正式学员表的名字和意向学员表的名字不一致,编辑crm信息处有bug, 导致信息未保持一致性 解决方式 : 修复crm编辑处的bug,使两处编辑保持一致 过程总结 : 观察现象,拿着贾舒涵的名称搜索确实会出现改问题 定位问题点,正式学员状态的变更入口,编辑客户信息导致 修复问题 记录时间 : 2021-08-30 10、通过转介绍渠道来的新的意向客户数据,其跟进人的扫码归属人字段未写入值 现象 : 通过转介绍渠道来的新的意向客户数据,其跟进人的扫码归属人字段未写入值 原因 : 营销服务调用crm服务编辑客户的跟进人信息时候,未传递跟进人参数 迁移代码导致代码丢失 解决方式 : 营销服务调crm服务时候,传跟进人参数 过程总结 : 复现(耗时长),不同分支的程序,已经接口参数,接口要做什么事情不清晰,很久之前的代码。 接口做的事情用注释标注清楚 httplog 辅助,抓入参数 读代码逻辑,标注代码做了那些事情 拿入参调试,找现场的快照情况 DEBUG断点调试 定位问题(耗时长),对比代码 增加跟进人传参数,解决问题 记录时间 : 2021-08-30 11、omo转介绍小程序,提交了预约相关信息,其生成了活动记录,但是并未生成客户记录 现象 : omo转介绍小程序,提交了预约相关信息,其生成了活动记录,但是并未生成客户记录 原因 : crm代码迁移,新增客户逻辑的代码丢失,导致不会生成意向客户记录 解决方式 : 对比以前的customer分支,找回丢失的代码逻辑 过程总结 : 复现(耗时长) 拿参数 读代码逻辑 断点调试 找到出问题的点 排查原因 定位问题,代码丢失,相应分支和逻辑比较 记录时间 : 2021-08-30 12、启动项目提示拿不到数据库的链接 现象 : 启动项目提示拿不到数据库的链接 原因 : apollo配置问题 1.配置的格式问题 2.有特殊符号,然后认不到 3.app.id和apollo配置的不一致 解决方式 : 调整apollo的配置为正确的项目 过程总结 : 观察现象 启动项目拿不到正确的数据库url 初步定位问题为apollo配置问题 肉眼对比配置 肉眼对比app.id 重启检测是否生效 记录时间 : 2021-09-01 13、暑期三节课发起支付后,订单支付状态未变更为支付中 现象 : 暑期三节课发起支付后,订单支付状态未变更为支付中 原因 : 1.支付中心拆分后,更改订单状态为支付中逻辑上提到业务处理层 2.营销三节课未添加更改支付中的逻辑 解决方式 : 添加更改订单状态为支付中的代码逻辑 过程总结 : 观察现象 定位问题 提交代码修复问题 扩展点 : 状态的判断处理都抽枚举类来统一处理 记录时间 : 2021-09-02 14、修复跟进人bug 现象 : 修复跟进人bug 原因 : 1.客户详细存在跟进人为空的数据 2.sql查询的逻辑为即查询跟进人的id,又查询冗余跟进人名称, 同时冗余跟进人名称会存在为空的数据 解决方式 : 若名称为空,跟进id查询一遍名称 过程总结 : 定位问题 本地复现 修改bug,未完全本地验证查询逻辑就让测试打包验证 优化,本地验证数据正确性能后 记录时间 : 2021-09-02 15、优惠券退款,点击驳回或者废除。若原状态为已经回收, 其状态还是变更成未使用,并没有退回为原本状态 现象 : 优惠券退款,点击驳回或者废除。若原状态为已经回收, 其状态还是变更成未使用,并没有退回为原本状态 原因 : 1.用户领取优惠券状态字段只有一个。若点击退款后,其状态变更为退款中, 并没有历史状态的记录 解决方式 : 领取记录表扩展增加字段“回收状态”,若已经回收,把回收状态设置为已经回收 然后,审核的时候, 1.联合判断一下回收状态,若此时已经回收,则回退成回收 2.若已经过期,过期标志 + 过期时间联合判断 3.其他置为未使用 过程总结 : 定位问题。状态值并没有快照记录 解决问题。增加退款状态字段 回收时写入已经退款,其他后置操作把回收状态还原 回收完成后,同时过期状态没有生效 找当时的参数记录。打日志重要性。 定位问题点,用http的参数请求接口发现但是并未走到对应的代码分支,导致设置过期状态未执行 逻辑分支判断用布尔值去判断 记录时间 : 2021-09-09 16、线上支付在使用支付宝付款时候提示“操作失败:网络或者服务器错误” 现象 : 线上支付在使用支付宝付款时候提示“操作失败:网络或者服务器错误” 原因 : 1.网络问题导致? 2.后台接口报错? 解决方式 : 过程总结 : 定位问题,排查httplog的请求接口情况 观察并未发送请求到后台 同时源头并未接入httplog服务 再仔细观察报错信息 正确流程: 1.观察报错信息为“操作失败:网络或者服务器错误” 2.什么情况下后段会报该异常 3.初步定位问题为网络情况 记录时间 : 2021-09-09