View Issue Details

IDProjectCategoryView StatusLast Update
0005616unrealircdpublic2020-04-10 19:33
ReporterCheiron Assigned Tosyzop  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version5.0.3.1 
Fixed in Version5.0.4 
Summary0005616: Sajoin user 0 works but nicklists do not update to show parting of channels
DescriptionWhen we issue a /sajoin user 0 command.. the server reports correctly that user has parted all channels. and that the oper in question has (used sajoin to make user join 0).

However.. the nicklists for the channels the user is in.. do not update to reflect this and still show the user as remaining in the channel unless you are on the same local server as the user was in which case, then you see the user leave and the nicklist updates.
Additional InformationWe currently have a 6 server network, 5 on unreal 5.0.3.1 and 1 using unreal 4.2.4.1.. all using openssl 1.0.2k-fips and PCRE2
with the exception of the unreal 4.. they are all Fhn6OoEmMR (the unreal 4 server is Fhn6OoEmM).
Services is Anope 2.0.4 Unrealircd 4 (enc_md5) -- build #61(taken from version)
Linux 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64=5002 (all servers have same linux reply)
Tagssajoin
3rd party modules

Activities

syzop

2020-04-07 15:15

administrator   ~0021404

I can reproduce the issue.

As it is a nick list desync the severity is major, but the priority is normal. This means it will be fixed for next release but it is not super urgent. The reason for this is twofold: 1) SAJOIN'ing to 0 is quite rare (which explains why the use has gone unnoticed until now) and 2) it requires an IRCOp action (which means normal users cannot trigger this bug).

I will probably have a go at it in the weekend.

Cheiron

2020-04-07 15:37

reporter   ~0021405

Many thanks syzop. we've only just started noticing it on the new 5 series as it always worked fine on the 4's. We use the sajoin 0 regularly due to the type of network we have and the mentality of the users. Often we'll tempshun or shun followed by that.

Look forward to the fix

Lord255

2020-04-07 23:05

reporter   ~0021406

this bug not exists within unreal5 servers in the network. ( have no unreal4 in my network, only 5.0.1 - with the desync hotfix)
---------------
joined a few chans with a simple user:
/join #test1,#test2,#noobcakes,#mdhouse
i have joined to the channels as an oper too. asked a few users to also join these channels so we can "check" if this issue really exists or not. users were from other servers as well.

entered /sajoin <user> 0, then all of the users saw that the <user> has parted all channels.
message was (example):
<user> has left #noobcakes (Left all channels)

asked all users to check:
affected <user>: left all channels, -- *** You were forced to join 0
me (as an oper): couldnt see the <user> in any chans -- good.
other users: they also saw the user leaving the channel, nicklist also seemed fine (they didn't see the user in nicklist anymore) -- good.

Cheiron

2020-04-07 23:11

reporter   ~0021407

We're on 5.0.3.1 Lord255.. i think the issue only appeared when we updated to the 5.0.3.1

Lord255

2020-04-07 23:18

reporter   ~0021408

true. my apologies. :) (i mean bugs can appear / reappear on specific versions)
syzop said he could reproduce it, i wonder if this is because of unreal4 in the network, or its a bug in (so only in) 5.0.3.1 :)

Cheiron

2020-04-07 23:20

reporter   ~0021409

Good to have been able to rule the 5.0.1 with the hotfix out though. at least that narrows things down

syzop

2020-04-10 19:31

administrator   ~0021410

Fixed, thanks for the report!

Git log (the actual fix from this bugid is the latter one):

commit 051fd4aebd7f09f48f63105193207413dabf2a57 (HEAD -> unreal50, origin/unreal50)
Author: Bram Matthys <syzop@vulnscan.org>
Date: Fri Apr 10 19:28:50 2020 +0200

    Fix message tags (such as msgid) missing for JOIN 0 and SAJOIN 0.

commit 891435e8113d33a6ad79c301dc26fc8371b20b7e
Author: Bram Matthys <syzop@vulnscan.org>
Date: Fri Apr 10 19:27:39 2020 +0200

    Fix SAJOIN to 0 (part all channels) resulting in a possible desync
    when used on a multi-server network. This was due to the PART event
    inadvertently not being sent towards the SAJOIN direction.
    Bug reported by Cheiron in https://bugs.unrealircd.org/view.php?id=5616

syzop

2020-04-10 19:33

administrator   ~0021411

Last edited: 2020-04-10 19:33

View 2 revisions

By the way, looking at some comments here and seeing confusion: this bug happens if you are on server A and are typing "SAJOIN someuser 0" where this someuser is on server B. In such a case on server B you will see the PART, but on server A you won't see the PART at all. It likely affects all 5.* versions.

Issue History

Date Modified Username Field Change
2020-04-07 13:25 Cheiron New Issue
2020-04-07 13:25 Cheiron Tag Attached: sajoin
2020-04-07 14:35 syzop Priority high => normal
2020-04-07 15:15 syzop Assigned To => syzop
2020-04-07 15:15 syzop Status new => confirmed
2020-04-07 15:15 syzop Note Added: 0021404
2020-04-07 15:37 Cheiron Note Added: 0021405
2020-04-07 23:05 Lord255 Note Added: 0021406
2020-04-07 23:11 Cheiron Note Added: 0021407
2020-04-07 23:18 Lord255 Note Added: 0021408
2020-04-07 23:20 Cheiron Note Added: 0021409
2020-04-10 19:31 syzop Status confirmed => resolved
2020-04-10 19:31 syzop Resolution open => fixed
2020-04-10 19:31 syzop Fixed in Version => 5.0.4
2020-04-10 19:31 syzop Note Added: 0021410
2020-04-10 19:33 syzop Note Added: 0021411
2020-04-10 19:33 syzop Note Edited: 0021411 View Revisions