openresty / openresty/luajit2

pairs and ipairs yield bad value when work with linux syscall

Open
#250 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
1.4k
Forks
252
Avg merge
7d 11h
Merged PRs (30d)
3

Description

$ uname -a
Linux umini 6.11.0-24-generic #24~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Mar 25 20:14:34 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

$git clone https://github.com/LuaJIT/LuaJIT
cd LuaJIT
make
sudo make install

$ luajit -v
LuaJIT 2.1.1744318430 -- Copyright (C) 2005-2025 Mike Pall. https://luajit.org/

fstat50.lua



local ffi = require 'ffi'
local bit = require 'bit'
local format = string.format

ffi.cdef [[
    long syscall(long number, ...);
    typedef uint64_t nlink_t;
    typedef uint64_t blksize_t;
    typedef uint64_t dev_t;
    typedef uint64_t ino_t;
    typedef uint32_t mode_t;
    typedef uint32_t uid_t;
    typedef uint32_t gid_t;
    typedef int64_t off_t;
    typedef uint64_t blkcnt_t;
    typedef struct timespec {
        long tv_sec;
        long tv_nsec;
    } timespec;
    struct stat {
        dev_t st_dev;		/* Device.  */
        ino_t st_ino;		/* File serial number.  */
        nlink_t st_nlink;		/* Link count.  */
        mode_t st_mode;		/* File mode.  */
        uid_t st_uid;		/* User ID of the file's owner.	*/
        gid_t st_gid;		/* Group ID of the file's group.*/
        int __pad0;
        dev_t st_rdev;		/* Device number, if device.  */
        off_t st_size;		/* Size of file, in bytes.  */
        blksize_t st_blksize;	/* Optimal block size for I/O.  */
        blkcnt_t st_blocks;	/* Nr. 512-byte blocks allocated.  */
        struct timespec st_atime;		/* Time of last access.  */
        struct timespec st_mtime;		/* Time of last modification.  */
        struct timespec st_ctime;		/* Time of last status change.  */
        long __glibc_reserved[3];
    };
]]


local syscall = ffi.C.syscall
local files = { 'fstat50.lua' }
local SYS_newfstatat = 262
local SYS_stat = 4

local AT_FD_CWD = ffi.new('int', -100)
local MODE_MASK = tonumber('0170000', 8)
local buf = ffi.new('struct stat')

-- all 50 tests passed
for i = 1, 50 do
    print(format('fstatat/no loop------------%02d-----------', i))
    local file = files[1]

    local result = syscall(SYS_newfstatat, AT_FD_CWD, file, buf, 0)
    if result >= 0 then
        print(format("%s mode is %07o", file, bit.band(buf.st_mode, MODE_MASK)))
    else
        print(format("%s: %d", file, ffi.errno()))
    end

    print('\n')
end

-- all 50 tests passed
for i = 1, 50 do
    print(format('fstatat/simple------------%02d-----------', i))

    for j = 1, #files do
        local result = syscall(SYS_newfstatat, AT_FD_CWD, files[j], buf, 0)
        if result >= 0 then
            print(format("%s mode is %07o", files[j], bit.band(buf.st_mode, MODE_MASK)))
        else
            print(format("%s: %d", files[j], ffi.errno()))
        end
    end

    print('\n')
end

-- only complete 48 tests, 48, 50 syscall return -1, err code: 22
for i = 1, 50 do
    print(format('fstatat/ipairs------------%02d-----------', i))

    for _, file in ipairs(files) do
        local result = syscall(SYS_newfstatat, AT_FD_CWD, file, buf, 0)
        if result >= 0 then
            print(format("%s mode is %07o", file, bit.band(buf.st_mode, MODE_MASK)))
        else
            print(format("%s: %d", file, ffi.errno()))
        end
    end

    print('\n')
end

-- only complete 47 tests, 48, 49, 50 syscall return -1, err code: 22
for i = 1, 50 do
    print(format('fstatat/pairs------------%02d-----------', i))

    for _, file in pairs(files) do
        local result = syscall(SYS_newfstatat, AT_FD_CWD, file, buf, 0)
        if result >= 0 then
            print(format("%s mode is %07o", file, bit.band(buf.st_mode, MODE_MASK)))
        else
            print(format("%s: %d", file, ffi.errno()))
        end
    end

    print('\n')
