Brian Gough
4ec82b1baa
upgrade to local node:10.18.1 image
2020-02-04 15:02:15 +00:00
Simon Detheridge
4102aa0580
Add more detail to metric
2020-02-04 14:03:56 +00:00
Simon Detheridge
8e45a62e32
Handle ECONNRESET in the same way as EPIPE
2020-02-04 13:58:45 +00:00
Simon Detheridge
7663e9689e
Merge pull request #91 from overleaf/spd-trycatch-all-the-things
...
Add try/catch around all client emissions
2020-02-04 13:21:49 +00:00
Simon Detheridge
fbff3fe727
Don't shut down on uncaught EPIPE
2020-02-04 12:56:43 +00:00
Simon Detheridge
9fd4699098
Merge remote-tracking branch 'origin/bg-avoid-emit-when-client-not-connected' into spd-trycatch-all-the-things
2020-02-04 12:35:35 +00:00
Simon Detheridge
216a977922
Add try/catch around all client emissions
2020-02-04 12:13:03 +00:00
Brian Gough
ebb83e4633
use diconnected property, not connected
2020-02-04 11:59:25 +00:00
Brian Gough
7380d523d5
avoid emitting when client not connected
...
the emit is happening asynchronously after the client list is computed,
so clients may have disconnected in the intervening time.
2020-02-04 11:39:37 +00:00
Brian Gough
e263d37476
pass the signal correctly to the shutdown handler
2020-02-04 11:14:53 +00:00
Brian Gough
1fc8cc44c3
log shutdown messages as warnings
2020-02-04 11:14:14 +00:00
Simon Detheridge
c7e2b99a7b
Update hybi-16 patch to work with socket.io 0.9.19
2020-02-04 10:43:06 +00:00
Simon Detheridge
ef852dfa33
Update socket.io to latest patch release
2020-02-04 10:32:54 +00:00
Brian Gough
4f94110225
Merge pull request #84 from overleaf/spd-catch-errors
...
Bump to Node 10 and add error handlers for socket.io
2020-02-03 14:59:04 +00:00
Brian Gough
49a8e1214b
use a separate field for client errors
2020-02-03 14:47:45 +00:00
Brian Gough
e04b6e1e49
Update app/coffee/Router.coffee
...
Co-Authored-By: Jakob Ackermann <das7pad@outlook.com>
2020-02-03 14:46:14 +00:00
Shane Kilkelly
e63c6f4395
Merge pull request #87 from overleaf/sk-restricted-users
...
Filter "comments" if restricted user.
2019-10-31 10:21:11 +00:00
Shane Kilkelly
6df88ebc49
Filter "comments" if restricted user.
2019-10-30 13:54:40 +00:00
Shane Kilkelly
403caa65e8
Revert "Revert "Track the isRestrictedUser
flag on clients""
...
This reverts commit 651e392a7c644403f199e1b03e7494b61ce71d0c.
2019-10-30 13:52:36 +00:00
Nate Stemen
9a838bd071
bump build script to 1.1.24
2019-10-25 13:23:13 -04:00
Nate Stemen
3dc7c357a5
add public link to contributing docs
2019-10-25 13:22:58 -04:00
Simon Detheridge
925a8651c1
Revert "Track the isRestrictedUser
flag on clients"
2019-10-22 10:17:38 +01:00
Simon Detheridge
c31c2d292d
Merge pull request #81 from overleaf/sk-restricted-users
...
Track the `isRestrictedUser` flag on clients
2019-10-22 09:45:00 +01:00
Simon Detheridge
ce366fdbee
Bump Dockerfile to node 10
2019-10-17 12:46:07 +01:00
Simon Detheridge
7543f2fcbd
Catch errors from socket.io and attempt graceful cleanup
2019-10-17 12:45:56 +01:00
Brian Gough
dff4d66209
Merge pull request #83 from overleaf/bg-upgrade-ioredis
...
upgrade ioredis to v4.14.1
2019-10-14 11:18:45 +01:00
Brian Gough
f028148fe2
upgrade ioredis to v4.14.1
2019-10-14 11:10:20 +01:00
Shane Kilkelly
2cc2be3d9c
send messages to clients with concurrency of 2
2019-10-11 10:01:21 +01:00
Shane Kilkelly
06aa578bdc
Make it an error when we get no data from joinProject
2019-10-11 09:57:16 +01:00
Simon Detheridge
85b23d7da7
Add maxRetriesPerRequest setting for redis
2019-10-10 16:56:58 +01:00
Shane Kilkelly
df6cd4a054
Also block getConnectedUsers for restricted users.
...
Plus refactor to use a pass list instead of a deny list.
2019-10-04 13:41:49 +01:00
Shane Kilkelly
6765d03339
Track the isRestrictedUser
flag on clients
...
Then, don't send new chat messages and new comments to those restricted clients.
We do this because we don't want to leak private information (email addresses
and names) to "restricted" users, those who have read-only access via a
shared token.
2019-10-04 10:30:24 +01:00
Simon Detheridge
21e294c6eb
Generate retryable error when hitting rate limits in web
2019-09-02 11:27:04 +01:00
Brian Gough
fe2e7b3065
minimal fix for undefined connected users
2019-08-16 10:07:30 +01:00
Henry Oswald
38ed780d80
add log line to draining
2019-08-15 14:41:22 +01:00
Brian Gough
b0f0fb64ac
clean up unused variable, convert setting to number
2019-08-15 09:48:42 +01:00
Brian Gough
a7a161556f
Merge branch 'bg-status-on-shutdown'
2019-08-15 09:42:00 +01:00
Brian Gough
fa94e3d5e3
Merge pull request #69 from overleaf/ho-drain-connections-timewindow
...
add shutdownDrainTimeWindow, drains all connections within time range
2019-08-15 09:22:10 +01:00
Brian Gough
022e47b5c8
Merge pull request #73 from overleaf/bg-connected-client-metrics
...
add connected client count metric
2019-08-15 09:20:03 +01:00
Brian Gough
3552fa40c2
Merge pull request #72 from overleaf/bg-refresh-client-list
...
refresh client list
2019-08-15 09:19:20 +01:00
Henry Oswald
78629610d5
add health check endpoint and http route logger
2019-08-14 15:38:02 +01:00
Brian Gough
f13e66b453
fix client count so that result is zero when all clients have left
2019-08-14 15:34:23 +01:00
Brian Gough
8270c14d86
add connected client count metric
2019-08-14 15:22:03 +01:00
Brian Gough
d57b229e17
update tests
2019-08-14 13:03:14 +01:00
Brian Gough
d3171e4e2e
remove unwanted argument
2019-08-14 13:03:06 +01:00
Henry Oswald
2ae4c8c174
Merge branch 'ho-drain-connections-timewindow' of github.com:overleaf/real-time into ho-drain-connections-timewindow
2019-08-14 11:52:22 +01:00
Henry Oswald
4a984f533e
remove forceDrainMsDelay
...
as soon as a pod is marked as being killed we should start draining
2019-08-14 11:51:25 +01:00
Brian Gough
20d442120f
notify docupdate if the flush is from a shutdown
2019-08-13 17:36:53 +01:00
Brian Gough
7db882f339
fix unit tests
2019-08-13 17:26:49 +01:00
Brian Gough
0708f717fd
reject connections when shutdown in progress
...
send a message to the client to reconnect immediately
2019-08-13 16:59:15 +01:00
Brian Gough
53431953fc
make shutDownInProgress available via settings
2019-08-13 16:56:48 +01:00
Brian Gough
b3e5709b64
enforce a minimum drain rate
2019-08-13 16:15:30 +01:00
Henry Oswald
00cca29d9e
add shutdownDrainTimeWindow, drains all connections within time range
2019-08-13 14:21:47 +01:00
Brian Gough
5b54d36b37
fail readiness check when shutting down
2019-08-13 10:41:35 +01:00
Brian Gough
2000f478a7
refresh the client list on demand
2019-08-13 10:40:03 +01:00
Miguel Serrano
49c7bde799
Merge pull request #66 from overleaf/msm-patched-eventemitter-socketio-node7
...
Patched EventEmitter for socket.io compatibility with Node >= 7
2019-08-12 11:30:11 +02:00
Brian Gough
478a727c61
ignore spurious requests to leave other docs
2019-07-29 15:19:08 +01:00
Brian Gough
04a171171f
fix async behaviour of join/leave
2019-07-29 11:54:02 +01:00
mserranom
cf0df28f4c
Patched EventEmitter for socket.io compatibility with Node >= 7
2019-07-25 09:22:24 +00:00
Brian Gough
22d722f3e8
add metric for RoomEvents listeners
2019-07-24 16:25:45 +01:00
Brian Gough
277ec71a5b
subscribe to doc updates before requesting doc content
2019-07-24 15:49:29 +01:00
Brian Gough
1c74cbbc4e
add comments
2019-07-24 15:49:29 +01:00
Brian Gough
273af3f3aa
refactor subscribe resolution
2019-07-24 14:30:48 +01:00
Brian Gough
e14a94906a
update naming from Set -> Map
2019-07-24 14:18:15 +01:00
Brian Gough
cb53bfafd6
remove unnecessary require
2019-07-24 09:52:31 +01:00
Brian Gough
61b3a000b4
fix whitespace
2019-07-24 09:52:20 +01:00
Brian Gough
159b39c491
ensure redis channel is subscribed when joining room
2019-07-23 17:02:09 +01:00
Brian Gough
84e6ff616f
whitespace fix
2019-07-22 12:25:41 +01:00
Brian Gough
bb629c27a1
rename unit test ChannelManager to ChannelManagerTests
2019-07-22 11:28:49 +01:00
Brian Gough
1afebd12a1
unit tests
2019-07-22 11:23:43 +01:00
Brian Gough
92e6910180
cleanup
2019-07-22 11:23:33 +01:00
Brian Gough
8c7b73480f
upgrade sinon to 1.17.7 for onCall support
2019-07-22 11:23:02 +01:00
Brian Gough
9f7df5f10c
wip unit tests
2019-07-19 11:58:40 +01:00
Brian Gough
a538d10488
extend comment re disconnection
2019-07-19 08:56:38 +01:00
Brian Gough
616014e05d
add comment about automatically leaving rooms
2019-07-19 08:50:43 +01:00
Brian Gough
40353a410f
fix unit tests
2019-07-19 08:49:57 +01:00
Brian Gough
3bf5dd5d6b
clarify errors for subscribe/unsubscribe
2019-07-18 14:25:25 +01:00
Brian Gough
f6f6f549d9
don't publish on individual channels until explicitly set
2019-07-18 12:55:23 +01:00
Brian Gough
804f4c2bd2
listen on separate channels for each project/doc
2019-07-18 12:55:23 +01:00
Brian Gough
ae512dc9fb
Merge pull request #62 from overleaf/bg-patch-socket-io-frame-bug
...
monkeypatch socket.io to fix frame handler in v0.9.16
2019-07-17 13:48:04 +01:00
Brian Gough
9ecce32ff9
Merge pull request #63 from overleaf/bg-log-out-of-order-events
...
log out of order events now that the rate is lower
2019-07-17 13:47:45 +01:00
Brian Gough
0c6ba4c1a8
monkeypatch socket.io to fix frame handler in v0.9.16
2019-07-16 14:02:52 +01:00
Brian Gough
8a7804f0a7
make event order check a configuration setting
2019-07-15 13:45:34 +01:00
Brian Gough
24a4709cff
log out of order events now that the rate is lower
2019-07-15 11:14:48 +01:00
Brian Gough
e632f9f29d
only create per-client metrics when there are multiple redis clients
2019-07-11 11:35:48 +01:00
Brian Gough
80f8f2465e
remove unused pubsub client
2019-07-11 11:10:33 +01:00
Brian Gough
689a75f397
add logging for redis clients at start up
2019-07-09 14:18:39 +01:00
Brian Gough
dd54789e2b
fix build problems
2019-07-09 12:20:59 +01:00
Brian Gough
580b100362
only publish to one redis client in WebsocketLoadBalancer
...
but listen to all of them
2019-07-09 12:03:13 +01:00
Brian Gough
999cbd8ee6
add a per-client metric
2019-07-09 12:01:58 +01:00
Brian Gough
cb289f2dec
make redis client list dynamic based on settings
2019-07-09 11:45:00 +01:00
Brian Gough
b5f9bc422b
support multple redis instances for pubsub
2019-07-08 15:56:25 +01:00
Henry Oswald
520857cf7a
simplify redis continual traffic
...
we can't send double health check events to same redis, it causes
health check duplicate errors. Commit just sends health check data to
pub sub pair and then sends non health check traffic to cluster to keep
the connection open
2019-07-08 12:07:28 +01:00
Henry Oswald
1038c5cd0d
send health check to pubsub channel and use different var name
2019-07-08 11:53:42 +01:00
Henry Oswald
eadef7b133
Merge pull request #59 from overleaf/ho-redis-natmap-sentinel
...
Move pubsub to seperate connection
2019-07-08 11:18:12 +01:00
Henry Oswald
9953c933ee
Update package.json
2019-07-08 11:18:02 +01:00
Henry Oswald
487865fad3
Merge pull request #57 from overleaf/sk-dep-upgrades-2019-06
...
update logger and metrics
2019-07-08 11:17:29 +01:00
Henry Oswald
42e5d2fb6e
Update app.coffee
2019-07-08 11:17:08 +01:00
Henry Oswald
8042a415ec
move pubsub traffic over to a pubsub redis connection string
2019-07-04 13:38:39 +01:00
Henry Oswald
b268285ff6
bump redis-sharelatex (and io redis) to 1.0.9
2019-07-02 16:55:07 +01:00
Henry Oswald
670ce61da1
require underscore
2019-07-02 15:36:17 +01:00
Henry Oswald
88b75b8baa
send health check data to all redis backends
2019-07-02 14:56:50 +01:00
Henry Oswald
92f60690f3
add redis set
2019-07-02 14:46:58 +01:00
Henry Oswald
922a1a1aba
bump redis driver
2019-07-02 12:04:19 +01:00
Shane Kilkelly
283a6066d4
update logger and metrics
2019-06-21 11:26:28 +01:00
miguel
46dfe56b05
Downgraded unathorised log to warning
2019-06-21 07:30:12 +02:00
Brian Gough
a579a83389
Merge pull request #53 from overleaf/em-doc-updater-404s
...
Do not log error on doc updater 404
2019-06-03 10:55:04 +01:00
Brian Gough
d4f003fe0f
Merge pull request #55 from overleaf/bg-allow-fractional-drain-rate
...
allow fractional drain rate
2019-06-03 10:53:57 +01:00
Brian Gough
9da98614c7
Merge pull request #54 from overleaf/bg-use-background-flush-on-disconnect
...
use background flush on disconnect
2019-06-03 10:53:43 +01:00
Brian Gough
40f3456b1c
update unit test
2019-06-03 10:34:59 +01:00
Brian Gough
63f052192e
use background flush on disconnect
2019-06-03 09:42:12 +01:00
Eric Mc Sween
acf850bce9
Do not log error on doc updater 404
...
Document updater 404s are not indicative of a problem, but just of the client
trying to connect to a deleted document, which is easy to trigger. We
log a warning instead.
2019-05-31 17:32:21 -04:00
Henry Oswald
421a914e72
log out when health check manager fails a check
2019-05-31 09:15:49 +01:00
Henry Oswald
2c9b222437
fix breaking tests from using ioredis with inbuilt promises
...
because a promise is returned from ioredis it errors in mocha as it
can't take a promise and a callback
2019-05-30 10:58:05 +01:00
Henry Oswald
47e0cb44ce
bump redis to 1.0.8
2019-05-30 10:29:34 +01:00
Brian Gough
74db743ffa
allow fractional drain rate
2019-05-24 15:23:01 +01:00
Henry Oswald
78372119f8
Revert "Csh issue 1118 node 10.15.3"
2019-05-24 15:21:48 +01:00
Brian Gough
20d5cc69a4
filter invalid updates
2019-05-24 10:19:02 +01:00
Christopher Hoskin
fd8ac10bf7
Merge pull request #46 from das7pad/misc/node7plus-support
...
[misc] add support for node 7+
2019-05-13 11:58:27 +01:00
Christopher Hoskin
20683f3094
Update Node from 6.15.1 to 10.15.3
2019-05-13 11:55:42 +01:00
Christopher Hoskin
5f045d9792
Update buildscripts to 1.1.21
2019-05-13 11:54:37 +01:00
Timothée Alby
8dc41da0ba
update Git URL in Jenkinsfile
2019-05-07 17:45:08 +01:00
Jakob Ackermann
79a314d5fd
[misc] disable the flash transport
...
We do not use flash on the website and the policy file provider is not
compatible with node7+.
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2019-05-01 01:48:01 +02:00
Jakob Ackermann
6601e94db7
[misc] bump socket.io to 0.9.19 for node7+ support
...
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2019-05-01 01:48:00 +02:00
Brian Gough
2828cc3d7f
Merge pull request #45 from sharelatex/bg-update-request
...
update request module
2019-04-15 15:37:14 +01:00
Brian Gough
2277872022
update package.json to current version of request
2019-04-15 15:26:04 +01:00
Brian Gough
15c7c911f9
update request module
2019-04-15 14:46:58 +01:00
Brian Gough
2dbdcf5bc8
add health check to pubsub channels
2019-04-15 14:17:55 +01:00
Brian Gough
e72acacf17
downsample logging
2019-04-11 16:25:42 +01:00
Brian Gough
9eee098af4
Merge pull request #43 from sharelatex/bg-update-ioredis
...
update to redis-sharelatex v1.0.6 for latest ioredis
2019-04-11 15:50:56 +01:00
Brian Gough
cefdd15c5e
update to redis-sharelatex v1.0.6 for latest ioredis
2019-04-11 15:49:19 +01:00
Brian Gough
ef9e97e7d1
add metric for applied-ops events
2019-04-11 15:39:28 +01:00
Brian Gough
6374a641d5
fix unit tests
2019-04-11 15:07:42 +01:00
Brian Gough
c6225d614e
add /debug/events endpoint
2019-04-11 15:00:25 +01:00
Brian Gough
2a31139254
log and skip duplicate events
2019-04-11 12:53:43 +01:00
Brian Gough
893515e83f
handle duplicate entries in io.sockets.clients
2019-04-09 14:48:00 +01:00
Brian Gough
936311f1fb
fix eventlogger tests to use name with dashes
2019-03-22 11:20:38 +00:00
Brian Gough
efa83b4cde
stub out eventlogger in unit test
2019-03-22 11:19:31 +00:00
Brian Gough
6c71ae172b
return out of order events for consistency
2019-03-22 11:19:08 +00:00
Brian Gough
c5a09fcf0a
add comment about downsampling
2019-03-22 11:18:34 +00:00
Brian Gough
695472a8aa
fix event id parsing to allow for dashes in keys
2019-03-22 11:18:19 +00:00
Brian Gough
1ab5e52699
down-sample valid events by 1000
2019-03-21 15:52:53 +00:00
Brian Gough
e91b967bdb
use per-channel event metrics
2019-03-21 14:59:39 +00:00
Brian Gough
8c82faa966
check order of messages on applied-ops channel
2019-03-21 14:59:39 +00:00
Brian Gough
57c5ec14bd
check for a valid counter value in event log
2019-03-21 14:59:19 +00:00
Brian Gough
9b25374cd3
use time-based cleaning of event log
2019-03-21 14:59:19 +00:00
Brian Gough
befe4be517
add check for duplicate events
2019-03-19 14:22:11 +00:00
Henry Oswald
b9e3853a47
add sentry into settings.defaults
2019-03-05 17:33:52 +00:00
Henry Oswald
5119db43a7
Merge pull request #37 from sharelatex/ho-continual-pub-sub-traffic
...
setup continualPubsubTraffic to keep pub sub happy
2019-02-19 11:28:06 +00:00
Henry Oswald
26e903f384
setup continualPubsubTraffic
...
this keeps the pub sub channel ticking along happily
2019-02-15 17:04:49 +00:00