[WASM] SChunk.__getitem__/get_slice raises RuntimeError on Pyodide 0.29.4 (works on 0.29.3 and 314.0.0)
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- python, wasm
- Domain
- build-system, testing-qa
Research direction
Start with tests/test_open.py::test_load_schunk_returns_in_memory_copy and reproduce the failure under Pyodide 0.29.4, then inspect the schunk.py get_slice/getitem path and the blosc2_ext.pyx entry point named in the traceback. Check .github/workflows/cibuildwheels.yml and wasm.yml for the Pyodide version handling. Done means in-memory frame-loaded SChunk slicing works on 0.29.4 without regressing the passing 0.29.3 and 314.0.0 environments.
Written by the indexing model from the issue text.
Description
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.
- Dominant language
- Python
- Stars
- 211
- Forks
- 63
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 5
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Blosc/python-blosc2
-
documentation sustain-2026
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Blosc/python-blosc2#710 ·
-
documentation sustain-2026
Difficulty 2/5 Half a day Newbie friendliness 74/100
Blosc/python-blosc2#651 · 1 comment ·
-
documentation good first issue sustain-2026
Difficulty 2/5 Half a day Newbie friendliness 74/100
Blosc/python-blosc2#650 ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
Blosc/python-blosc2#693 ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
Blosc/python-blosc2#689 ·
All issues in Blosc/python-blosc2
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
use-agent-os/agent-os#3314 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
BasedHardware/omi#15662 · 1 comment ·
-
documentation help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
AiursoftWeb/AnduinOS-2#19 ·