local cBioportal-instance

418 views
Skip to first unread message

Silke Appenzeller

unread,
Sep 29, 2022, 4:53:02 AM9/29/22
to cbiop...@googlegroups.com

Hello,

we are running a local cBioportal instanz on our server (which is not
connected to the internet) and firefox (X-forwarding enabled) to open
the cbioportal Instanz. In general, it works, but suddenly we
experience that when we try to run Oncoprint. The loading of the data
gets stuck with the message:

Querying 1 genes in 61 samples - this can take several seconds
Loading genetic data
Annotating with OncoKB™ and Cancer Hotspots
Rendering

Do you have an idea how to fix this?

Thank you very much.

Silke Appenzeller

Dr. Silke Appenzeller
Leitung Bioinformatik
Comprehensive Cancer Center Mainfranken
Universitätsklinikum Würzburg
Schweinfurter Str. 28 (im Krebsregister)
D-97076 Würzburg

Tel: ++49 (0)931 - 201 - 35831
E-mail: silke.ap...@uni-wuerzburg.de

Aaron L

unread,
Sep 29, 2022, 4:49:39 PM9/29/22
to Silke Appenzeller, cbiop...@googlegroups.com
Hi Silke, 

Can you open the debugger tools of Firefox?   You should see in either the Console (an error message) or in the Network tab that there is a request that doesn't complete.  If you can take a screenshot of what you find, that would be helpful.

--Aaron





--
You received this message because you are subscribed to the Google Groups "cBioPortal for Cancer Genomics Discussion Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cbioportal+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cbioportal/20220929085300.Horde.bzQBnZtdhbJ-ccXueMSx3eS%40webmail.uni-wuerzburg.de.

Leila Kamkar

unread,
Dec 7, 2022, 2:35:02 PM12/7/22
to cBioPortal for Cancer Genomics Discussion Group
Hello, 
I have somehow the same problem.

We are running a local instance of cBioportal on our server behind Nginx which holds SSL certificates. Keycloak is used for authentication.
Oncokb token and other settings are configured as specified in docs. When we try to run a query for any gene inside any study. The loading of the data gets stuck with the message like:

Querying 1 genes in 70 samples - this can take several seconds

Loading genetic data
Annotating with OncoKB™ and Cancer Hotspots
Rendering


The error logs are as following:

cbioportal-container | SEVERE: Servlet.service() for servlet [proxy] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://public.api.oncokb.org/api/v1/utils/cancerGeneList": Connection timed out (Connection timed out); nested exception is java.net.ConnectException: Connection timed out (Connection timed out)] with root cause

This might also be related to that I can not import OnkoKB annotations. When I try to execute this command from inside the container.
./importer/metaImport.py --import_oncokb -p $PORTAL_HOME/my_portal_info_folder -s /study/brca_mskcc_2019 -v -o
I see this error:

Starting import of OncoKB annotations for mutations file ...
Reading features from file ... DONE
Fetching batch of 200 annotations ... DONE
Fetching batch of 200 annotations ... DONE
Fetching batch of 138 annotations ... DONE
Updating study files ... DONE
INFO: -: Import complete
Traceback (most recent call last):
  File "/cbioportal/core/src/main/scripts/importer/metaImport.py", line 165, in <module>
    cna_data_file_name = libImportOncokb.find_data_file_from_meta_file(cna_meta_file_path)
  File "/cbioportal/core/src/main/scripts/importer/libImportOncokb.py", line 171, in find_data_file_from_meta_file
    fields = read_meta_file(metafile_path)
  File "/cbioportal/core/src/main/scripts/importer/libImportOncokb.py", line 178, in read_meta_file
    with open(metafile_path) as metafile:
TypeError: expected str, bytes or os.PathLike object, not NoneType


Would you please guide me in this regard?
Best,
Leila

Aaron L

unread,
Dec 8, 2022, 10:24:18 AM12/8/22
to Leila Kamkar, cBioPortal for Cancer Genomics Discussion Group
Hi Leila, 

If you could open the developer tools of the chrome browser when try to load the query, that would much appreciated.  You can do this using menu View > Developer > Developer Tools.

