Commit Graph

549 Commits

Author SHA1 Message Date
Jakob Ackermann ee3d3b09ed [misc] wrap redis errors as tagging does not work with them
ioredis may reuse the error instance for multiple callbacks. E.g. when
 the connection to redis fails, the queue is flushed with the same
 MaxRetriesPerRequestError instance.
2020-08-24 10:12:20 +01:00
Jakob Ackermann 537e97be73 [misc] OError.tag all the errors in async contexts
See the docs of OError.tag:
https://github.com/overleaf/o-error#long-stack-traces-with-oerrortag
(currently at 221dd902e7bfa0ee92de1ea5a3cbf3152c3ceeb4)

I am tagging all errors at each async hop. Most of the controller code
 will only ever see already tagged errors -- or new errors created in
 our app code. They should have enough info that we do not need to tag
 them again.
2020-08-24 10:12:06 +01:00
Jakob Ackermann c7b9dadd16 [misc] increase the timeout for unit tests -- CI boxes are too slow 2020-08-21 12:45:30 +01:00
Jakob Ackermann 7ce76775ea Merge pull request #181 from overleaf/jpa-forcefully-disconnect-from-shutdown-process
[misc] forcefully disconnect from shutdown process
2020-08-17 12:56:18 +02:00
Jakob Ackermann 1ffffbcbc2 Merge pull request #180 from overleaf/jpa-harden-cleanup-take2
[misc] bump socket.io and socket.io-client
2020-08-17 12:56:04 +02:00
Jakob Ackermann 67d9543cf3 Merge pull request #179 from overleaf/csh-issue-1123-bump-logger-220
[misc] bump logger-sharelatex to version 2.2.0
2020-08-17 12:55:40 +02:00
Jakob Ackermann 3505fae253 Merge pull request #178 from overleaf/jpa-ignore-broken-socket-errors
[app] ignore errors from accessing disconnected client sockets
2020-08-17 12:55:29 +02:00
Jakob Ackermann 1550e9f885 Merge pull request #176 from overleaf/jpa-bump-dev-env-3-3-2
[misc] bump the dev-env to 3.3.2
2020-08-17 12:55:13 +02:00
Jakob Ackermann 83b8b077fa [misc] bump socket.io and socket.io-client 2020-08-14 11:16:26 +01:00
Jakob Ackermann ea75b84eef [misc] let the orchestrator handle the process restart
Note that there is also the `shutdownCleanly` interval which may notice
 that the shutdown has completed. There is some network IO required to
 signal all clients the server disconnect, so we cannot run process.exit
 immediately.
2020-08-13 13:39:25 +01:00
Jakob Ackermann ee59056c6e [misc] forcefully disconnect stale clients from shutdown process 2020-08-13 13:39:22 +01:00
Christopher Hoskin fe41f1b00c [misc] bump logger-sharelatex to version 2.2.0 2020-08-12 16:04:21 +01:00
Jakob Ackermann f036a7098b Merge pull request #177 from overleaf/jpa-bg-issue-3291
clean up join/leave handling
2020-08-12 13:04:29 +02:00
Jakob Ackermann a0028646a5 [app] ignore errors from accessing disconnected client sockets
Technically `EHOSTUNREACH` and `ETIMEDOUT` should go into a
 'disconnected_read' metric. But this would require changes to
 dashboards and a larger diff.
