pmem / pmemfile

Userspace implementation of file APIs using persistent memory.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

touch returns '1' on exit, even when succeeded

szychows opened this issue · comments

dup2 seems to cause the problem, file is created, however touch 'newfile' returns 1

[szychows@vmmalloc-70-233 mountpoint]$ export PMEMFILE_PRELOAD_LOG=pmemfile_preload.log
[szychows@vmmalloc-70-233 mountpoint]$ export INTERCEPT_LOG=intercept.log
[szychows@vmmalloc-70-233 mountpoint]$ alias pf='LD_PRELOAD=libpmemfile.so PMEMFILE_POOLS=/tmp/mountpoint:/mnt/pmemfile/pool'
[szychows@vmmalloc-70-233 mountpoint]$ pf touch newfile
touch: cannot touch 'newfile': Operation not supported
[szychows@vmmalloc-70-233 mountpoint]$ cat intercept.log 
tempfile=$(mktemp) ; tempfile2=$(mktemp) ; grep "^/" $0 | cut -d " " -f 1,2 | sed "s/^/addr2line -p -f -e /" > $tempfile ; { echo ; . $tempfile ; echo ; } > $tempfile2 ; paste $tempfile2 $0 ; exit 0
/lib64/libc.so.6 0xf84c8 -- getcwd("x\x91!", 1024) = ?
/lib64/libc.so.6 0xf84c8 -- getcwd("/tmp/mountpoint", 1024) = 16
/lib64/libc.so.6 0xf7553 -- stat("/tmp/mountpoint", 0x7ffe266f5070) = ?
/lib64/libc.so.6 0xf7553 -- stat("/tmp/mountpoint", 0x7ffe266f5070) = 0
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDONLY, 00) = ?
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDONLY, 00) = 6
/lib64/libc.so.6 0xf75a2 -- fstat(6, 0x7ffe266f2e00) = ?
/lib64/libc.so.6 0xf75a2 -- fstat(6, 0x7ffe266f2e00) = 0
/lib64/libc.so.6 0xf825e -- close(6) = ?
/lib64/libc.so.6 0xf825e -- close(6) = 0
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDONLY, 00) = ?
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDONLY, 00) = 6
/lib64/libc.so.6 0xf8115 -- flock(6, 6) = ?
/lib64/libc.so.6 0xf8115 -- flock(6, 6) = 0
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDONLY, 00) = ?
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDONLY, 00) = 7
/lib64/libc.so.6 0xf75a2 -- fstat(7, 0x7ffe266f2d30) = ?
/lib64/libc.so.6 0xf75a2 -- fstat(7, 0x7ffe266f2d30) = 0
/lib64/libc.so.6 0xf825e -- close(7) = ?
/lib64/libc.so.6 0xf825e -- close(7) = 0
/lib64/libc.so.6 0xf7553 -- stat("/mnt/pmemfile/pool", 0x7ffe266f4e10) = ?
/lib64/libc.so.6 0xf7553 -- stat("/mnt/pmemfile/pool", 0x7ffe266f4e10) = 0
/lib64/libc.so.6 0xf7bce -- read(6, "", 11) = ?
/lib64/libc.so.6 0xf7bce -- read(6, "PMEMOBJ\0\x03\0\0", 11) = 11
/lib64/libc.so.6 0xf825e -- close(6) = ?
/lib64/libc.so.6 0xf825e -- close(6) = 0
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDONLY, 023) = ?
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDONLY, 023) = 6
/lib64/libc.so.6 0xf75a2 -- fstat(6, 0x7ffe266f2dd0) = ?
/lib64/libc.so.6 0xf75a2 -- fstat(6, 0x7ffe266f2dd0) = 0
/lib64/libc.so.6 0xf825e -- close(6) = ?
/lib64/libc.so.6 0xf825e -- close(6) = 0
/lib64/libc.so.6 0xf7c85 -- access("/mnt/pmemfile/pool", 0) = ?
/lib64/libc.so.6 0xf7c85 -- access("/mnt/pmemfile/pool", 0) = 0
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDWR, 040000000) = ?
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDWR, 040000000) = 6
/lib64/libc.so.6 0xf8115 -- flock(6, 6) = ?
/lib64/libc.so.6 0xf8115 -- flock(6, 6) = 0
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDONLY, 040000000) = ?
/lib64/libc.so.6 0xf79ae -- open("/mnt/pmemfile/pool", O_RDONLY, 040000000) = 7
/lib64/libc.so.6 0xf75a2 -- fstat(7, 0x7ffe266f2d20) = ?
/lib64/libc.so.6 0xf75a2 -- fstat(7, 0x7ffe266f2d20) = 0
/lib64/libc.so.6 0xf825e -- close(7) = ?
/lib64/libc.so.6 0xf825e -- close(7) = 0
/lib64/libc.so.6 0xf7553 -- stat("/mnt/pmemfile/pool", 0x7ffe266f4e00) = ?
/lib64/libc.so.6 0xf7553 -- stat("/mnt/pmemfile/pool", 0x7ffe266f4e00) = 0
/lib64/libc.so.6 0x101dd8 -- mmap(0x0, 1075838976, 1, 34, -1, 0x0) = ?
/lib64/libc.so.6 0x101dd8 -- mmap(0x0, 1075838976, 1, 34, -1, 0x0) = 140318821756928
/lib64/libc.so.6 0x101e65 -- munmap(0x7f9e8586b000, 1075838976) = ?
/lib64/libc.so.6 0x101e65 -- munmap(0x7f9e8586b000, 1075838976) = 0
/lib64/libc.so.6 0x101dd8 -- mmap(0x7f9e85a00000, 1073741824, 3, 1, 6, 0x0) = ?
/lib64/libc.so.6 0x101dd8 -- mmap(0x7f9e85a00000, 1073741824, 3, 1, 6, 0x0) = 140318823415808
/lib64/libc.so.6 0x101dd8 -- mmap(0x0, 4096, 3, 1, 6, 0x0) = ?
/lib64/libc.so.6 0x101dd8 -- mmap(0x0, 4096, 3, 1, 6, 0x0) = 140319928602624
/lib64/libc.so.6 0xf79ae -- open("/proc/self/exe", O_RDONLY, 010) = ?
/lib64/libc.so.6 0xf79ae -- open("/proc/self/exe", O_RDONLY, 010) = 7
/lib64/libc.so.6 0xf7bce -- read(7, "", 64) = ?
/lib64/libc.so.6 0xf7bce -- read(7, "\x7fELF\x02\x01\x01\0\0\0\0\0\0\0\0\0\x03\0>\0\x01\0\0\0@5\0\0\0\0\0\0@\0\0\0\0\0\0\0\xd0\t\x01\0\0\0\0\0\0\0\0\0@\08\0\t\0...", 64) = 64
/lib64/libc.so.6 0xf825e -- close(7) = ?
/lib64/libc.so.6 0xf825e -- close(7) = 0
/lib64/libc.so.6 0x101e65 -- munmap(0x7f9ec77fd000, 4096) = ?
/lib64/libc.so.6 0x101e65 -- munmap(0x7f9ec77fd000, 4096) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a01000, 2064, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a01000, 2064, 4) = 0
/lib64/libc.so.6 0xfd657 -- brk(94524156489728) = ?
/lib64/libc.so.6 0xfd657 -- brk(94524156489728) = 94524156489728
/lib64/libc.so.6 0x10607f -- open("/sys/devices/system/cpu/online", O_RDONLY | O_CLOEXEC, 0200000) = ?
/lib64/libc.so.6 0x10607f -- open("/sys/devices/system/cpu/online", O_RDONLY | O_CLOEXEC, 0200000) = 7
/lib64/libc.so.6 0x105eae -- read(7, "", 8192) = ?
/lib64/libc.so.6 0x105eae -- read(7, "0-3\n", 8192) = 4
/lib64/libc.so.6 0x106241 -- close(7) = ?
/lib64/libc.so.6 0x106241 -- close(7) = 0
/lib64/libc.so.6 0xfd657 -- brk(94524156624896) = ?
/lib64/libc.so.6 0xfd657 -- brk(94524156624896) = 94524156624896
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 32, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 32, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85d02000, 1104, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85d02000, 1104, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2896, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2896, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = 0
/lib64/libc.so.6 0xf825e -- close(6) = ?
/lib64/libc.so.6 0xf825e -- close(6) = 0
/lib64/libc.so.6 0xfd657 -- brk(94524156760064) = ?
/lib64/libc.so.6 0xfd657 -- brk(94524156760064) = 94524156760064
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85d02000, 1176, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85d02000, 1176, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85d02000, 1104, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85d02000, 1104, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 2360320, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 2360320, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 32, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 32, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85d02000, 1104, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85d02000, 1104, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2896, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2896, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 5152, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 5152, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85db8000, 5584, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85db8000, 5584, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 5152, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 5152, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x2ca2d -- open("/usr/lib/locale/locale-archive", O_RDONLY | O_CLOEXEC, 00) = ?
/lib64/libc.so.6 0x2ca2d -- open("/usr/lib/locale/locale-archive", O_RDONLY | O_CLOEXEC, 00) = 6
/lib64/libc.so.6 0xf75a2 -- fstat(6, 0x7f9ec7041940) = ?
/lib64/libc.so.6 0xf75a2 -- fstat(6, 0x7f9ec7041940) = 0
/lib64/libc.so.6 0x101dd8 -- mmap(0x0, 112823232, 1, 2, 6, 0x0) = ?
/lib64/libc.so.6 0x101dd8 -- mmap(0x0, 112823232, 1, 2, 6, 0x0) = 140318710591488
/lib64/libc.so.6 0x2cadf -- close(6) = ?
/lib64/libc.so.6 0x2cadf -- close(6) = 0
/lib64/libc.so.6 0xf79ae -- open("newfile", O_WRONLY | O_CREAT | O_NOCTTY | O_NONBLOCK, 0666) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85db9000, 1552, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85db9000, 1552, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 32, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 32, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85d82000, 1080, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85d82000, 1080, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2224, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2224, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 24, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1080, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1080, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1112, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1112, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1096, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1096, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85db7000, 1488, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85db7000, 1488, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85db7000, 2104, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85db7000, 2104, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85db9000, 5696, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85db9000, 5696, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1112, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1112, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2224, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2224, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0xf79ae -- open("newfile", O_WRONLY | O_CREAT | O_NOCTTY | O_NONBLOCK, 0666) = 6
/lib64/libc.so.6 0xf82e5 -- dup2(6, 0) = ?
/lib64/libc.so.6 0xf82e5 -- dup2(6, 0) = -95
/lib64/libc.so.6 0xf825e -- close(6) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85dc2000, 1040, 4) = 0
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = ?
/lib64/libc.so.6 0x101ece -- msync(0x7f9e85a02000, 2056, 4) = 0
/lib64/libc.so.6 0xf825e -- close(6) = 0
/lib64/libc.so.6 0xfc3a0 -- utimensat(-100, "newfile", 0x0, 0) = ?
/lib64/libc.so.6 0xfc3a0 -- utimensat(-100, "newfile", 0x0, 0) = -2
/lib64/libc.so.6 0x7bc78 -- open("/usr/share/locale/locale.alias", O_RDONLY | O_CLOEXEC, 0666) = ?
/lib64/libc.so.6 0x7bc78 -- open("/usr/share/locale/locale.alias", O_RDONLY | O_CLOEXEC, 0666) = 6
/lib64/libc.so.6 0xf75a2 -- fstat(6, 0x7ffe266f4da0) = ?
/lib64/libc.so.6 0xf75a2 -- fstat(6, 0x7ffe266f4da0) = 0
/lib64/libc.so.6 0x7b166 -- read(6, "", 4096) = ?
/lib64/libc.so.6 0x7b166 -- read(6, "# Locale name alias data base.\n# Copyright (C) 1996-2016 Free Software Foundation, Inc.\n#\n# This program is free softwa...", 4096) = 2997
/lib64/libc.so.6 0x7b166 -- read(6, "", 4096) = ?
/lib64/libc.so.6 0x7b166 -- read(6, "", 4096) = 0
/lib64/libc.so.6 0x7a0c9 -- close(6) = ?
/lib64/libc.so.6 0x7a0c9 -- close(6) = 0
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0xf7c2e -- write(2, "touch: ", 7) = ?
/lib64/libc.so.6 0xf7c2e -- write(2, "touch: ", 7) = 7
/lib64/libc.so.6 0xf7c2e -- write(2, "cannot touch 'newfile'", 22) = ?
/lib64/libc.so.6 0xf7c2e -- write(2, "cannot touch 'newfile'", 22) = 22
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = ?
/lib64/libc.so.6 0x30bfe -- open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY, 03771730737476600) = -2
/lib64/libc.so.6 0xf7c2e -- write(2, ": Operation not supported", 25) = ?
/lib64/libc.so.6 0xf7c2e -- write(2, ": Operation not supported", 25) = 25
/lib64/libc.so.6 0xf7c2e -- write(2, "\n", 1) = ?
/lib64/libc.so.6 0xf7c2e -- write(2, "\n", 1) = 1
/lib64/libc.so.6 0x7a0c9 -- close(1) = ?
/lib64/libc.so.6 0x7a0c9 -- close(1) = 0
/lib64/libc.so.6 0x7a0c9 -- close(2) = ?
/lib64/libc.so.6 0x7a0c9 -- close(2) = 0
/lib64/libc.so.6 0xccc66 -- exit_group(1)
[szychows@vmmalloc-70-233 mountpoint]$ cat pmemfile_preload.log 
hook_openat("/usr/lib/locale/locale-archive")
hook_openat("newfile")
pmemfile_openat(0x55f81ec11040, 0xffffffffffffffff, "newfile", 0x141, 438) = 0x55f81ec75410
pmemfile_close(0x55f81ec11040, 0x55f81ec75410) = 0
hook_openat("/usr/share/locale/locale.alias")
hook_openat("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo")
hook_openat("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo")
hook_openat("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo")
hook_openat("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo")
hook_openat("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo")
hook_openat("/usr/share/locale/en/LC_MESSAGES/coreutils.mo")
hook_openat("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo")
hook_openat("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo")
hook_openat("/usr/share/locale/en_US/LC_MESSAGES/libc.mo")
hook_openat("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo")
hook_openat("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo")
hook_openat("/usr/share/locale/en/LC_MESSAGES/libc.mo")


It looks like SYS_dup2 is missing for this:

/lib64/libc.so.6 0xf79ae -- open("newfile", O_WRONLY | O_CREAT | O_NOCTTY | O_NONBLOCK, 0666) = 6
/lib64/libc.so.6 0xf82e5 -- dup2(6, 0) = ?
/lib64/libc.so.6 0xf82e5 -- dup2(6, 0) = -95

It is, dunno why I started looking at -2 returns.

Related: #88

Blocked on #177

Actually "touch" failed because of utimensat was not implemented. dup2 failure didn't matter.

With current master "touch" crashes because of libpmemfile bug - utimensat is in filter_table, but not handled in dispatch_syscall.

I'm working on it (#175).

This should be resolved now. Please verify.

Verified on commit e06426f