临时账号没有因为杜维成一句话立刻退出。
权限由嘉禾发放,合同约定要完成技术记录和验收。罗致远先让管理员把账号切回只读,只保留查看本次事件和填写报告的权限,变更入口全部关闭。
“服务还没验收。”他说,“先把时间线核完。”
杜维成拉开椅子坐下:“海拓一直在现场处理,周衡只是后面协助排查。客户报告还是由项目组统一出,免得出现两个口径。”
周衡没有争谁先开口。
他把自己记录的每个节点填进客户应急工单,所有结论后面都附证据位置,不附带一份私自下载的日志。
杜维成打开海拓的初步汇报,第一页写着:“项目组通过调整消费策略、暂停异常任务并建立临时通道,于二十二点三十分恢复核心服务。”
依旧没有具体的人。
第二页则把故障原因概括为“客户临时调整批处理时段,叠加大促流量导致资源不足”。如果按这句话收口,下午改过执行时间的业务部门、把外部调用放进长事务的实现方式,以及两次扩并发造成的放大,都会被装进一句资源不足。
嘉禾业务负责人当场提出异议:“提前对账是我们提的,但任务怎么分批、事务什么时候提交,不是业务部门决定的。不能只写我们改了时段。”
海拓项目经理解释,这是初稿,后续还会完善。
“所以现在逐条核。”罗致远说,“不抢结论,也不省略记录。”
“这个结论本身没错。”周衡说,“但暂停什么、为什么降并发、临时通道在什么验证后开启,需要写全。不然下一次还是会先扩进程。”
杜维成看着他:“这些动作都发生在海拓维护的系统里,方案也是基于项目组已有能力完成。外部顾问没有必要在客户面前强调个人。”
罗致远把事故工单投到大屏。
第一条是晚上七点零八分,嘉禾确认核心链路异常。
第二条是八点十二分,第一次发出超时通知。
九点十分,海拓盖章确认无法在当前服务时限内完成恢复,同意客户启动外部应急机制。
九点三十一分,嘉禾与周衡签署外部技术服务合同。
九点四十四分,临时诊断账号启用。
这些时间不是任何人的描述,全部来自双方已经确认的系统记录。
“先明确身份。”罗致远说,“周衡不是海拓临时安排的项目成员。他是嘉禾依据合同单独聘请的外部服务方。海拓现场人员按我们的书面要求配合,两边责任不能混写。”
杜维成说:“启动外部机制,不代表海拓前面的工作没有作用。我们重启和扩容也为后续恢复创造了条件。”
“那就看数据。”
罗致远让管理员调出只读监控。
两次扩大消费进程后,数据库写等待和积压增长都更快。九点五十七分,对账调度被暂停;十点零四分,长事务在确认无外部写操作后终止;十点十二分,并发降到原来的四分之一,等待开始下降;十点二十六分,临时通道完成第一笔新订单;十点三十分,核心恢复。
每一次变更都能点开对应工单。
提出方案的人写的是周衡,批准人是罗致远,执行人分别是嘉禾数据库管理员和丁卓。工单里还有回滚条件、观察时间和执行后的指标。
“丁卓,你说一下现场过程。”罗致远道。
丁卓坐在海拓一侧,没有看杜维成。
“周衡先要求保留活动事务和等待快照,没有让我们直接杀任务。仓储日志确认当前批次只有查询、数据库也没提交以后,罗总批准终止。后面降并发和开临时消费组,都先做了重复订单验证。我按工单执行配置,没有接收私人指令。”
“核心恢复前,杜经理是否参与了这些判断?”
“杜经理当时不在现场。海拓值班负责人参加了语音,但方案提出和验证过程都在录屏里。”
杜维成脸色沉下去:“你注意自己的立场。”
丁卓手指收紧了一下,仍然把后半句说完:“我的立场是按操作记录回答。”
会议室里没人接话。