end

-- all 50 tests passed
for i = 1, 50 do
    print(format('stat/ipairs------------%02d-----------', i))

    for _, file in ipairs(files) do
        local result = syscall(SYS_stat, file, buf)
        if result >= 0 then
            print(format("%s mode is %07o", file, bit.band(buf.st_mode, MODE_MASK)))
        else
            print(format("%s: %d", file, ffi.errno()))
        end
    end

    print('\n')
end

-- all 50 tests passed
for i = 1, 50 do
    print(format('stat/pairs------------%02d-----------', i))

    for _, file in pairs(files) do
        local result = syscall(SYS_stat, file, buf)
        if result >= 0 then
            print(format("%s mode is %07o", file, bit.band(buf.st_mode, MODE_MASK)))
        else
            print(format("%s: %d", file, ffi.errno()))
        end
    end

    print('\n')
end

luajit fstat50.lua > fstat50_output.txt

fstat50_output.txt

fstatat/no loop------------01-----------
fstat50.lua mode is 0100000


fstatat/no loop------------02-----------
fstat50.lua mode is 0100000


fstatat/no loop------------03-----------
fstat50.lua mode is 0100000


fstatat/no loop------------04-----------
fstat50.lua mode is 0100000


fstatat/no loop------------05-----------
fstat50.lua mode is 0100000


fstatat/no loop------------06-----------
fstat50.lua mode is 0100000


fstatat/no loop------------07-----------
fstat50.lua mode is 0100000


fstatat/no loop------------08-----------
fstat50.lua mode is 0100000


fstatat/no loop------------09-----------
fstat50.lua mode is 0100000


fstatat/no loop------------10-----------
fstat50.lua mode is 0100000


fstatat/no loop------------11-----------
fstat50.lua mode is 0100000


fstatat/no loop------------12-----------
fstat50.lua mode is 0100000


fstatat/no loop------------13-----------
fstat50.lua mode is 0100000


fstatat/no loop------------14-----------
fstat50.lua mode is 0100000


fstatat/no loop------------15-----------
fstat50.lua mode is 0100000


fstatat/no loop------------16-----------
fstat50.lua mode is 0100000


fstatat/no loop------------17-----------
fstat50.lua mode is 0100000


fstatat/no loop------------18-----------
fstat50.lua mode is 0100000


fstatat/no loop------------19-----------
fstat50.lua mode is 0100000


fstatat/no loop------------20-----------
fstat50.lua mode is 0100000


fstatat/no loop------------21-----------
fstat50.lua mode is 0100000


fstatat/no loop------------22-----------
fstat50.lua mode is 0100000


fstatat/no loop------------23-----------
fstat50.lua mode is 0100000


fstatat/no loop------------24-----------
fstat50.lua mode is 0100000


fstatat/no loop------------25-----------
fstat50.lua mode is 0100000


fstatat/no loop------------26-----------
fstat50.lua mode is 0100000


fstatat/no loop------------27-----------
fstat50.lua mode is 0100000


fstatat/no loop------------28-----------
fstat50.lua mode is 0100000


fstatat/no loop------------29-----------
fstat50.lua mode is 0100000


fstatat/no loop------------30-----------
fstat50.lua mode is 0100000


fstatat/no loop------------31-----------
fstat50.lua mode is 0100000


fstatat/no loop------------32-----------
fstat50.lua mode is 0100000


fstatat/no loop------------33-----------
fstat50.lua mode is 0100000


fstatat/no loop------------34-----------
fstat50.lua mode is 0100000


fstatat/no loop------------35-----------
fstat50.lua mode is 0100000


fstatat/no loop------------36-----------
fstat50.lua mode is 0100000


fstatat/no loop------------37-----------
fstat50.lua mode is 0100000


fstatat/no loop------------38-----------
fstat50.lua mode is 0100000


fstatat/no loop------------39-----------
fstat50.lua mode is 0100000


