我正在尝试从 4.0 更新到 4.5.1,但该过程总是在UpdateMeasuresDebtToMinutes
. 我使用 MySQL 5.5.27 作为数据库,使用 InnoDB 作为表引擎。
基本上问题看起来像这个问题
writeTimeout 超过(600 秒)后日志出现异常
Caused by: java.io.EOFException: Can not read response from server. Expected to read 81 bytes, read 15 bytes before connection was unexpectedly lost.
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3166) ~[mysql-connector-java-5.1.27.jar:na]
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3676) ~[mysql-connector-java-5.1.27.jar:na]
添加链接问题中建议的索引没有帮助。
进一步调查我注意到了几件事:
- 迁移步骤从表中读取数据并希望写回同一个表 (
project_measures
) - project_measures 包含超过 770000 行
- 该进程总是在 249 行后挂起
- 挂起发生在
org.sonar.server.migrations.MassUpdate
调用update.addBatch()
which 在BatchSession.MAX_BATCH_SIZE (250)
强制执行和提交之后
有没有办法配置数据库连接以允许此操作继续进行?