-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathcommon_issues.html
310 lines (275 loc) · 16.4 KB
/
common_issues.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Common Issues</title>
<meta name="description" content="Common issues and solutions for running Cytoscape">
<meta name="author" content="Keiichiro Ono">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="js/UAParser/ua-parser.0.7.0.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="css/main.bootstrap.css" rel="stylesheet">
</head>
<body>
<div class="white">
<div class="container centering">
<h1 class="belt">Common Issues</h1>
<h3 class="centering">
Here are some common problems encountered while running Cytoscape, and with instructions on how to solve
them.
</h3>
</div>
</div>
</div>
<div class="white">
<div class="container left">
<a name='zipvalidation'></a>
<h3 class="belt"><a href='#zipvalidation'>Inability to start Cytoscape - Invalid CEN header (Java 11.0.8 or Java 17.0.20)</a></h3>
<b>Behavior</b>
<p>
Cytoscape <b>3.9.x</b> fails to start if <b>Java 11.0.8</b> is used.<br/>
Cytoscape <b>3.10.0</b> fails to start if <b>Java 17.0.20</b> is used.
</p>
<p>
Users may see the following error in output (for command line invocation):</br>
<i>Caused by: java.util.zip.ZipException: Invalid CEN header (invalid zip64 extra data field size)</i>
</p>
<p>
The error is due to changes in validation of zip files. <a target="_blank" href="https://support.oracle.com/knowledge/Middleware/2964305_1.html">See here</a>
</p>
<b>Work around</b>
<p>
On Linux/Mac OS the work around is to run the following <code>export</code> command in the terminal before invoking <code>cytoscape.sh</code>
<p/>
<code>export EXTRA_JAVA_OPTS="-Djdk.util.zip.disableZip64ExtraFieldValidation=true"</code>
</p>
</div>
</div>
<div class="white">
<div class="container left">
<a name='log4shell'></a>
<h3 class="belt"><a href='#log4shell'>Log4j Vulnerability</a></h3>
<p>
We have screened all log4j dependencies in the core Cytoscape application, including core apps, as well
as the hundreds of apps in the Cytoscape App Store. This is our current assessment and plan of action:
</p>
<p>
The typical pattern from this exploit is through HTTP requests to a web server. The CyREST component of
Cytoscape does not use a vunlerable version of log4j. That's good news!
As a standalone, desktop application the only other
exposure is through user-directed actions, e.g., importing a file from online.
<b>Please use caution with importing any type of network or data files into Cytoscape.</b>
</p>
<p>
We have released a new 3.9.1 version of Cytoscape which addresses all known log4j issues.
In more detail, we updated log4j dependencies in Cytoscape to 2.17.1 via pax-logging (1.11.13).
This update fixes the following vulnerabilities: CVE-2021-4104, CVE-2021-45046, CVE-2021-44228, and CVE-2021-44832.
</p>
<p>
We have also worked with app authors to produce updated references in their project packages.
Conveniently, the apps using log4j via the ops4j pax package will automatically adopt the latest version provided
by the 3.9.1 release. Nevertheless, we are working with app authors to update all log4j dependency references in
their projects to avoid even the appearance of vulnerability.
</p>
<p>
After the release of Cytoscape 3.9.1, we identified another log4j component that uses an old version of Log4J 1.
To our knowledge, this component is *not* vulnerable to any of the known log4j 1.x attacks since it includes it's
own log4.properties file that does not use any of the vulnerable logging mechanisms. Nevertheless, in an abundance
of caution, we have created a version of this component that specifically strips out all of the vulnerable classes,
including JMSSink.class (fixes CVE-2022-23302), JMSAppender.class (fixes CVE-2019-17571), SocketServer.class (fixes CVE-2019-17571),
JDBCAppender.class (fixes CVE-2022-23305), SMTPAppender.class (for completeness), and all of the embedded Chainsaw classes
(fixes CVE-2020-9493). None of these classes were used for the indicated component, and based on our reading of the CVE's
referenced above, the included log4j.properties file rendered these vulnerabilities moot. However, the replacement component,
with the noted classes removed is available for download at:
<a href="https://github.com/cytoscape/cytoscape.github.com/raw/master/data/uk.ac.ebi.enfin.mi.cluster.micluster-1.6.jar"
target="_blank">uk.ac.ebi.enfin.mi.cluster.micluster-1.6.jar</a>. Put this jar file in the directory
/Applications/Cytoscape_v3.9.1/framework/system/cytoscape-temp/uk.ac.ebi.enfin.mi.cluster.micluster/1.6 on a Mac,
\Program Files\Cytoscape_v3.9.1\framework\system\cytoscape-temp\uk.ac.ebi.enfin.mi.cluster.micluster\1.6 on a Windows machine,
or /opt/Cytoscape_v3.9.1/framework/system/cytoscape-temp/uk.ac.ebi.enfin.mi.cluster.micluster/1.6/ on Linux. Note that
these are the default locations, and if you installed Cytoscape 3.9.1 in an alternative location, then you should
substitute the appropriate path.
</p>
<br/>
</div>
</div>
<div class="white">
<div class="container left">
<a name='opencl'></a>
<h3 class="belt"><a href='#opencl'>Inability to start on Mac OS</a></h3>
<p>
Recent updates of Mac OS have caused the OpenCL based Cytoscape Apps to fail on some machines. If this is the case, you can disable OpenCL with the following method:
</p>
<p>
Download the <a href="disable-opencl.dummy">disable-opencl.dummy</a> file to your <code>CytoscapeConfiguration</code> directory. You can browse to this directory from the <i>Home</i> location on your Mac. After you have downloaded it, your folder should look similar to the screenshot below.
</p>
<img src="images/common_issues/disable-opencl.png" style="display: block; margin-left:auto; margin-right:auto;" />
<br/>
<br/>
<p>
Alternatively, if you are comfortable using terminals, you can create this file using the following command:<code>touch ~/CytoscapeConfiguration/disable-opencl.dummy</code>
</p>
<br/>
</div>
</div>
<div class="white">
<div class="container left">
<a name='basic'></a>
<h3 class="belt"><a href='#basic'>Basic Troubleshooting</a></h3>
<p>First, follow the steps outlined in our <a href="./troubleshooting.html">Troubleshooting page</a></p>
<p>If you’ve run the System Checker script on that page, please include the output from it in any bug
reports or help requests. It will contain important information about your configuration that can help
diagnose the problem.</p>
</div>
</div>
</div>
<div class="white">
<div class="container left">
<a name='loginfo'></a>
<h3 class="belt"><a href='#loginfo'>Finding Additional Log Info</a></h3>
<p>Sometimes, additional log info can be needed to diagnose Cytoscape problems. There are two sources of log
information that can be further analyzed.</p>
<h4>Console Output</h4>
<p> This is console output from running Cytoscape. You will need to open a terminal in your operating system
and copy any output you see produced.</p>
<ul>
<li><b>Windows</b>: Open a command line terminal (follow instructions here). Run cytoscape.bat, which is
normally found here: <code>C:\Program Files\Cytoscape_v3.x.y\cytoscape.bat</code> </li>
<li><b>Mac</b>: Open a command line terminal (follow instructions here). Run cytoscape.sh, which is
normally found here: <code>/Applications/Cytoscape_v3.8.0/cytoscape.sh</code></li>
<li><b>Linux</b>: Open a command line terminal. Run cytoscape.sh, which is normally found here:
<code>~/Cytoscape_v3.x.y/cytoscape.sh</code></li>
</ul>
<h4>Framework Log</h4>
<p> This is a log file generated automatically by running Cytoscape. It is normally located in the following
places.</p>
<ul>
<li><b>Windows</b>: <code>C:\Users\YourUserName\CytoscapeConfiguration\3\framework-cytoscape.log</code>
</li>
<li><b>Mac or Linux</b>: <code>~\CytoscapeConfiguration\3\framework-cytoscape.log</code></li>
</ul>
</div>
</div>
</div>
<div class="white">
<div class="container left">
<a name='java_home'></a>
<h3 class="belt"><a href='#java_home'>Setting JAVA_HOME</a></h3>
<h4>Windows</h4>
<h5><b>Using Windows Settings</b></h5>
<ol>
<li>
<p>Locate your Java installation directory</p>
<p>If you didn't change the path during installation, it'll be something like
<code>C:\Program Files\Java\jdk1.8.0_65</code></p>
<p>You can also type <code>where java</code> at the command prompt.</p>
</li>
<li>
<p>Do one of the following:</p>
<ul>
<li><b>Windows 7</b> Right click <code>My Computer</code> and select
<code>Properties > Advanced </code></li>
<li><b>Windows 8</b> Go to <code>Control Panel > System > Advanced System Settings</code></li>
<li><b>Windows 10</b> Search for <code>Environment Variables</code> then select
<code>Edit the system environment variables</code></li>
</ul>
</li>
<li>Click the <code>Environment Variables button.</code></li>
<li>Under <code>System Variables</code>, click <code>New</code>.</li>
<li>In the <code>Variable Name</code> field, enter <code>JAVA_HOME</code></li>
<li>
<p>In the <code>Variable Value</code> field, enter your JDK or JRE installation path.</p>
<p>Example: <code>C:\Progra~1\Java\adoptopenjdk-11-hotspot-amd64</code>*</p>
<p><i>*Note for Windows users on 64-bit systems:
<ul>
<li>Progra~1 = 'Program Files'</li>
<li>Progra~2 = 'Program Files(x86)'</li>
</ul>
</i> </p>
</li>
<li>Click <code>OK</code> and <code>Apply Changes</code> as prompted</li>
</ol>
<p>You'll need to close and re-open any command windows that were open before you made these changes, as
there's no way to reload environment variables from an active command prompt. If the changes don't take
effect after reopening the command window, restart Windows.</p>
<h5><b>Using Windows Command Line</b></h5>
<p>If you would prefer to set the JAVA_HOME (or JRE_HOME) variable via the command line:</p>
<ol>
<li>Open Command Prompt (make sure you <code>Run as administrator</code> so you're able to add a system
environment variable).</li>
<li>
<p>Set the value of the environment variable to your JDK (or JRE) installation path as follows:</p>
<p><code>setx -m JAVA_HOME "C:\Progra~1\Java\jdk1.8.0_XX"</code></p>
<p>If the path contains spaces, use the shortened path name.</p>
</li>
<li>
<p>Restart Command Prompt to reload the environment variables then use the following command to
check the it's been added correctly. </p>
<p><code>echo %JAVA_HOME%</code></p>
<p>You should see the path to your JDK (or JRE) installation. </p>
</li>
</ol>
<h4>Mac or Linux</h4>
<ol>
<li>Open Terminal</li>
<li>Confirm you have JDK by typing <code>which java</code>. It should show something like
<code>/usr/bin/java</code>.</li>
<li>Check you have the needed version of Java, by typing <code>java -version</code>.</li>
<li>
<p><code>JAVA_HOME</code> is essentially the full path of the directory that contains a
sub-directory <code>bin</code>, which contains the JVM. It generally looks like this:
<code>/Library/Java/Home</code></p>
<p>Set <code>JAVA_HOME </code> to this path using this command:
<code>export JAVA_HOME=/Library/Java/Home</code></p>
</li>
<li>Use <code>echo $JAVA_HOME</code> to confirm the path</li>
<li>You should now be able to run your application</li>
</ol>
<p>This only sets <code>JAVA_HOME</code> for the current session. To persistently set it, follow these
steps:</p>
<ol>
<li>Open Terminal</li>
<li>Type <code>emacs .profile</code> to edit your profile.
<li>
<p>Add this to the end of the .profile file:</p>
<p><code>
JAVA_HOME=/Library/Java/Home<br/>
export JAVA_HOME;
</code></p>
</li>
<li>Save and exit emacs; use the following key combinations and follow any prompts: <code>ctrl-x</code>,
<code>ctrl-s</code>; <code>ctrl-x</code>, <code>ctrl-c</code></li>
<li>
<p>Open a new Terminal window and type: <code>$JAVA_HOME/bin/java -version</code></p>
<p>You should see something like the following: </p>
<p><code>openjdk version "11.0.9" 2020-10-20<br/>
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9+11)<br/>
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9+11, mixed mode)
</code></p>
</li>
</ol>
</div>
</div>
</div>
<div class="white">
<div class="container left">
<a name='highdpi'></a>
<h3 class="belt"><a href='#highdpi'>Scaling Cytoscape on a High DPI Monitor</a></h3>
<p>
Cytoscape may not scale well on High DPI monitors. If this is the case and you are running on a Linux
machine, you can add the following line to the <code>cytoscape.sh</code> file:
</p>
<p>
<code>export GDK_SCALE=2</code>
</p>
<p>This works on Ubuntu 18.04 with GNOME/Cinnamon. However, scaling is not respected if one starts the
application via the Cytoscape.desktop application shortcut, only if launched from the terminal.</p>
</div>
</div>
</div>
<footer></footer>
<script src="js/platform_checker.js"></script>
<script src="js/setup_page.js"></script>
</body>
</html>