fstatat/no loop------------40-----------
fstat50.lua mode is 0100000


fstatat/no loop------------41-----------
fstat50.lua mode is 0100000


fstatat/no loop------------42-----------
fstat50.lua mode is 0100000


fstatat/no loop------------43-----------
fstat50.lua mode is 0100000


fstatat/no loop------------44-----------
fstat50.lua mode is 0100000


fstatat/no loop------------45-----------
fstat50.lua mode is 0100000


fstatat/no loop------------46-----------
fstat50.lua mode is 0100000


fstatat/no loop------------47-----------
fstat50.lua mode is 0100000


fstatat/no loop------------48-----------
fstat50.lua mode is 0100000


fstatat/no loop------------49-----------
fstat50.lua mode is 0100000


fstatat/no loop------------50-----------
fstat50.lua mode is 0100000


fstatat/simple------------01-----------
fstat50.lua mode is 0100000


fstatat/simple------------02-----------
fstat50.lua mode is 0100000


fstatat/simple------------03-----------
fstat50.lua mode is 0100000


fstatat/simple------------04-----------
fstat50.lua mode is 0100000


fstatat/simple------------05-----------
fstat50.lua mode is 0100000


fstatat/simple------------06-----------
fstat50.lua mode is 0100000


fstatat/simple------------07-----------
fstat50.lua mode is 0100000


fstatat/simple------------08-----------
fstat50.lua mode is 0100000


fstatat/simple------------09-----------
fstat50.lua mode is 0100000


fstatat/simple------------10-----------
fstat50.lua mode is 0100000


fstatat/simple------------11-----------
fstat50.lua mode is 0100000


fstatat/simple------------12-----------
fstat50.lua mode is 0100000


fstatat/simple------------13-----------
fstat50.lua mode is 0100000


fstatat/simple------------14-----------
fstat50.lua mode is 0100000


fstatat/simple------------15-----------
fstat50.lua mode is 0100000


fstatat/simple------------16-----------
fstat50.lua mode is 0100000


fstatat/simple------------17-----------
fstat50.lua mode is 0100000


fstatat/simple------------18-----------
fstat50.lua mode is 0100000


fstatat/simple------------19-----------
fstat50.lua mode is 0100000


fstatat/simple------------20-----------
fstat50.lua mode is 0100000


fstatat/simple------------21-----------
fstat50.lua mode is 0100000


fstatat/simple------------22-----------
fstat50.lua mode is 0100000


fstatat/simple------------23-----------
fstat50.lua mode is 0100000


fstatat/simple------------24-----------
fstat50.lua mode is 0100000


fstatat/simple------------25-----------
fstat50.lua mode is 0100000


fstatat/simple------------26-----------
fstat50.lua mode is 0100000


fstatat/simple------------27-----------
fstat50.lua mode is 0100000


fstatat/simple------------28-----------
fstat50.lua mode is 0100000


fstatat/simple------------29-----------
fstat50.lua mode is 0100000


fstatat/simple------------30-----------
fstat50.lua mode is 0100000


fstatat/simple------------31-----------
fstat50.lua mode is 0100000


fstatat/simple------------32-----------
fstat50.lua mode is 0100000


fstatat/simple------------33-----------
fstat50.lua mode is 0100000


fstatat/simple------------34-----------
fstat50.lua mode is 0100000


fstatat/simple------------35-----------
fstat50.lua mode is 0100000


fstatat/simple------------36-----------
fstat50.lua mode is 0100000


fstatat/simple------------37-----------
fstat50.lua mode is 0100000


fstatat/simple------------38-----------
fstat50.lua mode is 0100000


fstatat/simple------------39-----------
fstat50.lua mode is 0100000


fstatat/simple------------40-----------
fstat50.lua mode is 0100000


fstatat/simple------------41-----------
fstat50.lua mode is 0100000


fstatat/simple------------42-----------
fstat50.lua mode is 0100000


fstatat/simple------------43-----------
fstat50.lua mode is 0100000


fstatat/simple------------44-----------
fstat50.lua mode is 0100000


