Upgrade SonarQube CE from 8.2 to 8.4 - Projects not showing

Hello,
I am in the process of upgrading SonarQube CE 8.2 to 8.4.

I have done a back up of the SQL database, then extracted the new code 8.4 and updated conf files accordingly.

The database update took over an hour but SonarQube is running now. I have scanned a few applications through it and they are showing as completed in the back ground tasks and that aspect looks normal.

But there is nothing showing on the “Projects” screen or home page and it is showing “0 of 0 shown”. - the projects are there ok as I can see then in issues and also in the background tasks.

I don’t think I have missed any steps and SonarQube is running as a service as per normal.

I will see how it looks overnight as there are a number of automated scans… but was wondering if there was any other similar experiences or advice?

thanks

Hi,

It sounds like you have a corrupt Elasticsearch index. Try this:

  • stop the server
  • delete $SONARQUBE-HOME/data/es6
  • start the server

This will force a rebuild of your indices. Come back to us if that doesn’t fix it.

 
Ann

thanks @ganncamp
I inspected the logs earlier and did notice some errors in the es.log but they seemed to go away. However I have followed your steps, stopped the service, cleared the logs and restarted.

It displayed a note on top of the projects screen as below…
“SonarQube is reloading project data. Some projects will be unavailable until this process is complete.
26% complete.”

Its reached 100% now and give this message.

All project data has been reloaded.

however the screen is blank… I notice in the browser console a 500 error.

…/api/components/search_projects?ps=50&facets=reliability_rating%2Csecurity_rating%2Csecurity_review_rating%2Csqale_rating%2Ccoverage%2Cduplicated_lines_density%2Cncloc%2Calert_status%2Clanguages%2Ctags%2Cqualifier&f=analysisDate%2CleakPeriodDate&s=analysisDate

{“errors”:[{“msg”:“An error has occurred. Please contact your administrator”}]}

I have ran other queries against the API, those that build up reports and they are fine.

Hi,

A 500 error should be reflected in the server logs. What do you see there?

 
Ann

thanks Ann,

access.log

[18/Aug/2020:08:57:14 +0100] “GET /api/components/search_projects?ps=50&facets=reliability_rating%2Csecurity_rating%2Csecurity_review_rating%2Csqale_rating%2Ccoverage%2Cduplicated_lines_density%2Cncloc%2Calert_status%2Clanguages%2Ctags%2Cqualifier&f=analysisDate%2CleakPeriodDate&s=analysisDate HTTP/1.1” 500 79 “/projects?sort=analysis_date” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36” “AXQAkmDYKAsvcoHSAAAM”

ce.log
nothing

es.log
nothing

sonar.log
nothing

web.log
2020.08.18 09:38:11 ERROR web[AXQAkmDYKAsvcoHSAABo][o.s.s.w.WebServiceEngine] Fail to process request http://localhost:9000/api/components/search_projects?filter=isFavorite&ps=1
java.lang.NullPointerException: at index 0
at com.google.common.collect.ObjectArrays.checkElementNotNull(ObjectArrays.java:225)
at com.google.common.collect.ObjectArrays.checkElementsNotNull(ObjectArrays.java:215)
at com.google.common.collect.ObjectArrays.checkElementsNotNull(ObjectArrays.java:209)

Hi,

Can we have that whole stacktrace from web.log?

 
Ann

Hi Ann, thanks for the message - the full log below.

2020.08.20 09:01:40 INFO  web[][o.s.s.a.p.ExpiredSessionsCleaner] Purge of expired session tokens has removed 0 elements
2020.08.20 09:01:40 INFO  web[][o.s.s.a.p.ExpiredSessionsCleaner] Purge of expired SAML message ids has removed 0 elements
2020.08.20 09:26:18 ERROR web[AXQFvXrz4xhj43LiABr8][o.s.s.w.WebServiceEngine] Fail to process request http://localhost:9000/api/components/search_projects?ps=50&facets=new_reliability_rating%2Cnew_security_rating%2Cnew_security_review_rating%2Cnew_maintainability_rating%2Cnew_coverage%2Cnew_duplicated_lines_density%2Cnew_lines%2Calert_status%2Clanguages%2Ctags%2Cqualifier&f=analysisDate%2CleakPeriodDate
java.lang.NullPointerException: at index 0
	at com.google.common.collect.ObjectArrays.checkElementNotNull(ObjectArrays.java:225)
	at com.google.common.collect.ObjectArrays.checkElementsNotNull(ObjectArrays.java:215)
	at com.google.common.collect.ObjectArrays.checkElementsNotNull(ObjectArrays.java:209)
	at com.google.common.collect.ImmutableList.construct(ImmutableList.java:346)
	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:258)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:582)
	at org.sonar.server.component.ws.SearchProjectsAction.loadFavoriteProjectUuids(SearchProjectsAction.java:363)
	at org.sonar.server.component.ws.SearchProjectsAction.searchData(SearchProjectsAction.java:270)
	at org.sonar.server.component.ws.SearchProjectsAction.handleForAnyOrganization(SearchProjectsAction.java:254)
	at org.sonar.server.component.ws.SearchProjectsAction.doHandle(SearchProjectsAction.java:243)
	at org.sonar.server.component.ws.SearchProjectsAction.handle(SearchProjectsAction.java:234)
	at org.sonar.server.ws.WebServiceEngine.execute(WebServiceEngine.java:110)
	at org.sonar.server.platform.web.WebServiceFilter.doFilter(WebServiceFilter.java:88)
	at org.sonar.server.platform.web.MasterServletFilter$GodFilterChain.doFilter(MasterServletFilter.java:139)
	at org.sonar.server.platform.web.MasterServletFilter.doFilter(MasterServletFilter.java:108)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.UserSessionFilter.doFilter(UserSessionFilter.java:88)
	at org.sonar.server.platform.web.UserSessionFilter.doFilter(UserSessionFilter.java:72)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.CacheControlFilter.doFilter(CacheControlFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.SecurityServletFilter.doHttpFilter(SecurityServletFilter.java:76)
	at org.sonar.server.platform.web.SecurityServletFilter.doFilter(SecurityServletFilter.java:48)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.RedirectFilter.doFilter(RedirectFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.RequestIdFilter.doFilter(RequestIdFilter.java:66)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.RootFilter.doFilter(RootFilter.java:62)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:834)

Hi, it looks like that you have orphans rows in your properties table. Please execute this query on your database to delete them:

delete from properties where prop_key = 'favourite' and component_uuid is null

I created a ticket here to reference the issue, and have a fix on SonarQube side on a future version.

1 Like

hi @pierreguillot

I can confirm that worked…

I stopped SonarQube, Ran the query, cleared the es6 directory and once restarted the projects re-indexed and both projects and portfolio are working now.

I was also in touch with Alexandre, as we implemented the Enterprise version with the same issue… I think he was in touch… everything is working now which is a great help… thanks again…

Glad that solved your issue! Thanks for the feedback.