Skip to content
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

target_cache.put で KeyError が発生する #147

Closed
yuma-m opened this issue Oct 7, 2024 — with Huly for GitHub · 16 comments
Closed

target_cache.put で KeyError が発生する #147

yuma-m opened this issue Oct 7, 2024 — with Huly for GitHub · 16 comments
Assignees
Labels
kind/Bug🐛 Unexpected behavior

Comments

Copy link

yuma-m commented Oct 7, 2024

No description provided.

@yupix
Copy link
Owner

yupix commented Oct 7, 2024

ご報告ありがとうございます。
前回と同様にエラーでご迷惑をおかけして申し訳ないです。

朝は少し作業する時間が取れないので、昼頃か夕方に調査させて頂きます。

上記の del self.items[key] は self._remove_node(self.items[key]) とすべき?

その可能性は結構高いので調査の際に確認させて頂きます🙏

また、複数のコルーチンから LRUCache への操作が発生しても大丈夫でしょうか?

複数のコルーチンからのアクセスは問題ないと考えています

@yupix
Copy link
Owner

yupix commented Oct 8, 2024

LRUCacheを作成した際に fetch_ 系での動作確認を忘れていたみたいで、全く気づきませんでした。

上記の del self.items[key] は self._remove_node(self.items[key]) とすべき?

で解決しそうなので v0.7.2をリリースしますのでそちらで解決するようでしたらIssueをクローズしていただけると助かります。

@yupix
Copy link
Owner

yupix commented Oct 8, 2024

リリースしたのでお手数ですが確認のほどよろしくお願いします。

https://pypi.org/project/mipac/0.7.2/

@yupix yupix added the kind/Bug🐛 Unexpected behavior label Oct 8, 2024
@yuma-m
Copy link
Author

yuma-m commented Oct 8, 2024

@yupix スピーディなご対応、どうもありがとうございます。アップデートの上、しらばく運用して問題なさそうであれば Close するようにいたします。

@yuma-m
Copy link
Author

yuma-m commented Oct 8, 2024

@yupix 五月雨式にすみません。0.7.2 に上げたところ以下のようなエラーが発生するので、5ecc256 と対応する下記の行の削除が必要そうです。

"UserRole",

  File "/home/xxx/main.py", line 12, in <module>
    from mipac import Note
  File "/home/xxx/.local/lib/python3.13/site-packages/mipac/__init__.py", line 15, in <module>
    from .actions import *
  File "/home/xxx/.local/lib/python3.13/site-packages/mipac/actions/__init__.py", line 1, in <module>
    from .admins import *
  File "/home/xxx/.local/lib/python3.13/site-packages/mipac/actions/admins/__init__.py", line 1, in <mo>
    from .admin import *
  File "/home/xxx/.local/lib/python3.13/site-packages/mipac/actions/admins/admin.py", line 7, in <modul>
    from mipac.models.admin import IndexStat, ModerationLog, ServerInfo, UserIP
  File "/home/xxx/.local/lib/python3.13/site-packages/mipac/models/__init__.py", line 12, in <module>
    from .user import *
AttributeError: module 'mipac.models.user' has no attribute 'UserRole'

@yupix
Copy link
Owner

yupix commented Oct 8, 2024

申し訳ないです。
こちらでもそれは出てたのですがコミットするのを忘れてました、今から再度リリースさせて頂きます

@yupix
Copy link
Owner

yupix commented Oct 8, 2024

v0.7.3としてリリースしました

https://pypi.org/project/mipac/0.7.3/

@yuma-m
Copy link
Author

yuma-m commented Oct 10, 2024

1点質問です。
client.note.action.fetch_reactions(note_id="xxx", limit=xxx, type=":xxx:")None を返す場合があるのですが、想定通りの挙動でしょうか? Type Hints では戻り値が list[NoteReaction] となっているので気になりました。

MiPAC/mipac/actions/note.py

Lines 275 to 283 in a75c050

async def fetch_reactions(
self,
type: str | None = None,
limit: int = 10,
since_id: str | None = None,
until_id: str | None = None,
*,
note_id: str,
) -> list[NoteReaction]:

以下の fetch_reaction 内で、cache(override=False)get_reactions を呼び出している部分が気になったのですが、もし私のアプリケーション側での fetch/get メソッドの使い分け等が間違っているようでしたら教えて下さい。自身の過去の発言に対するリアクションを定期的に取得する処理で利用しております。

@cache(group="get_note_reaction", override=True)
async def fetch_reactions(
self,
type: str | None = None,
limit: int = 10,
since_id: str | None = None,
until_id: str | None = None,
*,
note_id: str,
) -> list[NoteReaction]:
return await self.get_reactions(
type=type, note_id=note_id, limit=limit, since_id=since_id, until_id=until_id
)

@yupix
Copy link
Owner

yupix commented Oct 10, 2024

質問の方に関してはこちらの想定としてはNoneは返すつもりがないのでバグです。他の点については現在まだ自宅ではないので帰宅後に確認します。

@yupix
Copy link
Owner

yupix commented Oct 10, 2024

以下の fetch_reaction 内で、cache(override=False) の get_reactions を呼び出している部分が気になったのですが、もし私のアプリケーション側での fetch/get メソッドの使い分け等が間違っているようでしたら教えて下さい。自身の過去の発言に対するリアクションを定期的に取得する処理で利用しております。

スマホで軽くコードを見た感じ本来fetchでリクエストをやるはずがほとんどの箇所でgetで行ってしまっているのが原因かもしれません。

@yupix
Copy link
Owner

yupix commented Oct 10, 2024

このissueでやるのは少し範囲外な気がするので新しいissueを作成しました。 #149

@yupix
Copy link
Owner

yupix commented Oct 10, 2024

fetch,getに関係なく今回の不具合は cache デコレータにてキーが見つからなかった場合に対応した動作が無かったことのようです、今動作確認をある程度したのでリリースします

@yupix
Copy link
Owner

yupix commented Oct 10, 2024

v0.7.4で上記の問題は修正できたかと思います。
度々申し訳ございませんが、再度更新のほどよろしくお願いします。

https://pypi.org/project/mipac/0.7.4/

@yuma-m
Copy link
Author

yuma-m commented Oct 11, 2024

いつも素早いご対応、どうもありがとうございます🙏
v0.7.4 でしばらく挙動を確認させていただきます。

@yuma-m
Copy link
Author

yuma-m commented Oct 17, 2024

4〜5日ほど運用しておりますが、特に問題なさそうですので Close いたします。ご対応どうもありがとうございました!

@yuma-m yuma-m closed this as completed Oct 17, 2024
@yupix
Copy link
Owner

yupix commented Oct 17, 2024

検証ありがとうございます。お手数おかけして申し訳ないです。いつもバグ報告助かってます。また何かありましたらご連絡くだされば幸いです🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/Bug🐛 Unexpected behavior
Projects
None yet
Development

No branches or pull requests

2 participants