fstatat/simple------------45-----------
fstat50.lua mode is 0100000


fstatat/simple------------46-----------
fstat50.lua mode is 0100000


fstatat/simple------------47-----------
fstat50.lua mode is 0100000


fstatat/simple------------48-----------
fstat50.lua mode is 0100000


fstatat/simple------------49-----------
fstat50.lua mode is 0100000


fstatat/simple------------50-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------01-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------02-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------03-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------04-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------05-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------06-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------07-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------08-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------09-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------10-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------11-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------12-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------13-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------14-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------15-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------16-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------17-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------18-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------19-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------20-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------21-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------22-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------23-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------24-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------25-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------26-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------27-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------28-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------29-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------30-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------31-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------32-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------33-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------34-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------35-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------36-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------37-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------38-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------39-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------40-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------41-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------42-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------43-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------44-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------45-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------46-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------47-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------48-----------
fstat50.lua: 22


fstatat/ipairs------------49-----------
fstat50.lua mode is 0100000


fstatat/ipairs------------50-----------
fstat50.lua: 22


fstatat/pairs------------01-----------
fstat50.lua mode is 0100000


fstatat/pairs------------02-----------
fstat50.lua mode is 0100000


fstatat/pairs------------03-----------
fstat50.lua mode is 0100000


fstatat/pairs------------04-----------
fstat50.lua mode is 0100000


fstatat/pairs------------05-----------
fstat50.lua mode is 0100000


fstatat/pairs------------06-----------
fstat50.lua mode is 0100000


fstatat/pairs------------07-----------
fstat50.lua mode is 0100000


fstatat/pairs------------08-----------
fstat50.lua mode is 0100000


fstatat/pairs------------09-----------
fstat50.lua mode is 0100000


fstatat/pairs------------10-----------
fstat50.lua mode is 0100000


fstatat/pairs------------11-----------
fstat50.lua mode is 0100000


fstatat/pairs------------12-----------
fstat50.lua mode is 0100000


fstatat/pairs------------13-----------
fstat50.lua mode is 0100000


fstatat/pairs------------14-----------
fstat50.lua mode is 0100000


fstatat/pairs------------15-----------
fstat50.lua mode is 0100000


fstatat/pairs------------16-----------
fstat50.lua mode is 0100000


fstatat/pairs------------17-----------
fstat50.lua mode is 0100000


fstatat/pairs------------18-----------
fstat50.lua mode is 0100000


fstatat/pairs------------19-----------
fstat50.lua mode is 0100000


fstatat/pairs------------20-----------
fstat50.lua mode is 0100000


fstatat/pairs------------21-----------
fstat50.lua mode is 0100000


fstatat/pairs------------22-----------
fstat50.lua mode is 0100000


fstatat/pairs------------23-----------
fstat50.lua mode is 0100000


fstatat/pairs------------24-----------
fstat50.lua mode is 0100000


fstatat/pairs------------25-----------
fstat50.lua mode is 0100000


fstatat/pairs------------26-----------
fstat50.lua mode is 0100000


fstatat/pairs------------27-----------
fstat50.lua mode is 0100000


fstatat/pairs------------28-----------
fstat50.lua mode is 0100000


fstatat/pairs------------29-----------
fstat50.lua mode is 0100000


fstatat/pairs------------30-----------
fstat50.lua mode is 0100000


fstatat/pairs------------31-----------
fstat50.lua mode is 0100000


fstatat/pairs------------32-----------
fstat50.lua mode is 0100000


fstatat/pairs------------33-----------
fstat50.lua mode is 0100000


fstatat/pairs------------34-----------
fstat50.lua mode is 0100000


fstatat/pairs------------35-----------
fstat50.lua mode is 0100000


fstatat/pairs------------36-----------
fstat50.lua mode is 0100000


fstatat/pairs------------37-----------
fstat50.lua mode is 0100000


fstatat/pairs------------38-----------
fstat50.lua mode is 0100000


fstatat/pairs------------39-----------
fstat50.lua mode is 0100000


fstatat/pairs------------40-----------
fstat50.lua mode is 0100000


fstatat/pairs------------41-----------
fstat50.lua mode is 0100000


