[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to And
From: |
enh |
Subject: |
Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android |
Date: |
Mon, 23 Feb 2015 21:56:34 -0800 |
oops. fixed in AOSP by https://android-review.googlesource.com/#/c/134752/.
On Mon, Feb 23, 2015 at 9:44 AM, Kevin Cernekee <address@hidden> wrote:
> On Sun, Feb 22, 2015 at 7:11 PM, Paul Eggert <address@hidden> wrote:
>> Kevin Cernekee wrote:
>>>
>>> Based on comments in tests/test-sys_resource.c it looks like somebody
>>> may have started a <sys/resource.h> replacement, but there is more
>>> work to be done.
>>
>>
>> Yes. It's not clear how to implement all that stuff in the sys_resource
>> module, so instead, how about the more-modest patch attached? I've pushed
>> it.
>
> Now test-getdtablesize and test-fcntl pass. But we have a new problem
> with test-dup2, as this assertion is failing:
>
> /* Assigning to self must be a no-op. */
> ASSERT (dup2 (fd, fd) == fd);
>
> Under the hood, Bionic implements dup2() using dup3():
>
> int dup2(int old_fd, int new_fd) {
> return dup3(old_fd, new_fd, 0);
> }
>
> openat(AT_FDCWD, "test-dup2.tmp", O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0600) =
> 3
> fcntl64(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE)
> close(4) = -1 EBADF (Bad file descriptor)
> close(5) = -1 EBADF (Bad file descriptor)
> fcntl64(4, F_GETFL) = -1 EBADF (Bad file descriptor)
> fcntl64(5, F_GETFL) = -1 EBADF (Bad file descriptor)
> dup3(3, 3, 0) = -1 EINVAL (Invalid argument)
> write(2, "test-dup2.c:123: assertion 'dup2"..., 56test-dup2.c:123:
> assertion 'dup2 (fd, fd) == fd' failed
> ) = 56
>
>
> and according to the man page, dup3() fails with EINVAL if oldfd ==
> newfd. Unlike dup2(), which should return newfd.
>
> gnulib commit f9fa7159134175 ("dup2, fcntl: cross-compiler better for
> Android") changed the logic to guess "yes" instead of "no" on the
> question of whether dup2() is sane on Linux. I suspect this was the
> source of the regression? Perhaps we need another a special case in
> there for Android (attached).
--
Elliott Hughes - http://who/enh - http://jessies.org/~enh/
Java i18n/JNI/NIO, or bionic questions? Mail me/drop by/add me as a reviewer.
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, (continued)
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, enh, 2015/02/17
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/17
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Kevin Cernekee, 2015/02/18
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/19
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Kevin Cernekee, 2015/02/19
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/20
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Kevin Cernekee, 2015/02/22
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/22
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Kevin Cernekee, 2015/02/23
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/23
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android,
enh <=
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, enh, 2015/02/23
[PATCH 3/3] localename: Implement gl_locale_name_thread_unsafe() for Android, Kevin Cernekee, 2015/02/15