AI-Learning一次bug

背景和排查

bug出现在实践课代码提交接口上,源代码为

1
2
while True:
print(1)

运行是没有问题的,提交到judge0可以正常拿到token,用token也能正常拿到结果,问题出在存储到数据库的过程中,因为上述循环输出结果太长,把mysql的text撑爆了

image-20240511093528320

导致提交记录一直没有更新,一直处于提交中的状态

这里可以去查一下mysql的text长度上限是多少

  • TEXT 65,535 bytes ~64kb
  • MEDIUMTEXT 16,777,215 bytes ~16Mb
  • LONGTEXT 4,294,967,295 bytes ~4Gb

所以在插入数据库前需要判断截断,做特殊处理

反思

任何跟数据库相关的数据在落库之前一定要做校验,不止是从用户端拿来的数据还是调用第三方接口得到的用户,还有就是除了数据正确性外,还要注意数据长度