2020-08-12 11:45:49 +01:00
Brian Gough 831d794bf4 clean up join/leave handling
Co-Authored-By: Jakob Ackermann <jakob.ackermann@overleaf.com>
2020-08-12 10:54:22 +01:00
Jakob Ackermann 370baa06c3 [misc] bump the dev-env to 3.3.2 2020-08-10 17:10:31 +01:00
Jakob Ackermann 8f7d846ed9 Merge pull request #175 from overleaf/jpa-bump-dev-env
[misc] bump the dev-env to 3.3.1
2020-08-05 12:12:51 +02:00
Jakob Ackermann 51e56dafcf [misc] bump the dev-env to 3.3.1 2020-08-05 10:46:23 +01:00
Jakob Ackermann 1b52366c61 Merge pull request #174 from overleaf/jpa-bump-dev-env
[misc] bump the dev-env to 3.3.0
2020-08-04 12:29:22 +02:00
Jakob Ackermann cc5d908efb Merge pull request #173 from overleaf/jpa-harden-cleanup
[misc] bump socket.io and socket.io-client: harden cleanup
2020-08-04 12:29:14 +02:00
Jakob Ackermann f4d9ae1150 [misc] bump the dev-env to 3.3.0 2020-08-04 11:07:19 +01:00
Jakob Ackermann a91f78634b [misc] bump socket.io and socket.io-client 2020-07-31 16:32:03 +01:00
Shane Kilkelly 39c7cd3cd5 Merge pull request #172 from overleaf/sk-upgrade-redis
Upgrade redis-sharelatex to 1.0.13
2020-07-30 11:23:54 +01:00
Shane Kilkelly 3d92858939 Upgrade redis-sharelatex to 1.0.13 2020-07-24 10:42:46 +01:00
Jakob Ackermann 68a5ec7c73 Merge pull request #171 from overleaf/jpa-fix-express-deprecations
[misc] fix express deprecations
2020-07-22 11:55:01 +02:00
Jakob Ackermann 562375d351 [misc] fix express deprecations 2020-07-22 09:45:14 +01:00
Jakob Ackermann 51fb2170b2 Merge pull request #168 from overleaf/jpa-use-socket.io-forks
[misc] use overleaf/socket.io and overleaf/socket.io-client forks
2020-07-20 12:32:44 +02:00
Jakob Ackermann ca4168ce90 [misc] use overleaf/socket.io and overleaf/socket.io-client forks 2020-07-08 15:07:19 +01:00
Jakob Ackermann 383f7a1e2e Merge pull request #167 from overleaf/jpa-expose-hostname
[misc] reland optionally expose the hostname in the 'debug.getHostname' rpc
2020-07-07 12:10:58 +02:00
Jakob Ackermann 9fff03bca5 [misc] optionally expose the hostname in the 'debug.getHostname' rpc 2020-07-07 11:07:28 +01:00
Jakob Ackermann aa9d6c8dc9 [misc] reland decaff cleanup (#166)
* [misc] decaff cleanup: RoomManager

* [misc] decaff cleanup: RedisClientManager

* [misc] decaff cleanup: SafeJsonParse

* [misc] decaff cleanup: WebApiManager

* [misc] decaff cleanup: WebsocketController

* [misc] decaff cleanup: WebsocketLoadBalancer

* [misc] decaff cleanup: SessionSockets

* [misc] decaff cleanup: HttpController

* [misc] decaff cleanup: HttpApiController

* [misc] decaff cleanup: HealthCheckManager

* [misc] decaff cleanup: EventLogger

* [misc] decaff cleanup: Errors

o-error will eliminate most of it -- when we migrate over.

* [misc] decaff cleanup: DrainManager

* [misc] decaff cleanup: DocumentUpdaterManager

* [misc] decaff cleanup: DocumentUpdaterController: no-unused-vars

* [misc] decaff cleanup: DocumentUpdaterController: Array.from

* [misc] decaff cleanup: DocumentUpdaterController: implicit return

* [misc] decaff cleanup: DocumentUpdaterController: IIFE

* [misc] decaff cleanup: DocumentUpdaterController: null checks

* [misc] decaff cleanup: DocumentUpdaterController: simpler loops

* [misc] decaff cleanup: DocumentUpdaterController: move module name def

* [misc] decaff cleanup: ConnectedUsersManager: handle-callback-err

* [misc] decaff cleanup: ConnectedUsersManager: implicit returns

* [misc] decaff cleanup: ConnectedUsersManager: null checks

* [misc] decaff cleanup: ChannelManager: no-unused-vars

* [misc] decaff cleanup: ChannelManager: implicit returns

* [misc] decaff cleanup: ChannelManager: other cleanup

- var -> const
- drop variable assignment before return

* [misc] decaff cleanup: AuthorizationManager: handle-callback-err

Note: This requires a change in WebsocketController to provide a dummy
 callback.

* [misc] decaff cleanup: AuthorizationManager: Array.from

* [misc] decaff cleanup: AuthorizationManager: implicit returns

* [misc] decaff cleanup: AuthorizationManager: null checks

* [misc] decaff cleanup: Router: handle-callback-err

* [misc] decaff cleanup: Router: standard/no-callback-literal

* [misc] decaff cleanup: Router: Array.from

* [misc] decaff cleanup: Router: implicit returns

* [misc] decaff cleanup: Router: refactor __guard__ wrapper

* [misc] decaff cleanup: Router: null checks

And a minor bug fix: user.id -> user._id

* [misc] decaff cleanup: Router: move variable declarations to assignments

* [misc] decaff cleanup: app: implicit returns

* [misc] decaff cleanup: app: __guard__

* [misc] decaff cleanup: app: null checks

* [misc] decaff cleanup: app: function definitions

* [misc] decaff cleanup: app: drop unused next argument

* [misc] decaff cleanup: app: var -> const
2020-07-07 11:06:02 +01:00
Jakob Ackermann e913c57aab Merge pull request #162 from overleaf/jpa-fix-unit-tests
[misc] fix unit tests
2020-07-07 11:54:05 +02:00
Jakob Ackermann bf5eaff056 Merge pull request #161 from overleaf/jpa-msm-decaf
[misc] decaffeinate real-time
2020-07-06 12:48:46 +02:00
Jakob Ackermann 8601084a2e [misc] WebsocketControllerTests: remove debugging code 2020-07-01 11:36:36 +01:00
Jakob Ackermann a77222470b [misc] WebsocketControllerTests: always pass cb to updateClientPosition
...and fix the inconsistent async behaviour for logged-in vs anonymous
 users in the app.
2020-06-29 18:11:33 +01:00
Jakob Ackermann 4d01c02946 [misc] WebsocketControllerTests: explicitly pass a cb to leaveProject
...and fix the stubbing of `io.sockets.clients`.

We were running the assertions prior to the actual completion of the
 leaveProject. Which in turn shadowed the broken test setup --
 `io.sockets.clients()` was returning the `this.clientsInRoom=[]` from a
 previous context.
2020-06-29 17:38:22 +01:00
Jakob Ackermann bea0e9beb7 [misc] RoomManagerTests: explicitly pass a cb to joinProject/joinDoc 2020-06-29 17:12:26 +01:00
Jakob Ackermann 5e191be171 [misc] replace console logging with logger-sharelatex 2020-06-24 11:12:22 +01:00
Jakob Ackermann fa42166be3 [misc] ignore camelcase warning in settings (key_schema parameter) 2020-06-24 10:52:38 +01:00
Jakob Ackermann 9c7bfe020c [misc] fix eslint errors in app.js 2020-06-24 10:52:38 +01:00
Jakob Ackermann c76bcb7732 [misc] fix eslint errors in XMLHttpRequest.js 2020-06-24 10:52:37 +01:00
Jakob Ackermann b8b3fb8b11 [misc] fix usage of deprecated node apis 2020-06-24 10:52:21 +01:00
decaffeinate 53058452ee prettier: convert miscellaneous files to Prettier format 2020-06-24 10:28:28 +01:00
decaffeinate 92dede867f prettier: convert individual decaffeinated files to Prettier format 2020-06-23 18:30:51 +01:00
decaffeinate bdfca5f155 decaffeinate: convert individual files to js 2020-06-23 18:30:48 +01:00
decaffeinate 42f55c4651 decaffeinate: rename individual coffee files to js files 2020-06-23 18:30:46 +01:00
decaffeinate 8a7fc78dc8 prettier: convert test/acceptance decaffeinated files to Prettier format 2020-06-23 18:30:45 +01:00
decaffeinate db98fdac0a decaffeinate: rename test/acceptance/coffee to test/acceptance/js 2020-06-23 18:30:37 +01:00
decaffeinate 5443450abb decaffeinate: Run post-processing cleanups on ApplyUpdateTests.coffee and 18 other files 2020-06-23 18:30:34 +01:00
decaffeinate d318e4fd0e decaffeinate: Convert ApplyUpdateTests.coffee and 18 other files to JS 2020-06-23 18:30:29 +01:00