There should some red error in the console tab (or the Network tab) and I like to see that.  

Regarding oncokb import, that could be involved yes.   Lets wait and see what you find here.  

image.png

Leila Kamkar

unread,
Dec 8, 2022, 3:27:13 PM12/8/22
to Aaron L, cBioPortal for Cancer Genomics Discussion Group
Hi Aron,
Many thanks for your reply.
There is one red error message there which looks like:


Today I tried to launch another cbioportal instance without keycloak and nginx to reduce the complexity and overcome this issue. This instance's error message is different as following:


When I run importOncokbMutation.py for the same study it works correctly and adds annotation columns to the mutation file, but when I try to import the study by metaImport.py --import_oncokb ... the following error message displays after validation is completed

INFO: -: Validation complete

Traceback (most recent call last):
  File "/usr/local/bin/metaImport.py", line 141, in <module>
    mutation_data_file_name = libImportOncokb.find_data_file_from_meta_file(mutation_meta_file_path)

  File "/cbioportal/core/src/main/scripts/importer/libImportOncokb.py", line 171, in find_data_file_from_meta_file
    fields = read_meta_file(metafile_path)
  File "/cbioportal/core/src/main/scripts/importer/libImportOncokb.py", line 178, in read_meta_file
    with open(metafile_path) as metafile:
FileNotFoundError: [Errno 2] No such file or directory: 'study/brca_mskcc_2019/study/brca_mskcc_2019/meta_mutations.txt'

Is it correct that If we do not use --import_oncokb while importing studies then the query page for genes will not be available?(as specified in Import-OncoKB-annotations-as-Custom-Driver-Annotations.md)

Kind Regards,
Leila

Aaron L

unread,
Dec 8, 2022, 4:43:45 PM12/8/22
to Leila Kamkar, Hongxin Zhang - cbio, cBioPortal for Cancer Genomics Discussion Group
It seems like a problem with your Oncokb token.  When did you obtain it?   I'm gonna loop in @Hongxin Zhang - cbio, who runs oncokb to get his suggestions.  

Aaron L

unread,
Dec 9, 2022, 9:53:36 AM12/9/22
to Leila Kamkar, Hongxin Zhang - cbio, cBioPortal for Cancer Genomics Discussion Group
Hi Leila, 

The next possibility is some kind of firewall issue.   Can you try to curl the following url from within the container where you are running the portal?


On Fri, Dec 9, 2022 at 3:17 AM Leila Kamkar <leila....@gmail.com> wrote:
The token is new and still valid. I will wait for Hongxin reply.
Thanks
Leila

Leila Kamkar

unread,
Dec 9, 2022, 2:30:53 PM12/9/22
to Aaron L, Hongxin Zhang - cbio, cBioPortal for Cancer Genomics Discussion Group
The token is new and still valid. I will wait for Hongxin reply.
Thanks
Leila

On Thu, Dec 8, 2022, 22:43 Aaron L <lisman...@gmail.com> wrote:

Aaron L

unread,
Dec 12, 2022, 9:51:19 AM12/12/22
to Leila Kamkar, Hongxin Zhang - cbio, cBioPortal for Cancer Genomics Discussion Group
Leila, 

No, it is not required.  You should be able to import data and then use the portal without any interaction/integration with oncokb api.  





On Mon, Dec 12, 2022 at 6:59 AM Leila Kamkar <leila....@gmail.com> wrote:
Hi Aaron, 
Thanks for your time. 
The following command:
Executes well from inside the container.
My question is whether it is required to import the study by metaImport.py --import_oncokb in order to be able to see the oncoprint page and execute queries by gene names.
With appreciation,
Leila

Leila Kamkar

unread,
Dec 12, 2022, 11:49:41 AM12/12/22
to Aaron L, Hongxin Zhang - cbio, cBioPortal for Cancer Genomics Discussion Group
Hi Aaron, 
Thanks for your time. 
The following command:
Executes well from inside the container.
My question is whether it is required to import the study by metaImport.py --import_oncokb in order to be able to see the oncoprint page and execute queries by gene names.
With appreciation,
Leila

