cBioPortal / datahub

A centralized location for storing curated data from cBioPortal
175 stars 120 forks source link

api/genesets/version error caused by seed-cbioportal_hg19_hg38_v2.12.14.sql.gz #1761

Open readline opened 1 year ago

readline commented 1 year ago

I'm setting up an instance with docker-compose. I load seed-cbioportal_hg19_hg38_v2.12.14.sql.gz to the database initiated with cgds.sql (either version 2.12.14 or 2.12.16) When I load data, there will be error saying "Failed to fetch metadata from the portal at [http://cbioportal:8080/api/genesets/version]"

if I open the api/genesets/version with browser, it's showing 500 error.

If I load seed-cbioportal_hg19_hg38_v2.12.12.sql.gz, the API will return "msigdb_7.5.1" in the normal way.

codeforkjeff commented 1 year ago

I also ran into this problem trying to run cBioPortal v5.3.2 with seed-cbioportal_hg19_hg38_v2.12.14.sql.gz. The seed-cbioportal_hg19_v2.12.14.sql.gz file DOES work.

Note this difference between the two seed files:

-- seed-cbioportal_hg19_v2.12.14.sql.gz
UPDATE info SET GENESET_VERSION="msigdb_7.5.1";

-- seed-cbioportal_hg19_hg38_v2.12.14.sql.gz
INSERT INTO `info` VALUES ('2.12.14','msigdb_7.5.1');

I think inserting an additional row is causing the 500 error for that API route. Here's the exception in the app:

cbioportal-app-1                       | SEVERE: Servlet.service() for servlet [api] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.My
BatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2] with root cause        
cbioportal-app-1                       | org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2                          

It seems like the hg38 file should do an UPDATE instead an INSERT? Not sure if there are other considerations I'm not aware of.