Upgrade from 6.7.3 LTS->7.7 causes duplicate key failures?

I have a multi module java project that analysed successfully using maven under 6.7.3 but after upgrading to 7.7 (ce), 3 specific files in 1 sub module fail with a duplicate (and massively truncated key ) trying to insert into the db. The component.VisitException error, shows what looks like a valid project_kee with 284 character, but the com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry has a key of only 64 chars. The module can be successfully analysed as a separate project, and other files (which would have longer keys) can be analysed within that module while in the multi-module project. So i’m at a bit of loss as to what the cause of this could be. I’m using a mysql db (which i saw will be deprecated in teh near future) but i dont see a key that would be a duplicate for this as either the full or truncated versions. schema looks to be 400 varchars, so shouldnt be reaching the column limit

Any ideas?

Hi @Norman_Greenlee

Could it be possible to share a bit more details, like the offending file keys/module keys, plus the physical module layout (please also specify if this is a Maven or Gradle project and you are using the specific scanner).

One possibility for a key conflict could be that some disabled components in DB are colliding with the new key after the drop of modules.

It’s a maven project:

  • sonar.scanner.app=ScannerMaven
  • sonar.scanner.appVersion=3.4.1.1168/3.6.0

Scanner moduleKey is just the normal <group_id>:<module_name>

The VisitException lists the Component Key as:
<group_id>:<project_name>: < relative file location in project >
and looks valid

The project name is a2p-analyzer

The log output for the MySQLIntegrityConstraintViolationException: Duplicate entry: “<group_id>:a2p-anal” for key ‘projects_kee’ ie. truncating the project name to 8 characters and not including the file path at all.

The physical structure has an extra directory level between project and module, but essentially just a standard maven java project. src/main/java/com… etc

I manually added the 3 offending files to the -Dsonar.exclusions & -Dsonar.test.exclusion parameters appropriately and the project task is then successful, but i don’t have anything disabled, the files haven’t changed since the upgrade.

Any chance you could share (privately) the full stacktrace of the error, as well as the list of components in your DB, using a query like:
select * from projects where kee like '<group_id>:a2p-anal%'

You can send it to me directly (julien.henry at sonarsource.com).