debr...@mskcc.org

unread,
Dec 12, 2022, 3:11:18 PM12/12/22
to leila....@gmail.com, lisman...@gmail.com, hon...@cbio.mskcc.org, cbiop...@googlegroups.com

Hi Leila,

 

Thanks for reaching out! The --import_oncokb functionality is still in development and is for very specific advanced use (allowing filtering by driver/VUS on study view and group comparison). You don’t need it for standard use of cBioPortal. E.g. the public portal www.cbioportal.org does not have it enabled.

 

Hope that helps!

 

Best wishes,

Ino

.
To view this discussion on the web visit
https://groups.google.com/d/msgid/cbioportal/CAGSZz38FQdzEKP215uwXtnjgnJZoMu_89fPU1Nzn2Kip78CUVQ%40mail.gmail.com.



*** Only open attachments or links from trusted senders. Report phishing to inf...@mskcc.org ***

 

mg_info.txt

Leila Kamkar

unread,
Dec 14, 2022, 12:54:21 PM12/14/22
to debr...@mskcc.org, lisman...@gmail.com, hon...@cbio.mskcc.org, cbiop...@googlegroups.com
Hi Aron, Hi Debruiji,
Many thanks for your time and consideration.
So if it is not required why is it not working properly?
I tried to simplify the problem and deployed a pure cbioportal without keycloak and nginx. 
I have already subscribed in oncokb and have two valid tokens. I used one of the tokens in the config file and done these 3 steps.
  • show.oncokb should be set to true
  • oncokb.token should be set to a valid OncoKB access token value
  • oncokb.public_api.url should be set to https://www.oncokb.org/api/v1
