2015-01-08 4 views
0

4.0에서 4.5.1으로 업데이트하려고하지만 프로세스가 항상 UpdateMeasuresDebtToMinutes에서 실패합니다. MySQL 5.5.27을 테이블 엔진으로 InnoDB가있는 데이터베이스로 사용하고 있습니다. writeTimeout 초과 후 (600초가) 도움이되지 않았다 링크 된 문제에 제안 된 인덱스를 추가 로그UpdateMeasuresDebtToMinutes에서 SonarQube 4.5.1로 업그레이드하지 못했습니다.

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] 

에서 예외가 this problem

처럼

은 기본적으로 문제가 보인다.

더 내가 몇 가지 발견 조사 :

  • 마이그레이션 단계는 테이블에서 데이터를 읽고 다시 같은 테이블에 작성하고자하는을 (project_measures)
  • project_measures 이상 770000 행
  • 을 포함 프로세스가 항상 249 행 후에 응답합니다.
  • org.sonar.server.migrations.MassUpdate에 걸려있을 때 을 호출하면 BatchSession.MAX_BATCH_SIZE (250)이 실행 및 커밋을 수행합니다.

이 작업을 계속 진행하려면 DB 연결을 구성하는 방법이 있습니까?

+0

는 당신이, 돈을 실패 말할 때 ..

내가 말했듯이, 그것은 해결이므로 내가 대답으로 그것을 허용하지 않습니다 .. 너무의 키 길이를 제한했다 로그에 오류가 있습니까? –

+0

예 확실합니다. 링크 된 문제와 동일합니다. 제한 시간을 초과하면 java.io.EOFException이 발생합니다. –

답변

0

우선 DB를 4.0으로 되돌리고 다시 시도 할 수 있습니까? 그러면 사용중인 JDBC URL (sonar.jdbc.url)을 제공해 주시겠습니까?

감사합니다.

+0

위의 텍스트에 스 니펫을 추가합니다. 되돌리기를하면 동일한 문제가 반복적으로 발생합니다. .jdbc URL로 여러 시간 제한 설정을 사용하여 여러 버전을 시도했지만 예외가 기록 될 때마다 변경됩니다. 지금은이 설정을 사용합니다.'sonar.jdbc.url = jdbc : mysql : // localhost : 3306/sonar?& useUnicode = true & characterEncoding = utf8 & rewriteBatchedStatements = true & useConfigs = maxPerformance' –

0

소나 서버를 실행하려면 필히 해결 방법을 구현해야합니다.

큰 결과 집합이 열려있는 한 데이터베이스에 쓸 수없는 것처럼 보입니다 (두 번째 테이블에서 시도했지만 이전과 같은 문제).

그러므로 I 읽고 메모리 구조로 판독 결과 집합이 다시 쓰기 종료 후 변경된 데이터를로드 project_measures 테이블 ( org.sonar.server.db.migrations.v43.TechnicalDebtMeasuresMigration, org.sonar.server.db.migrations.v43.RequirementMeasuresMigration, org.sonar.server.db.migrations.v44.MeasureDataMigration)를 작성하는 데 필요한 모든 마이그레이션을 바꿨다. 이것은 소리가 나는 것처럼 해키하고 데이터를 페이징하거나 보조 데이터 스토어에 모든 것을 저장해야하는 더 큰 데이터 세트에서는 작동하지 않습니다.

또한 나중에 (546_inverse_rule_key_index.rb) 테이블에서 max key length가 UTF-8 인 2 varchar (255) 열이 1000 바이트 이상인 테이블을 생성해야합니다. .) 그래서 나는

+0

FYI 규칙 색인의 최대 길이는 mysql에 대해 관리되어야합니다. 지원되는 최대 길이로 잘립니다. –

관련 문제