This page tracks outstanding problems with
Note that some issues may be related to production (i.e. the same). Note also I created my own development VM in just an hour, so I don't have to mess with the fallback while others are using it.
These should no longer happen. It required relaxing timeouts on nginx and gunicorn.
URL error on result of
GeneNetwork 2.11-rc2 https://fallback.genenetwork.org/run_mapping (10:01AM UTC Mar 22, 2024) Traceback (most recent call last): File "/gnu/store/a39cgbdawj9vp24nsz9q25sf9g5vda7c-profile/lib/python3.10/site-packages/requests/models.py", line 434, in prepare_url scheme, auth, host, port, path, query, fragment = parse_url(url) File "/gnu/store/a39cgbdawj9vp24nsz9q25sf9g5vda7c-profile/lib/python3.10/site-packages/urllib3/util/url.py", line 397, in parse_url return six.raise_from(LocationParseError(source_url), None) File "<string>", line 3, in raise_from urllib3.exceptions.LocationParseError: Failed to parse: http://localhost:8893api/rqtl/compute
The error points out a missing slash in the local URL: http://localhost:8893api/rqtl/compute
Grepping machines we get:
gn3-port 8893 ("GN3_LOCAL_URL" ,(string-append "http://localhost:" (number->string gn3-port)))
On production we set a trailing slash
GN3_LOCAL_URL = "http://localhost:8081/"
and in the code we mostly see another addition of the slash - except for this particular link. Arguably the slash is not part of the URL prefix (it is part of the path), so I think setting GN3_LOCAL_URL without the trailing slash is preferred. See also
After adding the slash to GN3 URLs (see above) led to the next error:
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
This looks similar to the earlier documented
suggesting a missing path for R. In the container log GN3 actually gives the error
2024-03-24 08:02:24 return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) 2024-03-24 08:02:24 File "/gnu/store/yi76sybwqql4ky60yahv91z57srb2fr0-profile/lib/python3.10/site-packages/gn3/api/rqtl.py", line 25, in compute 2024-03-24 08:02:24 raise FileNotFoundError 2024-03-24 08:02:24 FileNotFoundError
Now two things are bad here becuase there is no context other than the error lines! For FileNotFound pass in the filename as suggested here:
Patched in
That should help clarify the missing path or file.
File "/export/source/fallback-debug/genenetwork3/gn3/fs_helpers.py", line 21, in assert_paths_exist raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), path) FileNotFoundError: [Errno 2] No such file or directory: '/tmp/gn2/83f0831af5911ab6dc62cbbd37d13741.csv'
So, GN2 is miscommunicating the path to GN3.
This also led to documenting how one should test GN2 and GN3 in a running VM:
and fixing the shared TMPDIR. The next step however fails with
sh: line 1: Rscript: command not found 2024-04-01 07:33:13 File "/gnu/store/yi76sybwqql4ky60yahv91z57srb2fr0-profile/lib/python3.10/site-packages/gn3/computations/rqtl.py", line 6 5, in process_rqtl_mapping (...) 2024-04-01 07:33:13 with open( 2024-04-01 07:33:13 FileNotFoundError: [Errno 2] No such file or directory: '/tmp/output/d41d8cd98f00b204e9800998ecf8427ePr1axOhhSF5DMEMowkGu6AvGj6hf+TA2Ra7FIrlrT4Pw-output.csv'
So, for some reason Rscript is not in the path for GN3. So I added that to the propagated inputs. Now we still have the output error. There is no information the Rscript has actually been invoked and successfuly (or unsuccessfully) wrote the file. To fix this we mount the GN3 source directory in the container again. See
That way I was able to troubleshoot the paths and added them to the containers.
Try HK on
File "/gnu/store/hvv0r5nzhbbsnd9s68cmx5q0sznjhnrp-profile/lib/python3.10/site-packages/PIL/ImageFont.py", line 956, in freetype return FreeTypeFont(font, size, index, encoding, layout_engine) File "/gnu/store/hvv0r5nzhbbsnd9s68cmx5q0sznjhnrp-profile/lib/python3.10/site-packages/PIL/ImageFont.py", line 247, in __init__ self.font = core.getfont( OSError: cannot open resource
This error in on gn2. An image file appears in /tmp/gn2/generated/.
The fonts exist in the GN2 directory, e.g. /gnu/store/mymfiz2jgkfc196az1c0vcc2digc84jy-genenetwork2-stable-stable-3.11-1.42b37bb/lib/python3.10/site-packages/gn2/wqflask/static/fonts/courbd.ttf, but are not found. In the code the path is set to
COUR_FILE = "./gn2/wqflask/static/fonts/courbd.ttf"
so most likely GN2 is not running from that actually source dir.
Pair scan shows a table on the fallback, but not the image. On CD and production no pair scan results!
Takes about a minute for 26 mice. The csv files are generated in /tmp/gn3, but no image. The relevant code is
<div class="qtlcharts" id="chart_container"> <div id="pairscan_chart"></div> </div>
The problem is with Karl's D3 panels, we get an error 'TypeError: d3.scaleLinear is not a function'. That 1.7.1 release is a bit old, so let's try updating that first. After updating to 1.8.4 we have the same error. D3 is at 3.5.17 - that is 2016(!).
Now the latest versions of D3 do *not* provide the actual JS through github. The page
has links to
We can't use those because the SHA may change. So we have to host a local copy. That is fine.
On mapping from
This resolved itself - probably a permission issue.
Not unique file names appearing in TMPDIR:
-rw-r--r-- 1 gunicorn-genenetwork2 gunicorn-genenetwork2 337 Apr 2 07:03 175.png -rw-r--r-- 1 gunicorn-genenetwork2 gunicorn-genenetwork2 287 Apr 2 07:03 75.png -rw-r--r-- 1 gunicorn-genenetwork2 gunicorn-genenetwork2 303 Apr 2 07:03 25.png -rw-r--r-- 1 gunicorn-genenetwork2 gunicorn-genenetwork2 348 Apr 2 07:03 125.png -rw-r--r-- 1 gunicorn-genenetwork2 gunicorn-genenetwork2 835 Apr 2 07:03 -logP.png
These are created by the HK run. Harmless for now, but if two people run HK at the same time we'll get a conflict.
Unique file names, but lingering on file system - note they are root because I created them outside a container
-rw-r--r-- 1 root root 10M Apr 2 07:03 4OJCzmGV.cross -rw-r--r-- 1 root root 10M Apr 2 07:03 6cExgwkd.cross
The following button does not display:
<button id="scrollLeft" type="button" > <i class="fas fa-arrow-left"></i>
it is part of font-awesome and apparently not loaded properly. Actually the stylesheet is loaded twice(!) in mapping_results.html AND we use two different class names (fas and fa). Changing the class name fixed it.
This is probably a jquery update is causing
Uncaught TypeError: data1.join is not a function <anonymous> https://bnw.genenetwork.org/sourcecodes/layout_cyto.php?My_key=jFv:102 jQuery 4