Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extremely slow startup, potentially due to Cortex XDR interactions? #172

Open
meowcat opened this issue Jul 3, 2024 · 1 comment
Open
Labels
help wanted An issue that is an help request and not really a bug or feature request

Comments

@meowcat
Copy link

meowcat commented Jul 3, 2024

On my work computer on Windows 10, ./sirius --help (or any other way to start SIRIUS, such as the GUI) takes several minutes (>6 min, see log below).
On my (much less powerful) home computer on Windows 10, the same takes 15 seconds.

I suspect that this has something to do with the Cortex XDR system https://www.paloaltonetworks.com/cortex/cortex-xdr protecting our computers; but I can't say for sure. Cortex uses some CPU but there is no useful info there. Now I don't know how much that is a SIRIUS problem but it's certainly a problem.

By the way, the user gets asked for firewall permissions; are those necessary or can one safely say no to all? If necessary, that means every user needs admin rights?

$ ./sirius --help
Jul 03, 2024 10:11:05 AM org.apache.commons.beanutils.FluentPropertyBeanIntrospector introspect
INFO: Error when creating PropertyDescriptor for public final void org.apache.commons.configuration2.AbstractConfiguration.setProperty(java.lang.String,java.lang.Object)! Ignoring this property.
Jul 03, 2024 10:11:09 AM de.unijena.bioinf.ms.frontend.core.ApplicationCore <clinit>
INFO: Sirius Workspace Successfull initialized at: C:\Users\stravsmi\.sirius-6.0
Jul 03, 2024 10:11:09 AM de.unijena.bioinf.ms.frontend.core.ApplicationCore <clinit>
INFO: You run SIRIUS 6.0.0 on windows 10_amd64
Jul 03, 2024 10:11:09 AM de.unijena.bioinf.ms.frontend.core.ApplicationCore <clinit>
INFO: You run SIRIUS in 'SERVICE' mode.
Jul 03, 2024 10:11:10 AM de.unijena.bioinf.ms.frontend.core.ApplicationCore <clinit>
INFO: Sirius was compiled with the following ILP solvers: GLPK-v1.7.0 (included), Gurobi-v9.1.1, CPLEX-v12.7.1, COIN-OR-v2.10.8.2
Jul 03, 2024 10:11:10 AM de.unijena.bioinf.ms.frontend.core.ApplicationCore <clinit>
INFO: Treebuilder priorities loaded from 'sirius.properties' are: [CLP, GUROBI, CPLEX]
Jul 03, 2024 10:11:10 AM de.unijena.bioinf.ms.frontend.core.ApplicationCore <clinit>
INFO: CPU check done. 4 cores that handle 8 threads were found.
Jul 03, 2024 10:11:14 AM de.unijena.bioinf.ChemistryBase.jobs.SiriusJobs getGlobalJobManager
INFO: Job manager successful initialized with 6 CPU thread(s) and 2 IO thread(s).
Jul 03, 2024 10:11:14 AM de.unijena.bioinf.rest.ProxyManager decorateWithPoolSettings
INFO: Starting http Client with MaxPerRoute=3 / maxTotal=5 (CPU-Threads=6).
Jul 03, 2024 10:11:36 AM de.unijena.bioinf.ms.frontend.core.ApplicationCore <clinit>
INFO: Web API initialized.
Jul 03, 2024 10:11:36 AM de.unijena.bioinf.ms.middleware.SiriusMiddlewareApplication main
INFO: Starting Application Core
Jul 03, 2024 10:11:42 AM de.unijena.bioinf.ms.frontend.Run parseArgs
INFO: Running with following arguments: [--help]
Jul 03, 2024 10:13:40 AM org.springframework.boot.StartupInfoLogger logStarting
INFO: Starting SiriusMiddlewareApplication v6.0.0 using Java 21.0.3 with PID 5024 (C:\Software\sirius-6.0.0-win64-release\sirius\app\sirius_rest_service-6.0.0-boot.jar started by stravsmi in C:\Software\sirius-6.0.0-win64-release\sirius)
Jul 03, 2024 10:13:40 AM org.springframework.boot.SpringApplication logStartupProfileInfo
INFO: No active profile set, falling back to 1 default profile: "default"
Jul 03, 2024 10:16:27 AM org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory getWebServer
INFO: Server initialized with port: 0
Jul 03, 2024 10:16:27 AM org.eclipse.jetty.server.Server doStart
INFO: jetty-12.0.6; built: 2024-01-30T02:43:24.387Z; git: 78ab6e6ba163f89cdd97f2ae0283fbb5e371cfaf; jvm 21.0.3+9-LTS
Jul 03, 2024 10:16:28 AM org.eclipse.jetty.ee10.servlet.ServletContextHandler$ServletContextApi log
INFO: Initializing Spring embedded WebApplicationContext
Jul 03, 2024 10:16:28 AM org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext prepareWebApplicationContext
INFO: Root WebApplicationContext: initialization completed in 153877 ms
Jul 03, 2024 10:16:36 AM org.eclipse.jetty.session.DefaultSessionIdManager doStart
INFO: Session workerName=node0
Jul 03, 2024 10:16:36 AM org.eclipse.jetty.server.handler.ContextHandler doStart
INFO: Started osbwej.JettyEmbeddedWebAppContext@294ab038{application,/,b=[file:/C:/Users/stravsmi/AppData/Local/Temp/jetty-docbase.0.17798025399828615248/, URLResource@E1A12F79(jar:nested:///C:/Software/sirius-6.0.0-win64-release/sirius/app/sirius_rest_service-6.0.0-boot.jar/!BOOT-INF/lib/swagger-ui-5.10.3.jar!/META-INF/resources/)],a=AVAILABLE,h=oeje10s.SessionHandler@55849272{STARTED}}
Jul 03, 2024 10:16:36 AM org.eclipse.jetty.ee10.servlet.ServletContextHandler doStart
INFO: Started osbwej.JettyEmbeddedWebAppContext@294ab038{application,/,b=[file:/C:/Users/stravsmi/AppData/Local/Temp/jetty-docbase.0.17798025399828615248/, URLResource@E1A12F79(jar:nested:///C:/Software/sirius-6.0.0-win64-release/sirius/app/sirius_rest_service-6.0.0-boot.jar/!BOOT-INF/lib/swagger-ui-5.10.3.jar!/META-INF/resources/)],a=AVAILABLE,h=oeje10s.SessionHandler@55849272{STARTED}}
Jul 03, 2024 10:16:36 AM org.eclipse.jetty.server.Server doStart
INFO: Started oejs.Server@27bc2650{STARTING}[12.0.6,sto=0] @339713ms
Jul 03, 2024 10:16:37 AM de.unijena.bioinf.ms.middleware.service.databases.ChemDbServiceImpl <init>
INFO: Scanning for custom databases...
Jul 03, 2024 10:16:39 AM de.unijena.bioinf.ms.middleware.service.databases.ChemDbServiceImpl <init>
INFO: ...found:
Jul 03, 2024 10:16:52 AM org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver <init>
INFO: Exposing 1 endpoint(s) beneath base path '/actuator'
Jul 03, 2024 10:16:56 AM org.springframework.boot.autoconfigure.web.servlet.WelcomePageHandlerMapping <init>
INFO: Adding welcome page: ServletContext resource [/index.html]
Jul 03, 2024 10:17:46 AM org.eclipse.jetty.ee10.servlet.ServletContextHandler$ServletContextApi log
INFO: Initializing Spring DispatcherServlet 'dispatcherServlet'
Jul 03, 2024 10:17:46 AM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: Initializing Servlet 'dispatcherServlet'
Jul 03, 2024 10:17:46 AM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: Completed initialization in 2 ms
Jul 03, 2024 10:17:47 AM org.eclipse.jetty.server.AbstractConnector doStart
INFO: Started ServerConnector@6296c184{HTTP/1.1, (http/1.1)}{0.0.0.0:63894}
Jul 03, 2024 10:17:47 AM org.springframework.boot.web.embedded.jetty.JettyWebServer start
INFO: Jetty started on port 63894 (http/1.1) with context path '/'
SIRIUS Service is running on port: 63894
SIRIUS Service started successfully!
Jul 03, 2024 10:17:47 AM org.springframework.boot.StartupInfoLogger logStarted
INFO: Started SiriusMiddlewareApplication in 354.944 seconds (process running for 410.499)
Usage: sirius [-hV] [--noCite] [--recompute] [--buffer=<initialInstanceBuffer>]
              [--cores=<numOfCores>] [--log=<logLevel>] [--maxmz=<maxMz>]
              [--workspace=<workspace>] [[-o=<outputProjectLocation>]
              [--update-fingerprint-version]] [[[--allow-ms1-only]
              -i=<inputPath>[,<inputPath>...] [-i=<inputPath>[,
              <inputPath>...]]... [--ignore-formula]] [-z=<parentMz>
              [-1=<ms1File>[,<ms1File>...]] [--adduct=<ionType>] -2=<ms2File>[,
              <ms2File>...] [-f=<formula>]]...] [COMMAND]
  -h, --help                Show this help message and exit.
  -V, --version             Print version information and exit.
      --log, --loglevel=<logLevel>
                            Set logging level of the Jobs SIRIUS will execute.
                              Valid values: SEVERE, WARNING, INFO, FINER, ALL
                              Default: WARNING
      --cores, --threads, --processors=<numOfCores>
                            Number of simultaneous worker thread to be used for
                              compute intense workload. If not specified SIRIUS
                              chooses a reasonable number based you CPU specs.
      --buffer, --instance-buffer=<initialInstanceBuffer>
                            Number of instances that will be loaded into the
                              Memory. A larger buffer ensures that there are
                              enough instances available to use all cores
                              efficiently during computation. A smaller buffer
                              saves Memory. To load all instances immediately
                              set it to -1. Default (numeric value 0): 3 x
                              --cores. Note that for <DATASET_TOOLS> the
                              compound buffer may have no effect because this
                              tools may have to load compounds simultaneously
                              into the memory.
                              Default: 0
      --workspace=<workspace>
                            Specify sirius workspace location. This is the
                              directory for storing Property files, logs,
                              databases and caches.  This is NOT for the
                              project-space that stores the results! Default is
                              $USER_HOME/.sirius-<MINOR_VERSION>
      --recompute           Recompute results of ALL tools where results are
                              already present. Per default already present
                              results will be preserved and the instance will
                              be skipped for the corresponding Task/Tool
      --maxmz=<maxMz>       Only considers compounds with a precursor m/z lower
                              or equal [--maxmz]. All other compounds in the
                              input will be skipped.
                              Default: Infinity
      --noCite, --noCitations, --no-citations
                            Do not write summary files to the project-space
Specify OUTPUT Project-Space:
  -o, -p, --output, --project=<outputProjectLocation>
                            Specify the project-space to write into. If no
                              [--input] is specified it is also used as input.
                              For compression use the File ending .zip or .
                              sirius.
      --update-fingerprint-version
                            Updates Fingerprint versions of the input project
                              to the one used by this SIRIUS version.
                            WARNING: All Fingerprint related results (CSI:
                              FingerID, CANOPUS) will be lost!
Specify multi-compound inputs (.ms, .mgf, .mzML/.mzXml, .sirius):
  -i, --input=<inputPath>[,<inputPath>...]
                            Specify the input in multi-compound input formats:
                              Preprocessed mass spectra in .ms or .mgf file
                              format or LC/MS runs in .mzML/.mzXml format but
                              also any other file type e.g. to provide input
                              for STANDALONE tools.
      --ignore-formula      ignore given molecular formula if present in .ms or
                              .mgf input files.
      --allow-ms1-only      Allow MS1 only data to be imported.
Specify generic inputs (CSV) on per compound level:
  -1, --ms1=<ms1File>[,<ms1File>...]
                            MS1 spectra files
  -2, --ms2=<ms2File>[,<ms2File>...]
                            MS2 spectra files
  -z, --mz, --precursor, --parentmass=<parentMz>
                            The mass of the parent ion for the specified ms2
                              spectra
      --adduct, --ionization=<ionType>
                            Specify the adduct for this compound
                              Default: [M+?]+
  -f, --formula=<formula>   Specify the neutralized formula of this compound.
                              This will be used for tree computation. If given
                              no mass decomposition will be performed.
Commands:
  config
                                            <CONFIGURATION> Override all
                                              possible default configurations
                                              of this toolbox from the command
                                              line.


  custom-db, DB                             <STANDALONE> Generate a custom
                                              searchable structure/spectral
                                              database. Import multiple files
                                              with compounds into this DB.


  similarity                                <STANDALONE> Computes the
                                              similarity between all compounds
                                              in the dataset and outputs a
                                              matrix of similarities.


  decomp, mass-decomposition                <STANDALONE> Small tool to
                                              decompose masses with given
                                              deviation, ionization, chemical
                                              alphabet and chemical filter.


  mgf-export, MGF                           <STANDALONE> Exports the spectra of
                                              a given input as mgf.


  fingerprinter, FP                         <STANDALONE> Compute SIRIUS
                                              compatible fingerprints from
                                              PubChem standardized SMILES in
                                              tsv format.


  service, rest, REST                       <STANDALONE> Starts SIRIUS as a
                                              background (REST) service that
                                              can be requested via a REST-API.


  login                                     <STANDALONE> Allows a user to login
                                              for SIRIUS Webservices (e.g. CSI:
                                              FingerID or CANOPUS) and securely
                                              store a personal access token.


  settings                                  <STANDALONE> Configure persistent
                                              (technical) settings of SIRIUS (e.
                                              g. ProxySettings or ILP Solver).


  install-autocompletion                    <INSTALL> generates and installs an
                                              Autocompletion-Script with all
                                              subcommands. Default installation
                                              is for the current user.


  summaries, write-summaries, W             <STANDALONE, POSTPROCESSING> Write
                                              Summary files from a given
                                              project-space into the given
                                              project-space or a custom
                                              location.


  lcms-align, A                             <PREPROCESSING> Align and merge
                                              compounds of multiple LCMS Runs.
                                              Use this tool if you want to
                                              import from mzML/mzXml.


  formulas, trees, formula, sirius          <COMPOUND TOOL> Identify molecular
                                              formula for each compound
                                              individually using fragmentation
                                              trees and isotope patterns.


  structures, structure-db-search, structure
                                            <COMPOUND TOOL> Search in molecular
                                              structure db for each compound
                                              Individually using CSI:FingerID
                                              structure database search.


  fingerprints, fingerprint                 <COMPOUND TOOL> Predict molecular
                                              fingerprint from MS/MS and
                                              fragmentation trees for each
                                              compound individually using CSI:
                                              FingerID fingerprint prediction.


  zodiac, rerank-formulas                   <DATASET TOOL> Identify Molecular
                                              formulas of all compounds in a
                                              dataset together using ZODIAC.


  classes, canopus, compound-classes        <COMPOUND TOOL> Predict compound
                                              categories for each compound
                                              individually based on its
                                              predicted molecular fingerprint
                                              (CSI:FingerID) using CANOPUS.


  spectra-search, library-search            <COMPOUND TOOL> Computes the
                                              similarity between all
                                              compounds/features in the
                                              project-space (queries) one vs
                                              all spectra in the selected
                                              databases.


  denovo-structures, msnovelist             <COMPOUND TOOL> Predict MsNovelist
                                              compound candidates and compare
                                              them against molecular
                                              fingerprint using CSI:FingerID
                                              scoring method.


Destroy Project Provider Service...
Destroy Project Provider Service DONE
Destroy Compute Service...
Destroy Compute Service DONE
mfleisch pushed a commit that referenced this issue Aug 2, 2024
…mono-repo' into 'master'

Resolve "Merge sirius-libs into sirius-frontend to create a mono repo."

Closes #300, #132, #126, #123, #128, #125, #127, #124, #122, #121, #120, #109, #115, #106, #99, #112, #111, #61, #110, #103, #108, #107, #104, #221, #102, #98, #198, #92, #94, #93, #85, #84, #87, #76, #56, #73, #32, #70, #65, #43, #63, #33, #53, #58, #59, #57, #54, #52, #41, #47, #50, #49, #48, #39, #46, #37, #38, #27, #34, #22, #31, #28, #18, #23, #21, #19, #9, #240, #280, #254, #242, #246, #238, #156, #25, #155, #189, #172, #154, #11, #6, #16, and #4

See merge request bright-giant/sirius/sirius-frontend!106
@mfleisch
Copy link
Contributor

mfleisch commented Sep 4, 2024

Hey Michele,
I do not know much about this. So just a few guesses.

  • SIRIUS 6 release before 6.0.4 where not signed properly. Since 6.0.4 we provide signe msi installers again which might convince the security tools to be less protective. But the msi installer also needs admin rights.
  • SIRIUS needs to connect the web service to work properly. so this connection needs to be allowed. details can be looked up here: https://v6.docs.sirius-ms.io/admins/#connections
  • can an admin maybe add some exception rule to the Cortex XDR system, or temporarily disable it to verify that this is indeed the problem?

@mfleisch mfleisch added the help wanted An issue that is an help request and not really a bug or feature request label Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted An issue that is an help request and not really a bug or feature request
Projects
None yet
Development

No branches or pull requests

2 participants