org.sonarqube.ws.client.HttpException: Error 500 on http://218.17.161.51:33089/api/ce/submit?proj...

背景

今天有项目进行sonar扫描时,报错了,控制台的日志输出如下:


报错信息

查看原因

查看了web.log,发现是数据库配置问题

Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1656853 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.

问题出在 SonarQube 生成一个巨大的报告, 然后尝试上传它的压缩包时, 导致 HTTP 500, 因为 MySQL 拒绝接受这样一个大的请求正文。

解决办法

更改服务器mysql配置 (my. cnf文件), 以增加 packed大小 (从默认 10MB, 到任何大于你的报告大小):

[mysqld]
max_allowed_packet = 25M

重新启动 MySQL 和sonar服务来生效。

在jenkins端执行扫描后,发现依然还是报错,再次查看web.log,发现报错信息又变了:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.

查资料发现还是数据库配置这块的问题,在服务器mysql配置 (my. cnf文件)中,增加innodb_log_file_size的配置,如下:

[mysqld]
max_allowed_packet = 25M
innodb_log_file_size=256M

同样重启 MySQL 和sonar服务,再次扫描,发现上传报告这块就OK啦!

你可能感兴趣的:(org.sonarqube.ws.client.HttpException: Error 500 on http://218.17.161.51:33089/api/ce/submit?proj...)