cytoscape / cytoscape.js

Graph theory (network) library for visualisation and analysis
https://js.cytoscape.org
MIT License
10.11k stars 1.64k forks source link

Unable to Start on Linux Due to Possible Java Version and Karaf/Maven Issue #3144

Closed jameswilsenach closed 1 year ago

jameswilsenach commented 1 year ago

I have been using Cytoscape 3.9.0 in Ubuntu 20.04 for some time but have managed to reproduce this bug in both 3.8.0 and 3.10.0 using fresh installs. This bug which has possibly also been documented here:

https://stackoverflow.com/questions/76755716/cytoscape-error-error-installing-bundle-listed-in-startup-properties

However, the suggested fix does not appear to work for my case. The error occurs when attempting to run cytoscape.sh either from commandline or desktop.

The terminal error output is as follows:

org.osgi.framework.BundleException: Unable to cache bundle: mvn:org.cytoscape.distribution/third-party/3.8.0 at org.apache.felix.framework.Felix.installBundle(Felix.java:3013) at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:167) at org.eclipse.equinox.internal.region.BundleIdBasedRegion.installBundle0(BundleIdBasedRegion.java:117) at org.eclipse.equinox.internal.region.BundleIdBasedRegion.installBundleAtLocation(BundleIdBasedRegion.java:97) at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.installBundle(BundleInstallSupportImpl.java:135) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.installBundle(FeaturesServiceImpl.java:1134) at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:871) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1058) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:994) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.util.zip.ZipException: Invalid CEN header (invalid zip64 extra data field size) at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1736) at java.base/java.util.zip.ZipFile$Source.checkExtraFields(ZipFile.java:1254) at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1701) at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1430) at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1393) at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:742) at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:859) at java.base/java.util.zip.ZipFile.(ZipFile.java:257) at java.base/java.util.zip.ZipFile.(ZipFile.java:186) at java.base/java.util.zip.ZipFile.(ZipFile.java:200) at org.apache.felix.framework.util.SecureAction.openZipFile(SecureAction.java:650) at org.apache.felix.framework.util.WeakZipFileFactory$WeakZipFile.(WeakZipFileFactory.java:187) at org.apache.felix.framework.util.WeakZipFileFactory$WeakZipFile.(WeakZipFileFactory.java:169) at org.apache.felix.framework.util.WeakZipFileFactory.create(WeakZipFileFactory.java:72) at org.apache.felix.framework.cache.JarRevision.(JarRevision.java:84) at org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:872) at org.apache.felix.framework.cache.BundleArchive.reviseInternal(BundleArchive.java:550) at org.apache.felix.framework.cache.BundleArchive.(BundleArchive.java:153) at org.apache.felix.framework.cache.BundleCache.create(BundleCache.java:277) at org.apache.felix.framework.Felix.installBundle(Felix.java:3009) ... 12 more org.apache.karaf.features.core[org.apache.karaf.features.internal.service.BootFeaturesInstaller] : Error installing boot features org.osgi.framework.BundleException: Unable to cache bundle: mvn:org.cytoscape.distribution/third-party/3.8.0 at org.apache.felix.framework.Felix.installBundle(Felix.java:3013) at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:167) at org.eclipse.equinox.internal.region.BundleIdBasedRegion.installBundle0(BundleIdBasedRegion.java:117) at org.eclipse.equinox.internal.region.BundleIdBasedRegion.installBundleAtLocation(BundleIdBasedRegion.java:97) at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.installBundle(BundleInstallSupportImpl.java:135) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.installBundle(FeaturesServiceImpl.java:1134) at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:871) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1058) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:994) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.util.zip.ZipException: Invalid CEN header (invalid zip64 extra data field size) at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1736) at java.base/java.util.zip.ZipFile$Source.checkExtraFields(ZipFile.java:1254) at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1701) at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1430) at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1393) at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:742) at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:859) at java.base/java.util.zip.ZipFile.(ZipFile.java:257) at java.base/java.util.zip.ZipFile.(ZipFile.java:186) at java.base/java.util.zip.ZipFile.(ZipFile.java:200) at org.apache.felix.framework.util.SecureAction.openZipFile(SecureAction.java:650) at org.apache.felix.framework.util.WeakZipFileFactory$WeakZipFile.(WeakZipFileFactory.java:187) at org.apache.felix.framework.util.WeakZipFileFactory$WeakZipFile.(WeakZipFileFactory.java:169) at org.apache.felix.framework.util.WeakZipFileFactory.create(WeakZipFileFactory.java:72) at org.apache.felix.framework.cache.JarRevision.(JarRevision.java:84) at org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:872) at org.apache.felix.framework.cache.BundleArchive.reviseInternal(BundleArchive.java:550) at org.apache.felix.framework.cache.BundleArchive.(BundleArchive.java:153) at org.apache.felix.framework.cache.BundleCache.create(BundleCache.java:277) at org.apache.felix.framework.Felix.installBundle(Felix.java:3009) ... 12 more

This error may relate, as the post notes, to version inconsistencies between the Linux and Windows releases. I have attempted to use both Java 11 and 17 and pointed Cytoscape to it by explicitly specifying the jvm path in my ~/.bashrc using the JAVA_HOME variable.

I have also attempted to update versions of maven/karaf in case these cause any of the bundling issues as well as deleted the cache in

..../CytoscapeConfiguration/3/karaf_data/cache/

Lastly, I tried deleting the entire CytoscapeConfiguration directory but the bug persisted.

maxkfranz commented 1 year ago

@jameswilsenach, the desktop team is working on resolving this issue. There will be a fix in 3.10.1.

You may be able to work around the issue by putting this in your bashrc (or just run it as a one-off before starting Cytoscape):

export EXTRA_JAVA_OPTS="-Djdk.util.zip.disableZip64ExtraFieldValidation=true" 

In future, the best and fastest place to report Cytoscape desktop issues is here: https://cytoscape.org

Thanks for your feedback