Skip to content

"No space left on device" but space available. Suspected python3.8 issue #288

Description

@nobicycle

Hello,

I have compiled libzim in the past under Arch linux sarch64 architecture, but now I get what seems to a strange error below about lacking disk space. However space is available (see df output below).

I suspect this is a python 3.8 issue, which supports enhancement request:

"Would it be possible to remove Python dependence?"
#265

I have python3.6 installed as well as the default python (3.8). Where would I instruct the compilation to use python3.6?

best wishes

$ makepkg
==> Making package: libzim 6.0.2-1 (Tue 03 Dec 2019 21:15:45 WITA)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found 6.0.2.tar.gz
==> Validating source files with sha256sums...
6.0.2.tar.gz ... Passed
==> Extracting sources...
-> Extracting 6.0.2.tar.gz with bsdtar
==> Removing existing $pkgdir/ directory...
==> Starting build()...

  • exec meson setup --prefix /usr --libexecdir lib --sbindir bin --buildtype plain --auto-features enabled --wrap-mode nodownload -D b_lto=false -D b_pie=true build
    Directory already configured.

Just run your build command (e.g. ninja) and Meson will regenerate as necessary.
If ninja fails, run "ninja reconfigure" or "meson --reconfigure"
to force Meson to regenerate.

If build failures persist, run "meson setup --wipe" to rebuild from scratch
using the same options as passed when configuring the build.
To change option values, run "meson configure" instead.
ninja: Entering directory `build'
ninja: no work to do.
==> Starting check()...
[0/1] Running all tests.
1/6 cluster OK 4.04 s
2/6 dirent OK 0.09 s
3/6 header OK 0.05 s
4/6 uuid OK 1.07 s
5/6 template OK 0.06 s
6/6 pytest FAIL 6.02 s (exit status 1)

Ok: 5
Expected Fail: 0
Fail: 1
Unexpected Pass: 0
Skipped: 0
Timeout: 0

The output from the failed tests:

6/6 pytest FAIL 6.02 s (exit status 1)

--- command ---
PYTHONPATH='/home/me/.cache/yay/libzim/src/libzim-6.0.2/build/test/pytest/wrapper' /usr/bin/python -m pytest
--- Listing only the last 100 lines from a long log. ---
range(0, 100, 10)
))
def wrong_zim(request, tmpdir):
prefix, byte, file_size = request.param
basename = 'prefix' if prefix else 'noprefix'
filename = tmpdir/'{}{}{:x}.zim'.format(basename, file_size, byte)
with open(str(filename), 'wb') as f:
f.write(prefix)

      f.write(bytes([byte])*file_size)

E OSError: [Errno 28] No space left on device

basic_open_test.py:22: OSError
______________ ERROR at setup of test_open_wrong_zim[wrong_zim57] ______________

request = <SubRequest 'wrong_zim' for <Function test_open_wrong_zim[wrong_zim57]>>
tmpdir = local('/tmp/pytest-of-me/pytest-1/test_open_wrong_zim_wrong_zim58')

@pytest.fixture(params=product(
    (b'ZIM\x04', b''),
    (0x00, 0x01, 0x11, 0x30, 0xFF),
    range(0, 100, 10)
))
def wrong_zim(request, tmpdir):
    prefix, byte, file_size = request.param
    basename = 'prefix' if prefix else 'noprefix'
    filename = tmpdir/'{}_{}_{:x}.zim'.format(basename, file_size, byte)
    with open(str(filename), 'wb') as f:
        f.write(prefix)
      f.write(bytes([byte])*file_size)

E OSError: [Errno 28] No space left on device

basic_open_test.py:22: OSError
______________ ERROR at setup of test_open_wrong_zim[wrong_zim58] ______________

request = <SubRequest 'wrong_zim' for <Function test_open_wrong_zim[wrong_zim58]>>
tmpdir = local('/tmp/pytest-of-me/pytest-1/test_open_wrong_zim_wrong_zim59')

@pytest.fixture(params=product(
    (b'ZIM\x04', b''),
    (0x00, 0x01, 0x11, 0x30, 0xFF),
    range(0, 100, 10)
))
def wrong_zim(request, tmpdir):
    prefix, byte, file_size = request.param
    basename = 'prefix' if prefix else 'noprefix'
    filename = tmpdir/'{}_{}_{:x}.zim'.format(basename, file_size, byte)
    with open(str(filename), 'wb') as f:
        f.write(prefix)
      f.write(bytes([byte])*file_size)

E OSError: [Errno 28] No space left on device

basic_open_test.py:22: OSError
______________ ERROR at setup of test_open_wrong_zim[wrong_zim59] ______________

request = <SubRequest 'wrong_zim' for <Function test_open_wrong_zim[wrong_zim59]>>
tmpdir = local('/tmp/pytest-of-me/pytest-1/test_open_wrong_zim_wrong_zim510')

@pytest.fixture(params=product(
    (b'ZIM\x04', b''),
    (0x00, 0x01, 0x11, 0x30, 0xFF),
    range(0, 100, 10)
))
def wrong_zim(request, tmpdir):
    prefix, byte, file_size = request.param
    basename = 'prefix' if prefix else 'noprefix'
    filename = tmpdir/'{}_{}_{:x}.zim'.format(basename, file_size, byte)
    with open(str(filename), 'wb') as f:
        f.write(prefix)
      f.write(bytes([byte])*file_size)

E OSError: [Errno 28] No space left on device

basic_open_test.py:22: OSError
=================================== FAILURES ===================================
_______________________ test_open_wrong_zim[wrong_zim50] _______________________

wrong_zim = local('/tmp/pytest-of-me/pytest-1/test_open_wrong_zim_wrong_zim51/noprefix_0_0.zim')

def test_open_wrong_zim(wrong_zim):
  print("opening {}".format(wrong_zim))

basic_open_test.py:97:


self = <_pytest.capture.EncodedFile object at 0xffffa8df0790>
obj = b'opening /tmp/pytest-of-me/pytest-1/test_open_wrong_zim_wrong_zim51/noprefix_0_0.zim'

def write(self, obj):
    if isinstance(obj, str):
        obj = obj.encode(self.encoding, "replace")
    else:
        raise TypeError(
            "write() argument must be str, not {}".format(type(obj).__name__)
        )
  self.buffer.write(obj)

E OSError: [Errno 28] No space left on device

/usr/lib/python3.8/site-packages/_pytest/capture.py:427: OSError
=================== 1 failed, 144 passed, 13 errors in 3.83s ===================

Full log written to /home/me/.cache/yay/libzim/src/libzim-6.0.2/build/meson-logs/testlog.txt
FAILED: meson-test
/usr/bin/meson test --no-rebuild --print-errorlogs
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in check().
Aborting...
[me@boxmedis libzim]$ df -h
Filesystem Size Used Avail Use% Mounted on
dev 954M 0 954M 0% /dev
run 991M 536K 990M 1% /run
/dev/mmcblk0p1 15G 9.7G 4.3G 70% /
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 0 991M 0% /sys/fs/cgroup
tmpfs 991M 1.1M 990M 1% /tmp
tmpfs 199M 0 199M 0% /run/user/1000

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions