Commit graph

442 commits

Author SHA1 Message Date
Hayden Faulds
b8052e7612 allow settings.redis.project_history to be undefined 2017-10-25 13:56:38 +01:00
Hayden Faulds
5b7be93c79 Merge pull request #2 from sharelatex/hof-doc-pathname
Add metadata to updates for history
2017-10-25 13:13:00 +01:00
Brian Gough
e590543e42 Merge pull request #4 from sharelatex/bg-fix-listen-in-acceptance-tests
exit if mock servers fail to start
2017-10-25 09:13:48 +01:00
Brian Gough
f3098f7470 upgrade ioredis to 3.2.1 via redis-sharelatex 2017-10-24 12:20:14 +01:00
Brian Gough
367ed1e941 Merge pull request #8 from sharelatex/bg-upgrade-to-node-6x
upgrade to node 6.9.5
2017-10-24 11:11:23 +01:00
Brian Gough
56fd6e3d48 upgrade to node 6.9.5 2017-10-24 11:08:20 +01:00
Brian Gough
d9d58393d7 remove unused ioredis package
it is loaded from redis-sharelatex, not here.
2017-10-24 10:39:00 +01:00
Hayden Faulds
d1f0c4ceae add acceptance tests for project history API 2017-10-24 09:06:23 +01:00
Brian Gough
14f3d22071 upgrade to latest async ^2.5.0 2017-10-23 16:02:24 +01:00
Brian Gough
20655b6eeb remove unused requires of async 2017-10-23 15:59:32 +01:00
Hayden Faulds
04ecd1e7ee set pathname in acceptance tests 2017-10-23 15:32:25 +01:00
Hayden Faulds
be41a1614d decorate ops with pathname and doc_length 2017-10-23 15:32:25 +01:00
Hayden Faulds
962520fca8 flush track-changes and project-history in HistoryManager 2017-10-23 15:32:25 +01:00
Hayden Faulds
d003aef31c conditionally enqueue history updates for project 2017-10-23 15:32:25 +01:00
Hayden Faulds
c27df0bfef split apart multi and rclient in tests 2017-10-23 14:24:23 +01:00
Hayden Faulds
81f998afe9 return pathname from DocumentManager.getDoc 2017-10-23 14:23:21 +01:00
Hayden Faulds
748315aadc handle pathname in DocumentManager.getDoc 2017-10-23 14:23:21 +01:00
Hayden Faulds
cbdace7386 store pathname in Redis cache 2017-10-23 14:23:21 +01:00
Hayden Faulds
05b93a629a return pathname from PersistenceManager 2017-10-23 14:17:14 +01:00
Brian Gough
02d3d1bd17 fix unit tests
timekeeper must be called before SandboxedModule.require
2017-10-23 14:02:53 +01:00
Brian Gough
7c2a28c161 fix use of timekeeper in unit tests 2017-10-23 13:33:14 +01:00
Brian Gough
4d82f1432a Merge pull request #5 from sharelatex/bg-upgrade-ioredis-to-3x
update to ioredis 3
2017-10-23 13:27:02 +01:00
Brian Gough
448f131011 exit if mock servers fail to start 2017-10-20 14:56:12 +01:00
Joe Green
3df2d60948 Update Jenkinsfile 2017-10-16 14:14:06 +01:00
Joe Green
d387f979bc only alert on master 2017-10-12 16:53:31 +01:00
Brian Gough
3954ecf85e add missing timekeeper package 2017-10-12 11:23:24 +01:00
Brian Gough
08f0c67cbf Merge pull request #3 from sharelatex/bg-auto-doc-flush
add unflushed time to doc in redis; connects to overleaf/sharelatex#190
2017-10-12 10:55:54 +01:00
Brian Gough
79c276ea77 update to ioredis 3 2017-10-11 17:00:01 +01:00
Brian Gough
727a534d01 keep the existing GET method temporarily
to avoid any problems due to deployment in the wrong order
2017-10-11 15:44:35 +01:00
Brian Gough
7cbb3e7af8 change getProjectDocs endpoint from GET to POST
also note that it flushes docs if they are considered old (i.e. not
recently flushed)
2017-10-11 15:30:29 +01:00
Brian Gough
8d3f82360c update DocumentManager.getDoc signature
keep alreadyLoaded flag at the end for consistency
2017-10-11 14:25:33 +01:00
Brian Gough
2bbbf3c005 add unflushed time to doc in redis 2017-10-06 12:34:28 +01:00
James Allen
340aa98de5 Add OSS syncing task 2017-10-04 11:27:19 +01:00
Brian Gough
ad745f133d Merge pull request #59 from sharelatex/bg-reset-project-state
add endpoint to clear project state
2017-09-13 10:39:47 +01:00
Brian Gough
3842a27278 change .../clear endpoint to .../clearState 2017-09-12 11:39:18 +01:00
Brian Gough
2047bd5516 fix broken unit test 2017-09-11 09:44:05 +01:00
Brian Gough
f34c12fdc7 add endpoint to clear project state 2017-09-08 15:50:26 +01:00
Brian Gough
215a939d4e add comment about log.error for excludeVersions 2017-09-08 13:43:22 +01:00
Brian Gough
1e54b4c72c log all errors in getProjectDocs 2017-09-07 14:12:48 +01:00
Joe Green
c16c6c3bd3 added build.txt 2017-09-04 14:48:47 +01:00
Brian Gough
9d931a3fa7 fix broken unit tests 2017-08-18 12:08:39 +01:00
Brian Gough
230c93766d fix broken RedisManager unit test 2017-08-18 11:59:31 +01:00
Brian Gough
8d408de875 Merge pull request #56 from sharelatex/bg-compile-from-redis
provide endpoint for current project docs in redis
2017-08-18 11:33:27 +01:00
Joe Green
0e8ce29414 compile acceptance tests 2017-08-14 15:33:30 +01:00
Joe Green
b1a7f779d1 add acceptance tests 2017-08-14 15:28:04 +01:00
Brian Gough
8372911a1b return doclines as array from getProjectDocs
for compatibility with getDoc
2017-08-11 16:56:30 +01:00
Brian Gough
5971a19084 added acceptance tests 2017-08-11 16:55:31 +01:00
Brian Gough
f6be68eb08 added missing unit tests file 2017-08-11 16:49:16 +01:00
Joe Green
1146253c0a Create Jenkinsfile 2017-08-11 11:06:36 +01:00
Brian Gough
f696ccb0d9 add unit tests for getProjectDocs 2017-08-10 16:41:28 +01:00
Brian Gough
1eb80936f2 fix log line 2017-08-10 14:57:27 +01:00
Brian Gough
47bebf9638 no need to support optional keys.projectState 2017-08-09 16:47:09 +01:00
Brian Gough
bd6b5b2c59 use v instead of rev in getProjectDocs 2017-08-09 15:30:53 +01:00
Brian Gough
ca7d9dce85 fix unit tests 2017-08-08 09:40:39 +01:00
Brian Gough
9f3ec72f81 switch to single get/set method for getProjectDocs
if project state hasn't changed, return the docs. Otherwise set the hash
and return a 409 Conflict response.
2017-08-07 14:43:28 +01:00
Brian Gough
f5f516a910 delete clsi state when deleting doc (if used) 2017-08-03 15:04:12 +01:00
Brian Gough
860537146b avoid logging doclines in getProjectDocs 2017-08-03 15:04:12 +01:00
Brian Gough
80be5adc0d change filter to exclude in getProjectDocs 2017-08-03 15:04:06 +01:00
Brian Gough
54e02cd895 update docupdater endpoint to /project/id/docs 2017-08-03 14:41:34 +01:00
Brian Gough
0109585092 provide endpoint for current project docs in redis 2017-08-02 13:42:10 +01:00
Shane Kilkelly
c3465cf3d4 Reduce retry delay to 10ms, and refactor 2017-07-18 15:28:18 +01:00
Shane Kilkelly
dc8d08c030 Update acceptance tests to reflect retry logic 2017-07-17 11:13:21 +01:00
Shane Kilkelly
0d46c3e2b3 WIP: auto-retry web requests 2017-07-17 10:08:21 +01:00
Brian Gough
c21cc013f3 use null instead of err in callbacks on success 2017-07-12 10:48:32 +01:00
Brian Gough
d2730c8d6b unit tests for locking timeouts 2017-07-12 10:48:32 +01:00
Brian Gough
bb0dc4b4d5 release the lock if it took too long to acquire it 2017-07-12 10:48:32 +01:00
Brian Gough
54c0fc1180 put a 5 second timeout in getting redis lock 2017-07-11 14:28:58 +01:00
Brian Gough
ffea31290c return total time from the profile .end() method 2017-07-11 14:28:58 +01:00
Brian Gough
41c2bd7fcd Merge pull request #53 from sharelatex/bg-timeout-on-slow-prev-ops
add a timeout for getPreviousDocOps
2017-06-27 13:26:02 +01:00
Brian Gough
59ace9d5c5 avoid long lines in timeout check 2017-06-26 16:36:05 +01:00
Brian Gough
8e1e14c9ca update to redis-sharelatex 1.0.3
adds keepalive support
2017-06-26 13:49:44 +01:00
Brian Gough
963e513057 add a timeout for getPreviousDocOps
it uses several redis operations and this makes it prone to subsequent
timeouts if getDoc succeeds but is slow
2017-06-23 15:50:21 +01:00
James Allen
7b6966899b Add script to expire existing DocOps lists 2017-06-14 12:09:34 +01:00
James Allen
54f128289f Merge pull request #50 from sharelatex/bg-metric-for-unlock-errors
add metric for unlock errors
2017-06-13 14:46:40 +01:00
James Allen
7d22e4422c Merge pull request #49 from sharelatex/bg-add-redis-timeout
add redis timeout
2017-06-13 14:46:32 +01:00
James Allen
30f57a7bfc Merge pull request #51 from sharelatex/ja-expires-ordering
Ensure expires is called after the key is created
2017-06-13 14:05:22 +01:00
James Allen
770b53f6af Add missing mocks to speed up tests and clean up output 2017-06-08 16:43:27 +01:00
James Allen
a3d7260619 Ensure expires is called after the key is created 2017-06-08 16:43:06 +01:00
Brian Gough
2e5d57cd99 don't increase rate limit when tasks are failing 2017-06-07 11:47:28 +01:00
Brian Gough
1ef258c878 add a timeout on the redis getDoc request 2017-06-07 11:34:42 +01:00
Brian Gough
673f4228ce add metric for unlock errors
sentry does not record them reliably, due to rate limiting
2017-06-05 16:29:58 +01:00
Brian Gough
729216c9b1 add unit tests for DocsIn check 2017-05-31 16:08:45 +01:00
Brian Gough
12e8eaa9b6 fix bug in doclines check 2017-05-31 16:08:33 +01:00
Brian Gough
bed64d26c8 check if doc is missing from DocsIn set 2017-05-31 15:33:59 +01:00
Brian Gough
fa089dc28d avoid graphite drift in active worker count 2017-05-30 14:37:01 +01:00
Brian Gough
891ffda3bf put a rate limit on worker calls 2017-05-26 15:08:35 +01:00
Brian Gough
c43f97e8e3 add metric for active workers 2017-05-24 12:12:15 +01:00
Brian Gough
a3947c587f fix bug, jsonOps is array not string 2017-05-22 15:20:28 +01:00
Brian Gough
54ad45c870 add null byte check for ranges 2017-05-22 15:00:05 +01:00
Brian Gough
a13f055d62 add null byte check for ops 2017-05-22 15:00:00 +01:00
Brian Gough
78828ebbc5 fine grained logging for cpu usage in applyUpdate 2017-05-19 16:00:16 +01:00
Brian Gough
a550078071 replace verbose logging by slow query log 2017-05-18 15:04:12 +01:00
Brian Gough
95596061d4 clarify calculation of process.hrtime 2017-05-18 15:02:54 +01:00
Brian Gough
e00f4dde8e log profilers start and end times for reference 2017-05-18 15:02:44 +01:00
Brian Gough
e11f64f83a increase profiling cutoff to 1s 2017-05-18 15:02:08 +01:00
Brian Gough
b6efb051e1 add profiling 2017-05-18 11:17:08 +01:00
Brian Gough
387ecac6cb log for each get/try/release lock 2017-05-18 11:17:08 +01:00
Brian Gough
dff6e2c3da bug fix in backoff 2017-05-16 16:31:28 +01:00
Brian Gough
c7d8fbbb8a exponential backoff for lock up to maximum time 2017-05-16 15:22:02 +01:00
Brian Gough
b15d2ef796 Revert "fail safely if doc cannot be loaded" 2017-05-15 16:18:40 +01:00