svn commit: r367927 - in head: sys/kern tests/sys/kern
Guy Yur
guyyur at gmail.com
Sun Nov 22 15:53:52 UTC 2020
On 22/11/20 7:00 am, Robert Wing wrote:
> Author: rew
> Date: Sun Nov 22 05:00:28 2020
> New Revision: 367927
> URL: https://svnweb.freebsd.org/changeset/base/367927
>
> Log:
> fd: free old file descriptor tables when not shared
>
> During the life of a process, new file descriptor tables may be allocated. When
> a new table is allocated, the old table is placed in a free list and held onto
> until all processes referencing them exit.
>
> When a new file descriptor table is allocated, the old file descriptor table
> can be freed when the current process has a single-thread and the file
> descriptor table is not being shared with any other processes.
>
> Reviewed by: kevans
> Approved by: kevans (mentor)
> Differential Revision: https://reviews.freebsd.org/D18617
>
> Added:
> head/tests/sys/kern/fdgrowtable_test.c (contents, props changed)
> Modified:
> head/sys/kern/kern_descrip.c
> head/tests/sys/kern/Makefile
Hi,
I am getting a kernel panic with this commit when building
devel/gmake port and it runs dup2 test in configure script.
panic: fc_ioctls != NULL, but fc_nioctls=-16162
...
#10 0xffffffff80655c72 in vpanic (fmt=<optimized out>, ap=<optimized out>)
at /usr/src/sys/kern/kern_shutdown.c:907
#11 0xffffffff80655a03 in panic (
fmt=0xffffffff80eb2b78 <cnputs_mtx> "헝\200\377\377\377\377")
at /usr/src/sys/kern/kern_shutdown.c:843
#12 0xffffffff805fff9a in filecaps_copy_prep (src=<optimized out>)
at /usr/src/sys/kern/kern_descrip.c:1629
#13 kern_dup (td=<optimized out>, mode=<optimized out>, flags=0,
old=<optimized out>, new=256) at /usr/src/sys/kern/kern_descrip.c:970
#14 0xffffffff8094a5de in syscallenter (td=<optimized out>)
at /usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:189
#15 amd64_syscall (td=0xfffffe00513f8500, traced=0)
at /usr/src/sys/amd64/amd64/trap.c:1156
Simplified test program that causes panic:
#include <unistd.h>
#include <limits.h>
int main ()
{
int bad_fd = INT_MAX;
dup2 (1, 1);
close (0);
dup2 (0, 0);
dup2 (2, bad_fd);
dup2 (2, -1);
dup2 (2, 255);
dup2 (2, 256);
return 0;
}
Thanks,
Guy Yur
More information about the svn-src-head
mailing list