It still does not show the oncoprint result. The error message is:
{"req":{"method":"GET","url":"http://cbioportal-miracum.tmo-heidelberg.de:8080/proxy/A8F74CD7851BDEE8DCD2E86AB4E2A711/L3V0aWxzL2NhbmNlckdlbmVMaXN0","headers":{"accept":"application/json","content-type":"application/json","x-proxy-user-agreement":"I/We do NOT use this obfuscated proxy to programmatically obtain private OncoKB data. I/We know that I/we should get a valid data access token by registering at https://www.oncokb.org/account/register."}},"xhr":{},"text":"<!doctype html><html lang=\"en\"><head><title>HTTP Status 500 – Internal Server Error</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 500 – Internal Server Error</h1><hr class=\"line\" /><p><b>Type</b> Exception Report</p><p><b>Message</b> Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I&#47;O error on GET request for &quot;https:&#47;&#47;public.api.oncokb.org&#47;api&#47;v1&#47;utils&#47;cancerGeneList&quot;: Connection timed out (Connection timed out); nested exception is java.net.ConnectException: Connection timed out (Connection timed out)</p><p><b>Description</b> The server encountered an unexpected condition that prevented it from fulfilling the request.</p><p><b>Exception</b></p><pre>org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I&#47;O error on GET request for &quot;https:&#47;&#47;public.api.oncokb.org&#47;api&#47;v1&#47;utils&#47;cancerGeneList&quot;: Connection timed out (Connection timed out); nested exception is java.net.ConnectException: Connection timed out (Connection timed out)\n\torg.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n\torg.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:626)\n\torg.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:733)\n\torg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n\torg.mskcc.cbio.portal.util.XssFilter.doFilter(XssFilter.java:65)\n\torg.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\n\torg.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)\n\torg.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)\n\torg.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)\n\torg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\n\torg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\n\torg.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\n\torg.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\n\torg.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\n\tcom.vlkan.hrrs.servlet.HrrsFilter.doFilter(HrrsFilter.java:85)\n\torg.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:364)\n\torg.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:170)\n\torg.mskcc.cbio.portal.util.RequestBodyGZipFilter.doFilter(RequestBodyGZipFilter.java:72)\n\torg.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\n\torg.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\n</pre><p><b>Root Cause</b></p><pre>org.springframework.web.client.ResourceAccessException: I&#47;O error on GET request for &quot;https:&#47;&#47;public.api.oncokb.org&#47;api&#47;v1&#47;utils&#47;cancerGeneList&quot;: Connection timed out (Connection timed out); nested exception is java.net.ConnectException: Connection timed out (Connection timed out)\n\torg.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:746)\n\torg.springframework.web.client.RestTemplate.execute(RestTemplate.java:712)\n\torg.springframework.web.client.RestTemplate.exchange(RestTemplate.java:600)\n\torg.cbioportal.proxy.ProxyController.exchangeData(ProxyController.java:161)\n\torg.cbioportal.proxy.ProxyController.exchangeOncokbData(ProxyController.java:103)\n\torg.cbioportal.proxy.ProxyController.proxyEncodedOncokb(ProxyController.java:85)\n\tjava.base&#47;jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tjava.base&#47;jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)\n\tjava.base&#47;jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)\n\tjava.base&#47;java.lang.reflect.Method.invoke(Unknown Source)\n\torg.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)\n\torg.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)\n\torg.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)\n\torg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)\n\torg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)\n\torg.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n\torg.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1043)\n\torg.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)\n\torg.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n\torg.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:626)\n\torg.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:733)\n\torg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n\torg.mskcc.cbio.portal.util.XssFilter.doFilter(XssFilter.java:65)\n\torg.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\n\torg.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)\n\torg.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)\n\torg.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)\n\torg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\n\torg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\n\torg.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\n\torg.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\n\torg.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\n\tcom.vlkan.hrrs.servlet.HrrsFilter.doFilter(HrrsFilter.java:85)\n\torg.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:364)\n\torg.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:170)\n\torg.mskcc.cbio.portal.util.RequestBodyGZipFilter.doFilter(RequestBodyGZipFilter.java:72)\n\torg.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\n\torg.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\n</pre><p><b>Root Cause</b></p><pre>java.net.ConnectException: Connection timed out (Connection timed out)\n\tjava.base&#47;java.net.PlainSocketImpl.socketConnect(Native Method)\n\tjava.base&#47;java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)\n\tjava.base&#47;java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)\n\tjava.base&#47;java.net.AbstractPlainSocketImpl.connect(Unknown Source)\n\tjava.base&#47;java.net.SocksSocketImpl.connect(Unknown Source)\n\tjava.base&#47;java.net.Socket.connect(Unknown Source)\n\tjava.base&#47;sun.security.ssl.SSLSocketImpl.connect(Unknown Source)\n\tjava.base&#47;sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source)\n\tjava.base&#47;sun.net.NetworkClient.doConnect(Unknown Source)\n\tjava.base&#47;sun.net.www.http.HttpClient.openServer(Unknown Source)\n\tjava.base&#47;sun.net.www.http.HttpClient.openServer(Unknown Source)\n\tjava.base&#47;sun.net.www.protocol.https.HttpsClient.&lt;init&gt;(Unknown Source)\n\tjava.base&#47;sun.net.www.protocol.https.HttpsClient.New(Unknown Source)\n\tjava.base&#47;sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)\n\tjava.base&#47;sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)\n\tjava.base&#47;sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)\n\tjava.base&#47;sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)\n\tjava.base&#47;sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)\n\torg.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:76)\n\torg.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)\n\torg.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53)\n\torg.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:737)\n\torg.springframework.web.client.RestTemplate.execute(RestTemplate.java:712)\n\torg.springframework.web.client.RestTemplate.exchange(RestTemplate.java:600)\n\torg.cbioportal.proxy.ProxyController.exchangeData(ProxyController.java:161)\n\torg.cbioportal.proxy.ProxyController.exchangeOncokbData(ProxyController.java:103)\n\torg.cbioportal.proxy.ProxyController.proxyEncodedOncokb(ProxyController.java:85)\n\tjava.base&#47;jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tjava.base&#47;jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)\n\tjava.base&#47;jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)\n\tjava.base&#47;java.lang.reflect.Method.invoke(Unknown Source)\n\torg.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)\n\torg.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)\n\torg.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)\n\torg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)\n\torg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)\n\torg.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n\torg.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1043)\n\torg.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)\n\torg.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n\torg.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:626)\n\torg.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:733)\n\torg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n\torg.mskcc.cbio.portal.util.XssFilter.doFilter(XssFilter.java:65)\n\torg.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\n\torg.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)\n\torg.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)\n\torg.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)\n\torg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\n\torg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\n\torg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n\torg.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\n\torg.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\n\torg.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\n\torg.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\n\tcom.vlkan.hrrs.servlet.HrrsFilter.doFilter(HrrsFilter.java:85)\n\torg.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:364)\n\torg.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:170)\n\torg.mskcc.cbio.portal.util.RequestBodyGZipFilter.doFilter(RequestBodyGZipFilter.java:72)\n\torg.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\n\torg.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\n</pre><p><b>Note</b> The full stack trace of the root cause is available in the server logs.</p><hr class=\"line\" /><h3>Apache Tomcat/8.5.61</h3></body></html>","statusText":"","statusCode":500,"status":500,"statusType":5,"info":false,"ok":false,"redirect":false,"clientError":false,"serverError":true,"error":{"status":500,"method":"GET","url":"http://cbioportal-miracum.tmo-heidelberg.de:8080/proxy/A8F74CD7851BDEE8DCD2E86AB4E2A711/L3V0aWxzL2NhbmNlckdlbmVMaXN0"},"created":false,"accepted":false,"noContent":false,"badRequest":false,"unauthorized":false,"notAcceptable":false,"forbidden":false,"notFound":false,"unprocessableEntity":false,"headers":{"access-control-allow-origin":"*","access-control-expose-headers":"total-count,sample-count","cache-control":"no-cache, no-store, max-age=0, must-revalidate","connection":"close","content-encoding":"gzip","content-language":"en","content-type":"text/html;charset=utf-8","date":"Wed, 14 Dec 2022 17:30:30 GMT","expires":"0","pragma":"no-cache","transfer-encoding":"chunked","vary":"accept-encoding","x-content-type-options":"nosniff","x-frame-options":"DENY","x-xss-protection":"1; mode=block"},"header":{"access-control-allow-origin":"*","access-control-expose-headers":"total-count,sample-count","cache-control":"no-cache, no-store, max-age=0, must-revalidate","connection":"close","content-encoding":"gzip","content-language":"en","content-type":"text/html;charset=utf-8","date":"Wed, 14 Dec 2022 17:30:30 GMT","expires":"0","pragma":"no-cache","transfer-encoding":"chunked","vary":"accept-encoding","x-content-type-options":"nosniff","x-frame-options":"DENY","x-xss-protection":"1; mode=block"},"type":"text/html","charset":"utf-8","links":{},"body":null,"url":"http://cbioportal-miracum.tmo-heidelberg.de:8080/results/oncoprint?cancer_study_list=lgg_ucsf_2014&Z_SCORE_THRESHOLD=2.0&RPPA_SCORE_THRESHOLD=2.0&profileFilter=mutations&case_set_id=lgg_ucsf_2014_sequenced&gene_list=PTEN&geneset_list=%20&tab_index=tab_visualize&Action=Submit"}
Any suggestions will be appreciated.
Best,
Leila 

