同事 A 写了个方法,同事 B 调用了 A 的方法 导致线上直接宕机 这个锅该谁背。。

2021-01-11 10:28:06 +08:00
 yasumoto
公司服务器连续几次宕机,导致有很多业务数据没进来,我们投放是花了钱的 后面找问题发现

是同事 A 写了个 sql 在 mybatis 里面用的<where><if xxx != null> xxx=xxx<if>....</where>类似这样的

同事 B 调用了这个方法,但是他的业务有的时候值没有 导致查询全表 1000 万的数据 机器直接卡死了

在阿里云显示慢 sql 执行了 500 多秒 - -

今天业务找过来说让员工负责一部分损失 ,问问大家 这个损失应该谁背呢
32649 次点击
所在节点    程序员
273 条回复
boris93
2021-01-11 17:17:40 +08:00
最烦这种出问题先想着分锅的。

测试没参与,也就是说,一段代码,未经有效的测试,就上生产了?谁给测试排的期?为什么可以让这段代码跳过测试直接上生产?

上线流程是谁制定的?有没有强制代码必须经过测试才能部署生产?有规定的话,为什么没有落实?没有规定的话,为什么放任未经测试的代码到生产?这里是谁制定流程以及保障落实的?

开发人员为什么没有落实谁编写谁负责?为什么连自己先测一遍正常以及不正常的路径的意识都没有?

这不是一个人或两个人的问题,这是整体流程满是漏洞,这次正好所有漏洞都畅通无阻,于是就出事故了。
whasyt
2021-01-11 17:22:39 +08:00
赔钱也不会赔多少吧,而且也是应该是直系领导象征性罚款,落到个人的头上嘛,那就不好说了
pangleon
2021-01-11 17:24:01 +08:00
@yhxx 等等,这个 A 背锅的理由是??声音不够大?
bluff
2021-01-11 17:25:08 +08:00
首先,公司的锅。其次,A 的方法特供 B 的业务 ? A : B;
asAnotherJack
2021-01-11 17:28:43 +08:00
要员工承担损失?说出公司名吧,让大家避避坑
dioxide
2021-01-11 17:30:21 +08:00
可以类比: 数据有效期检查应该由 函数的实现方负责 还是 函数的调用方负责;
我觉得应该由实现方负责, 当然也看约定的情况了
ltt
2021-01-11 17:33:02 +08:00
当然是老板的锅
ydpro
2021-01-11 17:34:21 +08:00
聪明人已经在想明年提桶跑路,现在在找工作了
whx20202
2021-01-11 17:35:49 +08:00
mybatis generator 生成的模板就是这样,A 凭啥背锅?
B 同事用过 mybatis 吗?
alexgor
2021-01-11 17:37:17 +08:00
就一句:程序写好了赚钱了有没分员工?
chippai
2021-01-11 17:39:09 +08:00
1. 锅是整个团队的了。
2. A 的方法是对外的 http 或 rpc 接口吗,不是的话就不该有责任。
3. 员工不可能承担任何损失。
chenshun00
2021-01-11 17:39:23 +08:00
在实习的时候也整过一次,那个时候数据库是 500W 条数据,但是不是一个很看中的业务,由于硬件有问题 && 我没有做做参数检验,导致了全表更新 (500w 更新),注意这个更新操作非常的频繁,直接把整个库拖挂了,然后领导电话直接过来,你是不是做什么了,RDS 直接 GG,后续做参数校验,然后就去做菜了.
回到这个问题
A 肯定考虑不周,最起码没有去想过哪些参数可传或可不传,但是他自己用肯定没有问题,因为他写的,他知道怎么去避坑,或者说在他的场景下永远不可能出现全表的情况,sql 的超时也没有设置,千万级别的表加个 timeout 不过分吧
B 业务就是这么做的. 他本身是不知道 A 的实现的,也没有做参数限制,不知道有没有和 A 沟通,反正我调用别人的服务就是问一下,肯定不知道内部实现.

后续想知道你们是怎么处理的 :)))
tinytoadd
2021-01-11 17:39:37 +08:00
损失员工承担,赚钱员工按合伙人分成吗
shiroikuma
2021-01-11 17:41:55 +08:00
瑟瑟发抖
vanityfairn
2021-01-11 17:44:16 +08:00
也不一定是 qa 背阿,不是啥问题就往测试上扔的。别想着分锅阿,好好看看这个上线流程,测试介入了的话,没测试到就是测试的问题(但是比如 1000 万的量这种极端情况,测试也没办法的,我们这儿就是一起背),其次,承担损失就扯淡
wjfz
2021-01-11 17:47:40 +08:00
雪崩时,没有一片雪花是无辜的。
gengzi
2021-01-11 17:50:00 +08:00
有意思
wugq
2021-01-11 18:05:36 +08:00
我想问问这种情况该怎么写 SQL,默认情况也加个有索引的条件上去吗?
keventseng
2021-01-11 18:05:54 +08:00
这个大家都有责任,但是……锅必须技术负责人背,毕竟上线前没检查代码。
alexzuo
2021-01-11 18:09:02 +08:00
什么叫“让员工负责一部分损失”?
这个似乎不符合劳动法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/743718

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX