Date: Fri, 28 Jul 2017 17:10:19 +0000 (UTC) From: Peter Holm <pho@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r321654 - user/pho/stress2/misc Message-ID: <201707281710.v6SHAJEC072965@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pho Date: Fri Jul 28 17:10:19 2017 New Revision: 321654 URL: https://svnweb.freebsd.org/changeset/base/321654 Log: Added a regression test. Sponsored by: Dell EMC Isilon Added: user/pho/stress2/misc/kevent10.sh (contents, props changed) Added: user/pho/stress2/misc/kevent10.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/misc/kevent10.sh Fri Jul 28 17:10:19 2017 (r321654) @@ -0,0 +1,68 @@ +#!/bin/sh + +# Regression test for +# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217435 +# by Tim Newsham <tim newsham nccgroup trust> + +# panic: Assertion size > 0 failed at ../../../kern/subr_vmem.c:1082 +# cpuid = 2 +# time = 1501182301 +# KDB: stack backtrace: +# db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0173117650 +# vpanic() at vpanic+0x19c/frame 0xfffffe01731176d0 +# kassert_panic() at kassert_panic+0x126/frame 0xfffffe0173117740 +# vmem_alloc() at vmem_alloc+0x11b/frame 0xfffffe0173117780 +# kmem_malloc() at kmem_malloc+0x33/frame 0xfffffe01731177b0 +# uma_large_malloc() at uma_large_malloc+0x48/frame 0xfffffe01731177f0 +# malloc() at malloc+0xe3/frame 0xfffffe0173117840 +# ktrgenio() at ktrgenio+0x60/frame 0xfffffe0173117880 +# sys_kevent() at sys_kevent+0x12f/frame 0xfffffe0173117930 +# amd64_syscall() at amd64_syscall+0x7d2/frame 0xfffffe0173117ab0 + +# Fixed by r315155. + +. ../default.cfg + +cat > /tmp/kevent10.c <<EOF +#include <sys/param.h> +#include <sys/event.h> +#include <sys/time.h> +#include <sys/uio.h> +#include <sys/ktrace.h> + +#include <err.h> +#include <errno.h> +#include <fcntl.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +int +main(void) +{ + char *fn = "/tmp/trace"; + struct kevent changes; + struct kevent events; + + if (open(fn, O_RDWR | O_CREAT, 0666) == -1) + err(1, "%s", fn); + if (ktrace(fn, KTRFLAG_DESCEND | KTROP_SET, KTRFAC_GENIO, 0) == -1) + err(1, "ktrace"); + memset(&changes, 0, sizeof(struct kevent)); + memset(&events, 0, sizeof(struct kevent)); + if (kevent(0, &changes, -1, &events, 1, 0) == -1) + if (errno != EBADF) + err(1, "kevent"); + return (0); +} +EOF + +mycc -o /tmp/kevent10 -Wall -Wextra -O2 /tmp/kevent10.c || exit 1 +rm /tmp/kevent10.c + +/tmp/kevent10 +s=$? + +rm /tmp/kevent10 +exit $s
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201707281710.v6SHAJEC072965>