Azure Devops Fails on Prepare Analysis on SonarQube

I have a test instance of SonarQube setup with version 7.2.1 (build 14109) which I have been able to successfully connect to and automate code analysis and see reports.

I want to switch to a production instance of sonarqube at work that is version 6.7.5 (build 38563). I create the user token for my account and configured the endpoint in azure devops to point to the other sonarqube instance. When I do this I get a failure on the Prepare analysis on SonarQube step with the following error.
[SQ] API GET ‘/api/server/version’ failed, error was: {“code”:“EPROTO”,“errno”:“EPROTO”,“syscall”:“write”}

I have double checked all of my settings and for the life of cannot figure out what is causing this error to occur. Any suggestions would be greatly appreciated.

Occur the same error with me.
Any reply?

We have the same problem.

I also face same issue. Any solution ?

Is there any update on this? I get this on a self-hosted agent
##[debug][SQ] API GET: ‘/api/server/version’ with query “undefined”
##[debug][SQ] API GET ‘/api/server/version’ failed, error was: {“code”:“ENOTFOUND”,“errno”:“ENOTFOUND”,“syscall”:“getaddrinfo”,“hostname”:“xxx.xx.xx.com”,“host”:“xxx.xx.xx.com”,“port”:nn}
##[debug]task result: Failed

My workaround is to use the sonar-scanner cli installed on the self-hosted agent.

Hi @dramayrat

Looks like your SQ instance is not reachable from your self hosted agent.

Could you issue a curl from that agent, make it work, and then retry ?

Thanks.

It is reachable via curl.
I also installed sonar-scanner on the vm and triggered this from ADO pipeline as a bash shell task - it works. This is my workaround.

Do you have a proxy between them ?

Yes. Both curl and sonar-scanner works using the proxy

This is the curl output from the vm

curl http://$sonar_url/api/server/version -v --proxy $proxy_host:$proxy_port

  • Trying nn.n.n.nnn

  • TCP_NODELAY set
  • Connected to xxx.xxx.xxx.com (nn.n.n.nnn) port nnn (#0)

GET http://<sonar_url>/api/server/version HTTP/1.1
Host: <sonar_url>
User-Agent: curl/7.58.0
Accept: /
Proxy-Connection: Keep-Alive

< HTTP/1.1 200 OK
< Date: Wed, 25 Mar 2020 04:45:46 GMT
< Server: Apache/2.4.9 (Unix) OpenSSL/1.0.1g
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 1; mode=block
< X-Content-Type-Options: nosniff
< Cache-Control: no-cache, no-store, must-revalidate
< Sonar-Version: 7.9.2.30863
< Content-Type: text/plain
< Content-Length: 11
< X-Cache: MISS from squid000001
< X-Cache-Lookup: MISS from squid000001:3128
< Via: 1.1 squid000001 (squid/3.5.12)
< Connection: keep-alive
<

  • Connection #0 to host <proxy_host> left intact

Hi @mickaelcaro , is there any update on this issue? I am having the same exact problem as @dramayrat.

I am also using a self hosted agent with a proxy between the SQ instance this was my error:

[SQ] API GET ‘/api/server/version’ failed, error was: {“code”:“ENOTFOUND”,“errno”:“ENOTFOUND”,“syscall”:“getaddrinfo”,“hostname”:“xxx.xx.xx.com”,“host”:“xxx.xx.xx”,“port”:nn}

Please advise

Hi,

Are you using any kind of proxy variable from node.js (HTTP_PROXY, HTTPS_PROXY, NO_PROXY)? If no, you have to consider them as we don’t automatically detect proxy between the agent and an SQ instance.

Mickaël

Hi,

I have the same problem as @Scott_Amack, I am using the latest task version(4.20.0) and SonarQube version 8.7.0. I also double checked the URL and token so it cannot be the problem. I am following the steps described in the documentation: Azure DevOps Integration | SonarQube Docs .

Did anyone have this problem and could solve it?