Aaron L

unread,
Dec 14, 2022, 2:55:20 PM12/14/22
to Leila Kamkar, debr...@mskcc.org, hon...@cbio.mskcc.org, cbiop...@googlegroups.com
What I mean is that the annotation process ( --import_oncokb) that (can) take place at import time is not required for Oncokb functionality to work in the app.   They are two entirely separate things.  

The error message you sent suggests a problem connecting with the Oncokb api from the backend (proxy) of the portal.    It is hard to debug this from afar.   

I do have a test we could run that might give us more information but I would need to jump on a zoom call with you.

Let me know if you are available. 

--Aaron

Aaron L

unread,
Dec 15, 2022, 10:49:22 AM12/15/22
to Leila Kamkar, debr...@mskcc.org, cBioPortal for Cancer Genomics Discussion Group
Hi Leila, 

Can we meet on Monday 19th at 

11am EST ---> 17:00 CET


On Thu, Dec 15, 2022 at 5:15 AM Leila Kamkar <leila....@gmail.com> wrote:
Hi Aron,
I understand. Many thanks for your offer.
I will recommend my free time frames. Please select the ones which are suitable for you. The recommended time slots refer to the Central European time zone(Germany).
Friday 16.12.2022 from 9:00 to 20:00
Monday 19.12.2022 from 9:00 to 20:00
Wednesday 21.12.2022 from 14:00 to 20:00
Friday 23.12.2022 from 9:00 to 20:00
See you soon.
Leila

