[WASM] SChunk.__getitem__/get_slice raises RuntimeError on Pyodide 0.29.4 (works on 0.29.3 and 314.0.0)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- python, wasm
- Ambito
- build-system, testing-qa
Direzione di ricerca
Inizia da tests/test_open.py::test_load_schunk_returns_in_memory_copy e riproduci il problema con Pyodide 0.29.4, quindi esamina il percorso get_slice/getitem di schunk.py e l’entry point blosc2_ext.pyx indicato nel traceback. Controlla la gestione della versione di Pyodide in .github/workflows/cibuildwheels.yml e wasm.yml. Il lavoro è completato quando lo slicing di SChunk caricati in memoria funziona su 0.29.4 senza introdurre regressioni negli ambienti 0.29.3 e 314.0.0, che superano i test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
On the WASM/Pyodide build, slicing an in-memory SChunk that was loaded from
a frame fails with RuntimeError: Error while getting the slice — but only
under Pyodide 0.29.4. The same code passes on Pyodide 0.29.3 (cp313) and
314.0.0 (cp314).
The wheel tag is pyemscripten_2025_0_wasm32 (ABI-level), so a wheel built/tested
against 0.29.3 still runs on a user's 0.29.4 runtime — meaning this is a genuine
runtime failure for 0.29.4 users, not just a CI artifact.
Reproducer
tests/test_open.py::test_load_schunk_returns_in_memory_copy:
urlpath = tmp_path / "schunk.b2frame"
data = np.arange(20, dtype=np.int32)
blosc2.SChunk(data=data, urlpath=urlpath, mode="w",
cparams={"typesize": data.dtype.itemsize})
loaded = blosc2.load(urlpath) # in-memory copy, urlpath is None
assert loaded[:] == data.tobytes() # <-- RuntimeError here
Traceback
schunk.py:1114 getitem -> get_slice(item.start, item.stop)
schunk.py:1058 get_slice -> super().get_slice(start, stop, out)
blosc2_ext.pyx:2058 -> RuntimeError: Error while getting the slice
Environment matrix
│ Python / ABI │ Pyodide │ Result │
│ cp313 / pyemscripten_2025_0 │ 0.29.3 │ ✅ pass │
│ cp313 / pyemscripten_2025_0 │ 0.29.4 │ ❌ RuntimeError │
│ cp314 / pyemscripten_2026_0 │ 314.0.0 │ ✅ pass │
Current workaround
.github/workflows/cibuildwheels.yml pins CIBW_PYODIDE_VERSION: 0.29.3 for the
cp313 wasm job (cibuildwheel 4.1's default is 0.29.4). This keeps CI green and
matches the wheels wasm.yml already ships, but does not fix the runtime for
0.29.4 users.
- Lingua principale
- Python
- Stelle
- 211
- Fork
- 63
- Merge medio
- 1g 7h
- PR unite (30g)
- 5
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Blosc/python-blosc2
-
documentation sustain-2026
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Blosc/python-blosc2#710 ·
-
documentation sustain-2026
Difficoltà 2/5 Mezza giornata Idoneità per principianti 74/100
Blosc/python-blosc2#651 · 1 commento ·
-
documentation good first issue sustain-2026
Difficoltà 2/5 Mezza giornata Idoneità per principianti 74/100
Blosc/python-blosc2#650 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
Blosc/python-blosc2#693 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
Blosc/python-blosc2#689 ·
Tutte le issue di Blosc/python-blosc2
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
use-agent-os/agent-os#3314 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
BasedHardware/omi#15662 · 1 commento ·
-
documentation help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
AiursoftWeb/AnduinOS-2#19 ·