Jakob Ackermann
7aeeb5a5a9
[ContentCacheManager] finish tracking of ranges across builds
2021-05-18 18:06:15 +01:00
Jakob Ackermann
567d02881d
[misc] fix unit tests following the merge of atomic writes
2021-05-18 11:09:30 +01:00
Jakob Ackermann
9b8763aed4
Merge pull request #234 from overleaf/jpa-stream-detection-across-chunks
...
[ContentCacheManager] add support for stream detection across chunks
2021-05-18 11:44:09 +02:00
Jakob Ackermann
224ae0c254
[ContentCacheManager] add support for stream detection across chunks
...
Retain a small part (6 or 9 bytes) of each chunk in memory for providing
the next iteration with enough context for finding the start/end marker
of a range.
2021-05-17 17:36:05 +01:00
Brian Gough
371de76a4a
use fs.copyFile instead of fse.copy in UrlCache module
2021-05-17 10:54:11 +01:00
Brian Gough
44e0742aa3
use fse.copy for performance
...
it uses the native fs.copyFile method
2021-05-14 15:49:20 +01:00
Jakob Ackermann
b456ea726d
[misc] merge pdf caching into main ( #226 )
...
* wip generate directory for hash content
* cleanup, remove console logging
* add content caching module
* Return PDF stream ranges with compile response
* Return the PDF file size in the compile response
* PDF range endpoint
* [misc] WIP: pdf caching: preserve the m-time on static content files
* [misc] WIP: pdf caching: improve browser caching, emit caching headers
* [misc] WIP: pdf caching: do not emit very small chunks <1kB
* [misc] keep up with moving output files into a separate directory
* [OutputCacheManager] add global feature flag for enabling pdf caching
* [misc] add contentId into the URL for protecting PDF stream contents
* [misc] support PDF stream caching for anonymous users
* [misc] add per-request feature flag for enabling PDF stream caching
* [misc] enable pdf caching in CI and emit metrics at the end of run
* [misc] expose compile stats and timings to the frontend
* [misc] log an error in case saving output files fails
* [misc] add metrics for pdf bandwidth and pdf caching performance
* [misc] add a dark mode to the pdf caching for computing ranges only
* [misc] move pdf caching metrics into ContentCacheMetrics
* [misc] add a config option for the min chunk size of pdf ranges
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
Co-authored-by: Eric Mc Sween <eric.mcsween@overleaf.com>
2021-05-13 14:07:54 +01:00
Jakob Ackermann
6cb4246eb1
[misc] consume and validate a custom imageName for synctex requests
2021-03-30 13:57:40 +01:00
Eric Mc Sween
9f2d219102
Add a global test setup file
...
Set up generally useful stuff:
* chai.should()
* logger stubs
* globals in SandboxedModule, including Buffer and process, which are
now required in Node 12
2021-03-12 16:27:33 -05:00
Brian Gough
a86e521ac0
add unit test for non-existent state file
2021-01-26 11:03:18 +00:00
Brian Gough
f41f3aba8c
Merge pull request #204 from overleaf/bg-use-output-dir
...
use separate output dir for generated files
2021-01-25 14:10:09 +00:00
Brian Gough
90c0d931ad
Merge pull request #201 from overleaf/bg-more-cleanup
...
decaff cleanup of OutputFileManager
2021-01-25 14:09:46 +00:00
Brian Gough
b5346658b0
clear output directory when clearing project
2021-01-22 11:05:52 +00:00
Jakob Ackermann
49b764a308
[misc] CompileController: exact match for output.pdf
...
The previous regex could mistake user provided pdf files, like
`fake_output.pdf`, as the final output file.
The frontend expects to find a `output.pdf` file on success.
2020-12-28 13:16:31 +00:00
Brian Gough
4169f7fc73
use once for callback
2020-12-18 15:28:06 +00:00
Eric Mc Sween
14e1e02a68
Test anonymous volumes are removed with containers
2020-09-04 11:34:08 -04:00
Eric Mc Sween
1c13f6fe94
Mount /home/tex in an anonymous volume
...
When we mount the container's root filesystem as read-only, mount
an anonymous volume in /home/tex so that it's writable. Our TeX Live
images have cached content in /home/tex. This content will automatically
get copied by Docker into this anonymous volume.
2020-09-04 08:49:56 -04:00
Jakob Ackermann
1d1b9ebebc
[misc] bump the dev-env to 3.3.2
2020-08-10 17:01:11 +01:00
Jakob Ackermann
aa02df7b81
[misc] apply review feedback
...
- move setting into clsi.docker namespace
- rename the variable for images to allowedImages / ALLOWED_IMAGES
- add an additional check for the image name into the DockerRunner
Co-Authored-By: Brian Gough <brian.gough@overleaf.com>
2020-06-30 12:01:21 +01:00
Jakob Ackermann
c857371fed
[misc] wordcount: restrict image to an allow list and add tests
2020-06-26 13:28:12 +01:00
Jakob Ackermann
8846efe7ce
[misc] RequestParser: restrict imageName to an allow list and add tests
2020-06-26 13:28:09 +01:00
Brian Gough
bdebef91eb
Merge branch 'master' into bg-add-compile-groups
2020-06-17 11:58:26 +01:00
Brian Gough
f41b4daca2
Merge branch 'master' into bg-use-lodash
2020-06-16 08:35:17 +01:00
Brian Gough
2ce03f0554
add initial compileGroup support
2020-06-15 15:28:53 +01:00
Brian Gough
ede70b6f99
migrate from underscore to lodash
2020-06-15 09:52:21 +01:00
Tim Alby
d3ff214b88
partially revert "[DockerRunner] fix metric incrementing and error logging"
...
This reverts commits:
- 2b2fcca39ce8dee0fdc0c342aa0d6c822592bcec
- 9e82ab0890c5cc8c7fb95362c3f7edbcaad0cf29
- e3da458b376871c3ce72d6984d14bf1ee668b04b
2020-06-11 12:51:26 +02:00
Brian Gough
ce1f2e2bd4
fix broken unit test
2020-06-02 11:12:57 +01:00
Brian Gough
aa44bae222
fix eslint errors
2020-06-02 09:51:34 +01:00
Brian Gough
0de2933812
fix unreachable code lint error
2020-06-02 09:28:04 +01:00
Brian Gough
a3d27b63f1
fix formatting with make format_fix
2020-06-02 09:18:38 +01:00
Brian Gough
d9265b779f
Merge pull request #170 from overleaf/jpa-import-141
...
[DockerRunner] destroyOldContainers: fix a race confition
2020-06-02 09:04:59 +01:00
Brian Gough
59cd14e160
Merge pull request #169 from overleaf/bg-record-latexmk-output
...
record latexmk output
2020-06-02 09:03:43 +01:00
Jakob Ackermann
563a973388
[DockerRunner] destroyOldContainers: normalize the container name
...
The docker api returns each name with a `/` prefix.
In order to not interfere with pending compiles, the deletion process
has to acquire an internal lock on the container. The LockManager uses
the plain container name without the slash: `project-xxx`.
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2020-05-29 11:28:26 +01:00
Brian Gough
6d5dfb7758
clean up log file deletion and add unit test
2020-05-20 14:12:08 +01:00
Brian Gough
a684619bce
add unit tests
2020-05-20 11:52:53 +01:00
Henry Oswald
5c3da905ba
Merge pull request #162 from overleaf/ta-jpa-epipe-retry
...
[DockerRunner] retry container inspect on EPIPE
2020-05-19 11:15:25 +01:00
Henry Oswald
2547725f35
Merge pull request #164 from overleaf/bg-fix-buffer-deprecations
...
fix deprecated usage of Buffer constructor
2020-05-19 10:26:56 +01:00
Henry Oswald
e9c6f3b074
Merge pull request #163 from overleaf/bg-use-encoding-on-process-output
...
set encoding when reading from streams
2020-05-19 10:26:26 +01:00
Henry Oswald
457b7d6657
Merge pull request #165 from overleaf/ho-retry-url-downloads
...
add pipeUrlToFileWithRetry for file downloads
2020-05-19 10:25:19 +01:00
Henry Oswald
3925839c7f
add refreshExpiryTimeout function
...
on clsi all data lives inside of / dir
dynamically reduce size of EXPIRY_TIMEOUT if disk starts to get full
2020-05-18 15:17:19 +01:00
Henry Oswald
77e8ba74a7
add pipeUrlToFileWithRetry function to retry file downloads 3 times
2020-05-14 13:24:58 +01:00
Brian Gough
4947abe88b
fix deprecated usage of Buffer constructor
2020-05-07 10:42:05 +01:00
Brian Gough
8e86f02c43
set encoding when reading from streams
...
using .toString() works most of the time but can lead to utf8 characters being
broken across chunk boundaries.
https://nodejs.org/api/stream.html#stream_readable_setencoding_encoding
2020-05-07 10:30:14 +01:00
Tim Alby
e3b1472c7f
retry once on EPIPE errors
...
Co-Authored-By: Jakob Ackermann <jakob.ackermann@overleaf.com>
2020-04-10 12:28:11 +02:00
Tim Alby
66447211d0
fix arguments order
...
Co-Authored-By: Jakob Ackermann <jakob.ackermann@overleaf.com>
2020-04-10 12:27:15 +02:00
Jakob Ackermann
c700a0ab9d
Merge pull request #159 from overleaf/jpa-fix-docker-modem-error-scheme
...
[misc] keep up with the error signature of dockerode/docker-modem
2020-04-03 14:04:06 +02:00
Jakob Ackermann
6777432569
[misc] add a metric for failing downloads
2020-04-03 12:35:40 +02:00
Jakob Ackermann
4a19f022fc
[misc] keep up with the error signature of dockerode/docker-modem
...
https://github.com/apocas/docker-modem/blob/v2.1.1/lib/modem.js#L296
2020-03-27 10:39:45 +01:00
mserranom
8641d0ef0f
updated sandboxed-module, chai and metrics-sharelatex
2020-03-16 17:14:04 +01:00
mserranom
7e7d234350
updated mocha and sinon, fixed tests
2020-03-12 10:35:11 +01:00
mserranom
cf6c8ab496
removed mkdirp dependency and replaced with fs.mkdir
2020-03-12 10:22:08 +01:00
mserranom
fa37ed865a
added container monitor cleanup to fix hanging tests
2020-02-20 17:24:28 +01:00
mserranom
4c0fd2b6f4
fixed test paths
2020-02-19 12:38:54 +01:00
mserranom
a62d8186e9
prettier: convert test/unit decaffeinated files to Prettier format
2020-02-19 12:15:37 +01:00
mserranom
89360bfe77
decaffeinate: rename test/unit/coffee to test/unit/js
2020-02-19 12:15:30 +01:00
decaffeinate
4c79f22389
decaffeinate: Run post-processing cleanups on CompileControllerTests.coffee and 17 other files
2020-02-19 12:15:25 +01:00
decaffeinate
37b4e96de4
decaffeinate: Convert CompileControllerTests.coffee and 17 other files to JS
2020-02-19 12:15:08 +01:00
decaffeinate
e57097afb4
decaffeinate: Rename CompileControllerTests.coffee and 17 other files from .coffee to .js
2020-02-19 12:14:56 +01:00
Michael Mazour
1ddf9283f2
Add flags option to request JSON
...
Adds a `flags` parameter to the request JSON, appearing under the `compile.options` key (alongside such stalwarts as `compiler`, `timeout`, etc.).
This is primarily to support `-file-line-error` as an option, but could have other uses as well.
`flags` should be an array of strings, or absent. If supplied, the listed arguments are added to the base latexmk command.
2019-05-14 16:24:34 +01:00
Brian Gough
038c81f868
use explicit json content-type to avoid security issues with text/html
2019-02-12 16:54:59 +00:00
Henry Oswald
c67e88fcb3
have failed compiles warn rather than be an error
2018-11-23 15:10:35 +00:00
Brian Gough
34acce8bda
use TikzManager to create main file for pstool package
2018-10-10 16:13:20 +01:00
Brian Gough
74dd560979
extend caching for tikz, minted and markdown files
2018-10-04 16:56:48 +01:00
Brian Gough
9870683ae8
Merge pull request #96 from sharelatex/bg-cache-eps-to-pdf-converted-files
...
cache pdf files generated by epstopdf
2018-09-11 13:31:26 +01:00
Henry Oswald
3fc3cd11f4
fix unit tests
2018-09-11 10:21:37 +01:00
Henry Oswald
ce44fa3390
bump wordcount timeouts, taken from 82b996b145196711e439d7d7045f53498c1afa1a
2018-09-11 09:55:10 +01:00
Brian Gough
5a635e5465
cache pdf files generated by epstopdf
2018-09-11 09:44:22 +01:00
Henry Oswald
2aaadc6124
fix unit tests
2018-08-23 00:21:05 +01:00
Henry Oswald
6c0665bb49
change sync to async for lockfile debugging
2018-08-22 22:17:02 +01:00
Henry Oswald
e46b6563c0
change override to leave image name so it works for wl_texlive
2018-07-16 17:25:14 +01:00
Henry Oswald
846c2b1e28
move texliveImageNameOveride further down request so it works for
...
compile tests
2018-07-13 11:52:49 +01:00
Henry Oswald
4ec8a423cb
added texliveImageNameOveride
2018-07-13 10:37:22 +01:00
Henry Oswald
eb89ca1d3b
added filestoreDomainOveride
2018-07-03 16:41:34 +01:00
Brian Gough
b95317c8fe
increase timeout on wordcount
2018-06-25 14:06:18 +01:00
Henry Oswald
e4e30cf2e2
fixed commended tests
2018-03-14 15:44:58 +00:00
Henry Oswald
9a519f0d3d
added docker runner into core codebase
...
supports both local command runner and docker runner
added docker files for tex live
also fixed tests so they exit correctly & removed debug lines
2018-03-14 15:44:49 +00:00
Henry Oswald
729d29253d
fix url fetcher tests so they exit correctly
2018-03-05 10:39:46 +00:00
Henry Oswald
f39d14bf1b
unit tests pass, acceptence fail
...
uncomment tests
2018-03-02 17:34:41 +00:00
Brian Gough
e209c48bd9
simplify tikzexternalize checks
2017-09-29 17:00:53 +01:00
Brian Gough
ce51cc673f
Merge branch 'bg-lock-compiles'
2017-09-28 13:16:29 +01:00
Brian Gough
2a23082c4e
remove stat test for missing files
2017-09-26 09:48:09 +01:00
Brian Gough
8685b774ee
fix unit tests for use of fs-extra
2017-09-25 15:28:31 +01:00
Brian Gough
7f0e6f3eec
lock compile directory
2017-09-22 16:19:33 +01:00
Brian Gough
b03271edee
unit tests for ResourceStateManager
2017-09-15 13:42:57 +01:00
Brian Gough
0a242bac3c
rename saveProjectStateHash to saveProjectState
2017-09-08 13:56:40 +01:00
Brian Gough
66431fc2b8
log any missing files
2017-09-07 16:54:09 +01:00
Brian Gough
3d1c3a1d27
combine the resource state and resource list
...
to prevent them getting out of sync
2017-09-07 13:52:34 +01:00
Brian Gough
a84c884fc9
splice state management into ResourceStateManager
2017-08-18 10:22:17 +01:00
Brian Gough
d614af2860
finish unit test for incremental update
2017-08-18 09:41:43 +01:00
Brian Gough
d3da4e1d3f
ResourceWriter unit tests (wip)
2017-08-17 16:59:37 +01:00
Brian Gough
c7a9487216
test syncType in RequestParser
2017-08-17 15:57:05 +01:00
Brian Gough
8415ea2f71
store the resource list in a file
2017-08-17 14:53:35 +01:00
Brian Gough
c0ed71f65c
fix unit tests
2017-08-09 15:22:44 +01:00
Brian Gough
567a89350b
fix broken unit tests
2017-08-07 15:00:16 +01:00
Brian Gough
d43357e8c8
stub out unwanted dependency in unit tests
2017-07-18 11:30:22 +01:00
Brian Gough
fd5b557dde
fix exception for empty content in TikzManager
2017-07-18 11:29:59 +01:00
Shane Kilkelly
65eaf0ad10
Mock out logger in tests
2017-06-20 08:25:50 +01:00
Brian Gough
42fa852b76
check file exists before running synctex
2017-05-24 10:09:43 +01:00
Brian Gough
7e58bfd752
check if file is optimised before running qpdf
2017-04-04 16:50:06 +01:00
Brian Gough
4e34fa2fa6
Merge pull request #53 from sharelatex/bg-sanitise-paths
...
additional check for valid rootResource
2017-03-21 13:39:27 +00:00