Leila Kamkar

unread,
Dec 16, 2022, 6:46:53 AM12/16/22
to Aaron L, debr...@mskcc.org, cBioPortal for Cancer Genomics Discussion Group, simon.kr...@tmo-heidelberg.de
Hi Aaron,
Yes, Seems good to me and this is the invitation:

Leila Kamkar is inviting you to a scheduled Zoom meeting.

Topic: OncoPrint_CBioPortal
Time: Dec 19, 2022 05:00 PM Amsterdam, Berlin, Rome, Stockholm, Vienna

Join Zoom Meeting
https://us05web.zoom.us/j/86119565735?pwd=Ujl3d3c4c1M0TEpYZ2w1bk5PWjhpQT09

Meeting ID: 861 1956 5735
Passcode: 4Q8dcT

If there are any prerequisite tasks before the meeting, please let me know.
See you soon.
Leila

Aaron L

unread,
Dec 19, 2022, 2:14:07 PM12/19/22
to Leila Kamkar, debr...@mskcc.org, cBioPortal for Cancer Genomics Discussion Group, simon.kr...@tmo-heidelberg.de
Hi Leila, 

My idea for a temporary workaround did not pan out. 

Luke had the idea of trying the curl statement from inside jshell, which would more closely reproduce the execution setting of the failing request.

Here are some rough instructions to do that:

My wild guess is that something in their firewall is blocking http requests specifically from java clients
my next step would to be to try the curl in jshell
convert the curl here: https://curlconverter.com/java/
Utility for converting cURL commands to code
  1:45 PM
