You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1.3 KiB

T6 聚焦修复 1:50 条并发边界

Prior Failure

W3-T6.md 在 MySQL 默认 REPEATABLE READ 等价测试下复现:49 条活动自定义项时并发发起两个创建请求,两个请求都通过计数检查,最终写入第 51 条,预期为一个成功、另一个 9703。

Objective

修复并发 50 条边界,保证在 MySQL 默认隔离级别下最多只能有 50 条活动企业自定义项。

Required Changes

  • 在检查活动条目前使用当前读或锁定读,不得依赖事务早期快照。
  • 企业行锁与活动条目计数必须处于同一事务,并确保计数读取看到锁等待前的已提交结果。
  • 允许使用 PESSIMISTIC_WRITE 查询公司自定义项、调整锁顺序或等效数据库级机制。
  • 保留既有的幂等重放、9704、软删除和跨企业隔离行为。
  • 将并发边界测试配置为重复读隔离级别,使其能在 H2 MODE=MySQL 下复现并验证 MySQL 风险。

Evidence

cd D:\1\zhi\zhilai\mydreamjob-server
mvn -Dtest=OnboardingConcurrencyIntegrationTest,OnboardingCompanyChecklistServiceTest test

Repair Constraints

  • 只做聚焦修复,不扩展接口或用户可见行为。
  • 不修改 V1-V38。
  • 修复后必须通过 Onboarding*Test,CompanyKnowledge*Test。