juicedata / juicefs

JuiceFS is a distributed POSIX file system built on top of Redis and S3.
https://juicefs.com
Apache License 2.0
10.58k stars 925 forks source link

pyxattr test_empty_value failed with meta engine tikv. #4844

Open zhoucheng361 opened 4 months ago

zhoucheng361 commented 4 months ago

What happened: https://github.com/juicedata/juicefs/actions/runs/9057923627/job/24882685721


============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-8.2.0, pluggy-1.5.0
rootdir: /home/runner/work/juicefs/juicefs/pyxattr
collected 287 items

tests/test_xattr.py FFFFFFFFFFFF........................................ [ 18%]
........................................................................ [ [43](https://github.com/juicedata/juicefs/actions/runs/9057923627/job/24882685721#step:13:44)%]
........................................................................ [ 68%]
........................................................................ [ 93%]
...................                                                      [100%]

=================================== FAILURES ===================================
_________________________ test_empty_value[file name] __________________________

subject = ('/jfs/tmp6jvlbtbs/xattr-g0ujrajc.test', False)

    def test_empty_value(subject):
        item, nofollow = subject
>       xattr.set(item, USER_ATTR, EMPTY_VAL, nofollow=nofollow)
E       OSError: [Errno 5] Input/output error

tests/test_xattr.py:229: OSError
_____________________ test_empty_value[file name (bytes)] ______________________

subject = (b'/jfs/tmpiby30ipp/xattr-iv3xnkqk.test', False)

    def test_empty_value(subject):
        item, nofollow = subject
>       xattr.set(item, USER_ATTR, EMPTY_VAL, nofollow=nofollow)
E       OSError: [Errno 5] Input/output error

tests/test_xattr.py:229: OSError
______________________ test_empty_value[file name (path)] ______________________

subject = (PurePosixPath('/jfs/tmpcx38pave/xattr-a_uxwt7c.test'), False)

    def test_empty_value(subject):
        item, nofollow = subject
>       xattr.set(item, USER_ATTR, EMPTY_VAL, nofollow=nofollow)
E       OSError: [Errno 5] Input/output error

tests/test_xattr.py:229: OSError
__________________________ test_empty_value[file FD] ___________________________

subject = (11, False)

    def test_empty_value(subject):
        item, nofollow = subject
>       xattr.set(item, USER_ATTR, EMPTY_VAL, nofollow=nofollow)
E       OSError: [Errno 5] Input/output error

tests/test_xattr.py:229: OSError
________________________ test_empty_value[file object] _________________________

subject = (<_io.TextIOWrapper name=11 mode='r' encoding='UTF-8'>, False)

    def test_empty_value(subject):
        item, nofollow = subject
>       xattr.set(item, USER_ATTR, EMPTY_VAL, nofollow=nofollow)
E       OSError: [Errno 5] Input/output error

tests/test_xattr.py:229: OSError
__________________ test_empty_value[file via symlink (bytes)] __________________

subject = (b'/jfs/tmphxxdkbmc/xattr-muc8k4gx.test.symlink', False)

    def test_empty_value(subject):
        item, nofollow = subject
>       xattr.set(item, USER_ATTR, EMPTY_VAL, nofollow=nofollow)
E       OSError: [Errno 5] Input/output error

tests/test_xattr.py:229: OSError
__________________ test_empty_value[file via symlink (path)] ___________________

subject = (PurePosixPath('/jfs/tmpo1pjo1qn/xattr-sndeg5wj.test.symlink'), False)

    def test_empty_value(subject):
        item, nofollow = subject
>       xattr.set(item, USER_ATTR, EMPTY_VAL, nofollow=nofollow)
E       OSError: [Errno 5] Input/output error

tests/test_xattr.py:229: OSError
=========================== short test summary info ============================
FAILED tests/test_xattr.py::test_empty_value[file name] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[file name (bytes)] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[file name (path)] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[file FD] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[file object] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[file io stream] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[directory] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[directory (bytes)] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[directory (path)] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[file via symlink] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[file via symlink (bytes)] - OSError: [Errno 5] Input/output error
FAILED tests/test_xattr.py::test_empty_value[file via symlink (path)] - OSError: [Errno 5] Input/output error
================= 12 failed, 2[75](https://github.com/juicedata/juicefs/actions/runs/9057923627/job/24882685721#step:13:76) passed in 1385.37s (0:23:05) ==================

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?

Environment:

SandyXSD commented 4 months ago

TiKV doesn't support nil value.

davies commented 4 months ago

We don't know which use case depends on this feature, ignore it in tests for now.