[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#715212: incompatability with 2.6.32; eventfd() fails with "Function not implemented"



On Sun, Jul 07, 2013 at 02:17:47PM -0400, Joey Hess wrote:
> Aurelien Jarno wrote:
> > I am unable to reproduce the problem on a Debian 2.6.32-5 kernel. Could
> > it be that the kernel that you are using does not have CONFIG_EVENTFD
> > enabled? An strace of this test program could help to understand the
> > problem.
> 
> That seems likely. FWIW, the hosting provider with this kernel is
> strato.de. I don't know if that's a significant provider in Germany.
> (If it doesn't let users boot their own kernels, I hope not!)
> 
> joeyh@h1658901:~/tmp$ strace ./test
> execve("./test", ["./test"], [/* 19 vars */]) = 0
> brk(0)                                  = 0x83e5000
> uname({sys="Linux", node="h1658901.stratoserver.net", ...}) = 0
> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
> mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f1c000
> access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
> open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=38933, ...}) = 0
> mmap2(NULL, 38933, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f12000
> close(3)                                = 0
> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
> open("/lib/i386-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\227\1\0004\0\0\0"..., 512) = 512
> fstat64(3, {st_mode=S_IFREG|0755, st_size=1512872, ...}) = 0
> mmap2(NULL, 1522332, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d9e000
> mmap2(0xb7f0c000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16e) = 0xb7f0c000
> mmap2(0xb7f0f000, 10908, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f0f000
> close(3)                                = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d9d000
> set_thread_area({entry_number:-1 -> 6, base_addr:0xb7d9d900, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
> mprotect(0xb7f0c000, 8192, PROT_READ)   = 0
> mprotect(0xb7f3d000, 4096, PROT_READ)   = 0
> munmap(0xb7f12000, 38933)               = 0
> eventfd2(10, 0)                         = -1 ENOSYS (Function not implemented)

The kernel doesn't support the eventfd2 syscall, which has been added in
kernel 2.6.27. There is nothing which can be done on the glibc side, it
can't do a lot without a proper kernel support. Therefore it doesn't
seem a bug for me, the hosting provider should provide a kernel with
CONFIG_EVENTFD enabled.

-- 
Aurelien Jarno	                        GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net


Reply to: