-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
リモートユーザーの一時停止を解除した後は user.isDeleted = true #13504
Comments
isDeleted だけ true で、実際に削除動作が進められていませんでした。 |
Now I have faced a new case that may be related to this issue: What did
As a note, User P1 doesn't follow any user in local or remote, both at suspended/unsuspended time. What happened
It seems any Misskey-based instances are not federating normally user P1 except Instance F(Firefish-based) and Misskey.IO, As user P1 can remotely follow the user in those instances. So now: I think ActivityPub Undo Delete Activity is not processed correctly (H, N), and something makes Misskey assume User P1 After Instance H updates User P1 I will test this on Intranet by creating some testing-purpose instances. |
I did some research and It may:
So...
I will open PR after do some researches more. |
However, Misskey can't determine "Why actor deleted from remote?" so processing all remote actor deletion as soft deletion may not good. If to do this, run hard actor deletion job after specified time may required. |
Currently, Undo Delete Actor activity is not processed.
So one of my think might wrong:
It happens only at job failed time or something else. |
The API currently used is not using soft delete, so I think I need to just use hard delete. I'm trying to re-run delete account job when remote actor is in local database and |
The PR #13890 will fixes recent case but not first case that is:
So now I can't figure how this caused but the PR fixes recent case perfectly at least, and I don't think so that I will find why first case caused. (I'm not operator of Instance K and I think logs are deleted in past) |
Misskey needs to remain Suspended State of Remote account, so account deletion job for remote Suspended User does not delete him completely from DB. |
@atsu1125 If Misskey Instance A suspends User A1 and Instance A federated to Misskey Instance B, Misskey sends ActivityPub Activity contains Actor Delete, which same as User Delete. So Remote Misskey Instance(In this case Instance B) should just remove account. And If Remote Misskey Instance unsuspends User(In this case User A1) and Misskey Instance has that user in record with If you are saying about A1 suspended in B, In second case User P1 not suspended at all remote instances but federation broken. I think this is bug. But I didn't tested A1 suspended in B and A1 also suspended in A so Delete Actor activity sent, but I think that's not make sense since Misskey completely ignores all activity including Delete Actor If actor user suspended in Local. |
So, this is what I found:
So, this is what I think:
So I think that would be no cause for concern. |
Misskey doesn't delete User A1 from User Table on DB when Instance B deletes User A1 as Moderation. Because User A1 is still active on Instance A, so if User A1 is deleted from User Table on DB of Instance B, User A1 is newly created on Instance B even A1 is previously deleted on Instance B. |
Now I saying about not: suspending remote user in local For example, suspending |
And,
This is false in Misskey 2024.3.1 version. If Instance A moderator deletes remote user B1 and when Instance A needs fetch(note federated, user queried, and other reason) user B1, Misskey just fetches User B1 as normal new user even User B1 was suspended before delete as Misskey always completely delete user in database If requested in Control Panel. |
I understand.
|
Yes, I think so. But ActivityPub standard is not has activity type for this so I think Misskey don't have other options that fits to all ActivityPub implementations. |
I have looked
|
Thanks for lookup reference. |
💡 Summary
この問題がuser suspendのために発生した問題であるかどうかは不明ですが、推定される唯一の理由です。
私はAインスタンスで活動していますが、Bインスタンスに私とのリアクション、フォロー活動が全部連合されず、Bインスタンスの主人と協力して問題を解決していました。
ロギングで確認した結果、
getAuthUserFromApId
がnullを返し、これを確認した結果isDeletedがtrueの場合にのみnullを返すことを確認してSQL Queryを実行してみると、実際にisDeletedがtrueであり、これをfalseに変換した後 再起動すると問題が解決しました。以前にスパムのメンション事態の際、私のアカウントが誤って停止する事態がありました。 これがisDeletedがtrueである唯一の理由ではないかと推測します。
Aインスタンスの私のアカウントはisRootがtrueなので、Aインスタンスではaccount delete activityはなかったと思います。 当然、Aインスタンスでアカウントを停止したりすることはなく、Bインスタンスで私のアカウントを一時的に停止したことが推測される唯一の理由です。
停止解除後に#13256の問題と同じことがあり、取り扱う内容もある程度似ていますが、同じ問題ではないようで、別の問題として公開します。
🥰 Expected Behavior
isDeleted = false
🤬 Actual Behavior
isDeleted = true
📝 Steps to Reproduce
💻 Frontend Environment
🛰 Backend Environment (for server admin)
Do you want to address this bug yourself?
The text was updated successfully, but these errors were encountered: