-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Read receipts sent in worker mode have incorrect timestamp data #4898
Comments
Make sure that they are sent correctly over the replication stream. Fixes: #4898
Make sure that they are sent correctly over the replication stream. Fixes: #4898
fixed by #4927 |
Did this fix land in 0.99.3? The homeserver I use is on 0.99.3 but this is still occurring.
|
It looks like it was supposed to be, is the homeserver sending the invalid read receipt on 0.99.3 or just the receiving end? |
It's still sending the invalid receipt. |
@BrainBlasted sending it where? To other servers, or just to your client? As a user of a 0.99.3 server, you might still see receipts sent by users on other (pre-0.99.3) servers, which your server will forward on to your client. If this is the case, can you see which servers the invalid receipts are coming from? Given that, afaik, this bug was only present in 0.99.2 and only affected synapses deployed in worker-mode, it should be easy to get any remaining affected servers updated. |
I started noticing this while debugging some nheko issues against my own homeserver (which is up-to-date 0.99.3). I have instances where I get the string-escaped "ts" object section. |
@redsky17 are the users which are producing those read receipts also on your homeserver or do they reside elsewhere? |
I'm currently the only one using my homeserver. At least one of the messed up read receipts was from a user on matrix.org. I'll see if I can dig up some actual data. |
Here's an excerpt of a really long chain of nested read receipts:
|
That read-receipt is timestamped Looking at my own homeserver, it looks like I haven't received any incorrectly-formatted RRs since 2019-03-25. I'm therefore going to assume that this bug is fixed and people are just seeing historical artifacts. |
While the timestamp may be dated prior to the fix, it was related to me by my homeserver just the other day. Isn't there some benefit to cleaning up the old bad messages rather than continuing to propagate them? |
you could try clearing the bad rows out of the |
Receive wrong receipts from matrix.org
|
See also: element-hq/element-web#9211
When using worker mode with develop (ie: matrix.org), read receipts sent by the federation sender have the wrong
data
: instead of an object, it is sending a string which ends up looking like this:I believe the issue stems from
get_all_updated_receipts
instorage/receipts.py
which returns thedata
as a string, not as an object. This gets passed along to theReceiptsStream
because of theupdate_function
, which then goes through the serialization normally to be sent as RDATA to the federation sender.The federation sender then sees a row which looks like this (different homeserver):
As shown, the
data
is a string, which then goes through the JSON serialization and off to remote servers which happily consume and store this:Opening this issue because I'm not really clear on what the fix would be: Having
get_all_updated_receipts
return a real object sounds right, but I'm not sure what would then happen to thepusherpool.py
thing, if anything.The text was updated successfully, but these errors were encountered: