MagicStack / MagicStack/asyncpg

Connect with passwordless DSN does not work

オープン
#1,286 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Python
スター
8.1k
フォーク
468
PR マージ指標
30日以内にマージされた PR はありません

説明

Basically as the title says: Trying to connect with a DSN that contains no password does not work

DSN in question:

@property def dsn(self) -> str: return f"postgresql+asyncpg://{self.pguser}@{self.pghost}:{self.pgport}/{self.pgdatabase}"

results, when used with

`
def get_db_url() -> str:
config = get_config()
return config.postgres.dsn

engine = create_async_engine(
get_db_url(),
echo=True,
future=True,
)
`

in the error:

ERROR: Traceback (most recent call last): File "asyncpg/protocol/coreproto.pyx", line 168, in asyncpg.protocol.protocol.CoreProtocol._process__auth File "asyncpg/protocol/coreproto.pyx", line 577, in asyncpg.protocol.protocol.CoreProtocol._parse_msg_authentication File "asyncpg/protocol/coreproto.pyx", line 672, in asyncpg.protocol.protocol.CoreProtocol._auth_password_message_cleartext AttributeError: 'NoneType' object has no attribute 'encode'

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

示されているパスワードなしの PostgreSQL DSN とエントリーポイント create_async_engine を使って失敗を再現します。報告された traceback _auth_password_message_cleartext の周辺にあるパスワード認証の経路を追跡します。パスワードなしの接続で NoneType encode error が発生しなくなり、このケースがテストでカバーされれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
postgresql, python, sqlalchemy
領域
databases
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
42/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。