fstatat/pairs------------42-----------
fstat50.lua mode is 0100000


fstatat/pairs------------43-----------
fstat50.lua mode is 0100000


fstatat/pairs------------44-----------
fstat50.lua mode is 0100000


fstatat/pairs------------45-----------
fstat50.lua mode is 0100000


fstatat/pairs------------46-----------
fstat50.lua mode is 0100000


fstatat/pairs------------47-----------
fstat50.lua mode is 0100000


fstatat/pairs------------48-----------
fstat50.lua: 22


fstatat/pairs------------49-----------
fstat50.lua: 22


fstatat/pairs------------50-----------
fstat50.lua: 22


stat/ipairs------------01-----------
fstat50.lua mode is 0100000


stat/ipairs------------02-----------
fstat50.lua mode is 0100000


stat/ipairs------------03-----------
fstat50.lua mode is 0100000


stat/ipairs------------04-----------
fstat50.lua mode is 0100000


stat/ipairs------------05-----------
fstat50.lua mode is 0100000


stat/ipairs------------06-----------
fstat50.lua mode is 0100000


stat/ipairs------------07-----------
fstat50.lua mode is 0100000


stat/ipairs------------08-----------
fstat50.lua mode is 0100000


stat/ipairs------------09-----------
fstat50.lua mode is 0100000


stat/ipairs------------10-----------
fstat50.lua mode is 0100000


stat/ipairs------------11-----------
fstat50.lua mode is 0100000


stat/ipairs------------12-----------
fstat50.lua mode is 0100000


stat/ipairs------------13-----------
fstat50.lua mode is 0100000


stat/ipairs------------14-----------
fstat50.lua mode is 0100000


stat/ipairs------------15-----------
fstat50.lua mode is 0100000


stat/ipairs------------16-----------
fstat50.lua mode is 0100000


stat/ipairs------------17-----------
fstat50.lua mode is 0100000


stat/ipairs------------18-----------
fstat50.lua mode is 0100000


stat/ipairs------------19-----------
fstat50.lua mode is 0100000


stat/ipairs------------20-----------
fstat50.lua mode is 0100000


stat/ipairs------------21-----------
fstat50.lua mode is 0100000


stat/ipairs------------22-----------
fstat50.lua mode is 0100000


stat/ipairs------------23-----------
fstat50.lua mode is 0100000


stat/ipairs------------24-----------
fstat50.lua mode is 0100000


stat/ipairs------------25-----------
fstat50.lua mode is 0100000


stat/ipairs------------26-----------
fstat50.lua mode is 0100000


stat/ipairs------------27-----------
fstat50.lua mode is 0100000


stat/ipairs------------28-----------
fstat50.lua mode is 0100000


stat/ipairs------------29-----------
fstat50.lua mode is 0100000


stat/ipairs------------30-----------
fstat50.lua mode is 0100000


stat/ipairs------------31-----------
fstat50.lua mode is 0100000


stat/ipairs------------32-----------
fstat50.lua mode is 0100000


stat/ipairs------------33-----------
fstat50.lua mode is 0100000


stat/ipairs------------34-----------
fstat50.lua mode is 0100000


stat/ipairs------------35-----------
fstat50.lua mode is 0100000


stat/ipairs------------36-----------
fstat50.lua mode is 0100000


stat/ipairs------------37-----------
fstat50.lua mode is 0100000


stat/ipairs------------38-----------
fstat50.lua mode is 0100000


stat/ipairs------------39-----------
fstat50.lua mode is 0100000


stat/ipairs------------40-----------
fstat50.lua mode is 0100000


stat/ipairs------------41-----------
fstat50.lua mode is 0100000


stat/ipairs------------42-----------
fstat50.lua mode is 0100000


stat/ipairs------------43-----------
fstat50.lua mode is 0100000


stat/ipairs------------44-----------
fstat50.lua mode is 0100000


stat/ipairs------------45-----------
fstat50.lua mode is 0100000


stat/ipairs------------46-----------
fstat50.lua mode is 0100000


stat/ipairs------------47-----------
fstat50.lua mode is 0100000


