From nobody Tue Jan 25 05:09:42 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 039991980F14; Tue, 25 Jan 2022 05:09:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4JjZfH3832z3NdT; Tue, 25 Jan 2022 05:09:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1643087383; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rtnmG5DADOkGyJoCygCJyUfNK9IdAtuXOvNv9+BejZ4=; b=cf/8ywqN4uQgoD6yqEwfvc/L/ewgVX6bARtewSe5o+ODcqpFhaXUFIEuwrDInG4iOTnlP9 IXIbkJpQfirDhvXgVzxowMHkdDzJ6GF9hFKyy6OvcJe5em8BQF56tk19QxgAS4p/w3jR76 4HhfWyHHObxk+6xTHSV4jtbBfK8YQslpWHD6QX7NM92cNUoL1ZrMPyWQLnhvjzGCmUWU5s Jt51LJeHxMrf/uOGtxiSPkPSEv2M6Brf3rljBFJ9l/20DDQkfy7nHqfIMhLyTFc8ScrK0b hDHwlA27duntW6x8KdMe+KqvWBBA2Dn5C/S4iuVf2/l4FtLh+no0Q7rsyEQnlA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0B9FF236F1; Tue, 25 Jan 2022 05:09:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 20P59gbA024396; Tue, 25 Jan 2022 05:09:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 20P59gKR024395; Tue, 25 Jan 2022 05:09:42 GMT (envelope-from git) Date: Tue, 25 Jan 2022 05:09:42 GMT Message-Id: <202201250509.20P59gKR024395@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 80fc25025ffc - main - tests/net*: destroy interface from inside a jail List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 80fc25025ffcb0d369fc0b6d4d272ad6fd3f53c3 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1643087383; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rtnmG5DADOkGyJoCygCJyUfNK9IdAtuXOvNv9+BejZ4=; b=ouE7Z08wEExhVrcIIZkDlkhvco6U4xN77RwCth0kDZ/syf97A6/baz0pjFUMCI4hztBvC4 o4V8iisrsE6yRuo3EIjK8Fsyx0XUF5qzg2taB1be5hnMvDEbxevL7jU13kKKhxJnKkVxle xzwTOPYkqgxLFBXFjYlFUfMli6457TizU+9qzNqh/z5mutWun5cI8qKWIPHFUrw4xrV4LE vHL/wmuAWP+UqLPKKQy7Ro4yML9ZJVk4HSr6W+cmWv34OubGx1slirbSD+Y1DPN5/NQLbe w9A98p3voRQ0PjOb2aY9U0KTmJW8hmbu4SzKNoGAMZlMJynGPo9qdWTbJhJu4g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1643087383; a=rsa-sha256; cv=none; b=neRAvHfXurK9Rq5PWoCD3x9zJG+KNPN+aqhMcEICcnOcCzVg/OP6HQhH6ocyzKxv5h0vLw ta7z6wVH4QCvVFuaRTt6JisS2HgIGvC1J6HUHdcx+NSSkyLHyt9IGrCdcp84i7PEKOC17m /rI6P8sXc0LIPxIQAhVbm17E2/0AKsPQNLqOKw8CpDAABPUELCzTVJ0pAPD1Pin5NXEt8Q oYbJSYzcHs/0J+y6JTMgmoftzvmXprI3E8XR+gQ4Gzvbzbjxupp3viXRXsDJYY8yI9pqbf 6pmHXrDOoDExKFsL9aq00oI/qvZcL1pLbvRBYfVNpNPBJsFEWy/nWxTRo/Kbbg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=80fc25025ffcb0d369fc0b6d4d272ad6fd3f53c3 commit 80fc25025ffcb0d369fc0b6d4d272ad6fd3f53c3 Author: Gleb Smirnoff AuthorDate: 2022-01-25 05:08:03 +0000 Commit: Gleb Smirnoff CommitDate: 2022-01-25 05:08:03 +0000 tests/net*: destroy interface from inside a jail There is no guarentee that upon return of 'jail -r' all jail resources will be released. The test suite used to rely on that. Recent changes to the PCB zones made jails delay releasing their resources, which ended with interface leak in the test suite. Fix that by executing 'ifconfig foo0 destroy' inside the jail, instead of doing 'jail -r' and expecting interfaces to pop up back immediately in the parent jail. Reviewed by: kp Differential revision: https://reviews.freebsd.org/D33942 --- tests/sys/common/vnet.subr | 44 ++++++++++++++++++++++++++++++---------- tests/sys/netpfil/pf/set_skip.sh | 2 +- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/tests/sys/common/vnet.subr b/tests/sys/common/vnet.subr index 590e8dea992e..cdd3d3f69709 100644 --- a/tests/sys/common/vnet.subr +++ b/tests/sys/common/vnet.subr @@ -1,7 +1,16 @@ -# $FreeBSD$ -# VNAT/jail utility functions +# VNET/jail utility functions ## +list_interface() +{ + echo $1 >> created_interfaces.lst +} + +unlist_interface() +{ + sed -i "" /^$1\$/d created_interfaces.lst +} + vnet_init() { if [ "`sysctl -i -n kern.features.vimage`" != 1 ]; then @@ -12,29 +21,29 @@ vnet_init() vnet_mkepair() { ifname=$(ifconfig epair create) - echo $ifname >> created_interfaces.lst - echo ${ifname%a}b >> created_interfaces.lst + list_interface $ifname + list_interface ${ifname%a}b echo ${ifname%a} } vnet_mkbridge() { ifname=$(ifconfig bridge create) - echo $ifname >> created_interfaces.lst + list_interface $ifname echo ${ifname} } vnet_mkvlan() { ifname=$(ifconfig vlan create) - echo ${ifname} >> created_interfaces.lst + list_interface $ifname echo ${ifname} } vnet_mkloopback() { ifname=$(ifconfig lo create) - echo $ifname >> created_interfaces.lst + list_interface $ifname echo ${ifname} } @@ -47,19 +56,32 @@ vnet_mkjail() for ifname in $@ do vnet_interfaces="${vnet_interfaces} vnet.interface=${ifname}" + unlist_interface $ifname done jail -c name=${jailname} persist vnet ${vnet_interfaces} - echo $jailname >> created_jails.lst + echo $jailname $@ >> created_jails.lst +} + +vnet_ifmove() +{ + ifname=$1 + jailname=$2 + + ifconfig ${ifname} vnet ${jailname} + unlist_interface $ifname + sed -i "" "/^${jailname}/s/\$/ ${ifname}/" created_jails.lst } vnet_cleanup() { if [ -f created_jails.lst ]; then - for jailname in `cat created_jails.lst` - do + while read jailname ifnames; do + for ifname in ${ifnames}; do + jexec ${jailname} ifconfig ${ifname} destroy + done jail -r ${jailname} - done + done < created_jails.lst rm created_jails.lst fi diff --git a/tests/sys/netpfil/pf/set_skip.sh b/tests/sys/netpfil/pf/set_skip.sh index ce7b1900ae00..3f4cfc3fda2c 100644 --- a/tests/sys/netpfil/pf/set_skip.sh +++ b/tests/sys/netpfil/pf/set_skip.sh @@ -105,7 +105,7 @@ set_skip_dynamic_body() epair=$(vnet_mkepair) ifconfig ${epair}a 192.0.2.2/24 up - ifconfig ${epair}b vnet alcatraz + vnet_ifmove ${epair}b alcatraz jexec alcatraz ifconfig ${epair}b 192.0.2.1/24 up