and this would probably be the easiest way to run jshell docker run -it --rm openjdk:9-jdk /bin/jshell
Then just paste in the import statements and the body of the method (exclude the class decl, func decl and brackets





--Aaron

Leila Kamkar

unread,
Dec 22, 2022, 7:15:30 AM12/22/22
to Aaron L, debr...@mskcc.org, cBioPortal for Cancer Genomics Discussion Group
Hi All,

Many thanks for your time and consideration.
We tried the java code in jshell and it couldn't access the oncoKB.
Finally we changed the all proxy settings exclusively for java inside the container in the net.properties file and added cbioportal-session to the list of http.nonProxyHosts. This also improved the performance of the portal.
The good news is that the portal now works smoothly.
I think it is because we have two proxies (Nginx and the organisation proxy).
The nginx setting is set in the portal.properties file and it seems that there is no way to add the second proxy information outside the container.
I wish you and all of you happy holidays and a good start into the new year.
Leila

Aaron L

unread,
Dec 22, 2022, 10:25:56 AM12/22/22
to Leila Kamkar, debr...@mskcc.org, cBioPortal for Cancer Genomics Discussion Group
Hi Leila, 

This is great news.  

So oncokb is working now and all is well?

If so, it would be great to document this as a troubleshooting issue for others.  

--Aaron

Leila Kamkar

unread,
Dec 23, 2022, 4:10:53 AM12/23/22
to Aaron L, debr...@mskcc.org, cBioPortal for Cancer Genomics Discussion Group
Hi Aaron,
Yes, oncokb is working well now. For documentation, as I said in the previous email, inside the container in the net.properties file(for Java) organisation http and https proxy setting was added, also we added cbioportal-session to the list of http.nonProxyHosts
Best,
Leila

Aaron L

unread,
Jan 4, 2023, 10:29:20 AM1/4/23
to Silke Appenzeller, cBioPortal for Cancer Genomics Discussion Group
Hi Silke, 

I believe the nonProxyHosts is a delimited list ( | = delimitter) of the "host" of these services that need to be called from inside the container.   For oncokb, that is likely to be "public.api.oncokb.org" but you should check your portal.properties file 
for oncokb.public_api.url.  Note that it is only the host portion of the url that you need, the bolded part: https://public.api.oncokb.org/api/v1

The same for the session service.  I would assume it's also on localhost, so should be covered by that.  But check (again in portal properties) what the url is for your session service (session.service.url)










On Wed, Jan 4, 2023 at 10:01 AM Silke Appenzeller <silke.ap...@uni-wuerzburg.de> wrote:
Dear Aarin,

happy new year.

I am currently trying to adjust the net.properties - file in the 
docker container as recommended below.

In my file, line 35 is:
http.nonProxyHosts=localhost|127.*|[::1]

but I do not know what to add exactly.

http.nonProxyHosts=cbioportal-session

Does not work.

Do I need to add the docker image? In my case 
cbioportal/cbioportal:4.1.13 or cbioportal/session-service:0.5.0 or 
something completely else?

And do I remove line 35 http.nonProxyHosts=localhost|127.*|[::1] or 
should I keep it?

Thank you very much

Silke


Quoting Aaron L <lisman...@gmail.com>:

> Silke, I wanted to pass on the recent experience of another installer who
> had a similar problem to yours (also in Germany coincidentally).
>
> It turned out they had proxy settings on their server which seem to have
> been specifically blocking http requests made from within java run time.
>
> This is what they sent us:

>
> "We tried the java code in jshell and it couldn't access the oncoKB.
> Finally we changed the all proxy settings exclusively for java inside the
> container in the net.properties file and added cbioportal-session to the
> list of http.nonProxyHosts. This also improved the performance of the
> portal.
> The good news is that the portal now works smoothly.
> I think it is because we have two proxies (Nginx and the organisation
> proxy).
> The nginx setting is set in the portal.properties file and it seems that
> there is no way to add the second proxy information outside the container.
> I wish you and all of you happy holidays and a good start into the new
> year."
>
>
> On Fri, Dec 16, 2022 at 2:45 AM Silke Appenzeller <
> silke.ap...@uni-wuerzburg.de> wrote:
>
>> Hi Aaron,
>>
>> thank you for remembering. Indeed the former. I'll check if this is
>> causing the problem and get back to you to report if this was causing
>> our problem (probably in January).
>>
>> Greetings
>>
>> Silke
>>
>>
>>
>> Quoting Aaron L <lisman...@gmail.com>:
>>
>> > Hi Silke,
>> >
>> > Did you figure this out?   I noticed in your message that you said that
>> > your server is "not connected to the internet."  By that do you mean that
>> > the server cannot call out to the internet?  Or that it is not exposed
>> > publicly? If the former, in order for OncoKB annotation to work, the
>> server
>> > must be able to reach the internet so it can use oncokb api.

>> >
>> >
>> >
>> >
>> > On Thu, Sep 29, 2022 at 4:53 AM Silke Appenzeller <
>> > silke.ap...@uni-wuerzburg.de> wrote:
>> >
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google
>> Groups
>> >> "cBioPortal for Cancer Genomics Discussion Group" group.
>> >> To unsubscribe from this group and stop receiving emails from it, send
>> an
>> >> email to cbioportal+...@googlegroups.com.
>> >> To view this discussion on the web visit
>> >>
>> https://groups.google.com/d/msgid/cbioportal/20220929085300.Horde.bzQBnZtdhbJ-ccXueMSx3eS%40webmail.uni-wuerzburg.de
>> >> .
>> >>
>>
>>
>>

Leila Kamkar

unread,
Dec 23, 2023, 3:37:27 AM12/23/23
to cBioPortal for Cancer Genomics Discussion Group
Hi Silke, 
My apologies for the delayed response—I somehow missed your message. However, the information could still be useful for documentation purposes.
For both http and https proxy settings in net.properties - file:
http.proxyHost=Organisation-proxy
http.proxyPort=Organisation-proxyPort
http.nonProxyHosts=localhost|127.*|[::1]|portal address|cbioportal-session
Kind regards,
Leila
Reply all
Reply to author
Forward
0 new messages