stat/ipairs------------48-----------
fstat50.lua mode is 0100000


stat/ipairs------------49-----------
fstat50.lua mode is 0100000


stat/ipairs------------50-----------
fstat50.lua mode is 0100000


stat/pairs------------01-----------
fstat50.lua mode is 0100000


stat/pairs------------02-----------
fstat50.lua mode is 0100000


stat/pairs------------03-----------
fstat50.lua mode is 0100000


stat/pairs------------04-----------
fstat50.lua mode is 0100000


stat/pairs------------05-----------
fstat50.lua mode is 0100000


stat/pairs------------06-----------
fstat50.lua mode is 0100000


stat/pairs------------07-----------
fstat50.lua mode is 0100000


stat/pairs------------08-----------
fstat50.lua mode is 0100000


stat/pairs------------09-----------
fstat50.lua mode is 0100000


stat/pairs------------10-----------
fstat50.lua mode is 0100000


stat/pairs------------11-----------
fstat50.lua mode is 0100000


stat/pairs------------12-----------
fstat50.lua mode is 0100000


stat/pairs------------13-----------
fstat50.lua mode is 0100000


stat/pairs------------14-----------
fstat50.lua mode is 0100000


stat/pairs------------15-----------
fstat50.lua mode is 0100000


stat/pairs------------16-----------
fstat50.lua mode is 0100000


stat/pairs------------17-----------
fstat50.lua mode is 0100000


stat/pairs------------18-----------
fstat50.lua mode is 0100000


stat/pairs------------19-----------
fstat50.lua mode is 0100000


stat/pairs------------20-----------
fstat50.lua mode is 0100000


stat/pairs------------21-----------
fstat50.lua mode is 0100000


stat/pairs------------22-----------
fstat50.lua mode is 0100000


stat/pairs------------23-----------
fstat50.lua mode is 0100000


stat/pairs------------24-----------
fstat50.lua mode is 0100000


stat/pairs------------25-----------
fstat50.lua mode is 0100000


stat/pairs------------26-----------
fstat50.lua mode is 0100000


stat/pairs------------27-----------
fstat50.lua mode is 0100000


stat/pairs------------28-----------
fstat50.lua mode is 0100000


stat/pairs------------29-----------
fstat50.lua mode is 0100000


stat/pairs------------30-----------
fstat50.lua mode is 0100000


stat/pairs------------31-----------
fstat50.lua mode is 0100000


stat/pairs------------32-----------
fstat50.lua mode is 0100000


stat/pairs------------33-----------
fstat50.lua mode is 0100000


stat/pairs------------34-----------
fstat50.lua mode is 0100000


stat/pairs------------35-----------
fstat50.lua mode is 0100000


stat/pairs------------36-----------
fstat50.lua mode is 0100000


stat/pairs------------37-----------
fstat50.lua mode is 0100000


stat/pairs------------38-----------
fstat50.lua mode is 0100000


stat/pairs------------39-----------
fstat50.lua mode is 0100000


stat/pairs------------40-----------
fstat50.lua mode is 0100000


stat/pairs------------41-----------
fstat50.lua mode is 0100000


stat/pairs------------42-----------
fstat50.lua mode is 0100000


stat/pairs------------43-----------
fstat50.lua mode is 0100000


stat/pairs------------44-----------
fstat50.lua mode is 0100000


stat/pairs------------45-----------
fstat50.lua mode is 0100000


stat/pairs------------46-----------
fstat50.lua mode is 0100000


stat/pairs------------47-----------
fstat50.lua mode is 0100000


stat/pairs------------48-----------
fstat50.lua mode is 0100000


stat/pairs------------49-----------
fstat50.lua mode is 0100000


stat/pairs------------50-----------
fstat50.lua mode is 0100000

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the reported fstat50.lua reproduction on Linux and compare the direct, simple-loop, ipairs, and pairs results for fstatat versus stat. Read the LuaJIT FFI syscall behavior and the surrounding iteration paths; done means the fstatat calls no longer intermittently return the reported error while the existing checks remain valid.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, lua
Domain
operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.