View Issue Details

IDProjectCategoryView StatusLast Update
0005953unrealircdpublic2023-05-28 10:16
Reporterprogval Assigned Tosyzop  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version5.2.1-rc1 
Fixed in Version6.1.1-rc1 
Summary0005953: CHATHISTORY AROUND excludes "central" messages
DescriptionWhen using CHATHISTORY AROUND with a timestamp <https://ircv3.net/specs/extensions/chathistory#around>, Unreal excludes messages whose timestamp is exactly equal to the one provided by the client.

IMO this is incorrect, because there any many reasons this client could have picked this timestamp, so the server can't assume the client already has this particular message(s).


Additionally, when using CHATHISTORY AROUND with a msgid, Unreal also excludes the message with that msgid.
IMO, Unreal should not exclude it either, because the client may not know that message either, because it may have discovered it without the message itself somehow (eg. +draft/react or something like https://github.com/ircv3/ircv3-ideas/issues/8#issuecomment-842986798 )
Steps To Reproducesend messages:

C -> S: PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 0
S -> C: @msgid=Y7ZtpKFyrFTraCzRBbTFKh;time=2021-07-04T11:33:45.792Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 0
C -> S: PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 1
S -> C: @msgid=6e5xElPYeBBL1AxslqwTOw;time=2021-07-04T11:33:45.795Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 1
C -> S: PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 2
S -> C: @msgid=7zWKrwZAnJIt3ZM52uUiO1;time=2021-07-04T11:33:45.798Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 2
C -> S: PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 3
S -> C: @msgid=obttgp5wjmlZGIf0awRbwW;time=2021-07-04T11:33:45.802Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 3
C -> S: PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 4
S -> C: @msgid=id3o8UePoaQej5Us17TebB;time=2021-07-04T11:33:45.805Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 4
C -> S: PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 5
S -> C: @msgid=R3v5ds26q5LRADDSzoUocJ;time=2021-07-04T11:33:45.808Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 5
C -> S: PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 6
S -> C: @msgid=WZdlbNaVcAkbRfc0gZQKIQ;time=2021-07-04T11:33:45.811Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 6
C -> S: PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 7
S -> C: @msgid=hP3ROO62YEO2OZwdmGv8oK;time=2021-07-04T11:33:45.814Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 7
C -> S: PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 8
S -> C: @msgid=FiaieJBht2rMgLCidIUCXm;time=2021-07-04T11:33:45.817Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 8
C -> S: PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 9
S -> C: @msgid=PsucWztZc9c6gVwLgiphVN;time=2021-07-04T11:33:45.820Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 9

get messages around message 7's timestamp:

C -> S: CHATHISTORY AROUND #chan3e1385d8c5d41d5ecde521b2 timestamp=2021-07-04T11:33:45.814Z 3
S -> C: :My.Little.Server BATCH +JLqWBfwMpxbOylOlsUSpz2 chathistory #chan3e1385d8c5d41d5ecde521b2
S -> C: @batch=JLqWBfwMpxbOylOlsUSpz2;msgid=WZdlbNaVcAkbRfc0gZQKIQ;time=2021-07-04T11:33:45.811Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 6
S -> C: @batch=JLqWBfwMpxbOylOlsUSpz2;msgid=FiaieJBht2rMgLCidIUCXm;time=2021-07-04T11:33:45.817Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 8
S -> C: @batch=JLqWBfwMpxbOylOlsUSpz2;msgid=PsucWztZc9c6gVwLgiphVN;time=2021-07-04T11:33:45.820Z :bar!~username@Clk-4D552FD5 PRIVMSG #chan3e1385d8c5d41d5ecde521b2 :this is message 9
S -> C: :My.Little.Server BATCH -JLqWBfwMpxbOylOlsUSpz2

this works similarly when using message 7's msgid
Additional InformationErgo does send these "central" messages.
Tagsircv3
3rd party modules

Activities

syzop

2023-05-28 10:16

administrator   ~0022887

Last edited: 2023-05-28 10:16

Thanks for the report and your patience.
This is fixed now in: https://github.com/unrealircd/unrealircd/commit/a4d7ca022ea5bd3154403578c68cf1aaa29d1b70
And our build tests now test various CHATHISTORY features each time.

commit a4d7ca022ea5bd3154403578c68cf1aaa29d1b70 (HEAD -> unreal60_dev, origin/unreal60_dev, origin/HEAD)
Author: Bram Matthys <[email protected]>
Date: Sun May 28 10:15:51 2023 +0200

    Update CHATHISTORY AROUND to include middle message
    Reported by progval in https://bugs.unrealircd.org/view.php?id=5953

Issue History

Date Modified Username Field Change
2021-07-04 13:44 progval New Issue
2021-07-04 13:44 progval Tag Attached: ircv3
2021-07-04 14:05 syzop Assigned To => syzop
2021-07-04 14:05 syzop Status new => confirmed
2023-05-28 10:16 syzop Status confirmed => resolved
2023-05-28 10:16 syzop Resolution open => fixed
2023-05-28 10:16 syzop Fixed in Version => 6.1.1-rc1
2023-05-28 10:16 syzop Note Added: 0022887
2023-05-28 10:16 syzop Note Edited: 0022887