MagicStack / MagicStack/asyncpg

v0.31.0: Undefined symbol "call_once" on FreeBSD 15

Open
#1,334 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.1k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

first things first: thanks for the great software!

my issue:
installed under python 3.12 via pip on FreeBSD 15.1-p1:

```...
Collecting asyncpg==0.31.0
Using cached asyncpg-0.31.0-cp312-cp312-freebsd_15_1_release_p1_amd64.whl
Installing collected packages: asyncpg
...
```

results in this:
```...
import asyncpg
File "/usr/home/l9/py312/lib/python3.12/site-packages/asyncpg/__init__.py", line 9, in
from .connection import connect, Connection # NOQA
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/home/l9/py312/lib/python3.12/site-packages/asyncpg/connection.py", line 25, in
from . import connect_utils
File "/usr/home/l9/py312/lib/python3.12/site-packages/asyncpg/connect_utils.py", line 33, in
from . import protocol
File "/usr/home/l9/py312/lib/python3.12/site-packages/asyncpg/protocol/__init__.py", line 11, in
from .protocol import Protocol, NO_TIMEOUT, BUILTIN_TYPE_NAME_MAP
ImportError: /usr/home/l9/py312/lib/python3.12/site-packages/asyncpg/protocol/protocol.cpython-312.so: Undefined symbol "call_once"
```

```% ldd python3.12/site-packages/asyncpg/protocol/protocol.cpython-312.so
python3.12/site-packages/asyncpg/protocol/protocol.cpython-312.so:
libthr.so.3 => /lib/libthr.so.3 (0x103df0c5a000)
libc.so.7 => /lib/libc.so.7 (0x103df255f000)
libsys.so.7 => /lib/libsys.so.7 (0x103df2bb6000)
```

None of the three libs contains the `call_once` symbol.
Some link error / missconfiguration?!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the Python 3.12 import failure on FreeBSD 15.1-p1 and inspect asyncpg/protocol/protocol.cpython-312.so with ldd, following the imports through asyncpg/__init__.py, connection.py, and connect_utils.py. Trace why call_once is unresolved in the packaged wheel, then verify that a corrected FreeBSD installation imports successfully and retains the existing platform coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
postgresql, python
Domain
build-system, databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.