From owner-freebsd-bugs@freebsd.org Wed Dec 19 11:35:01 2018 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 346431354E99 for ; Wed, 19 Dec 2018 11:35:01 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id AD82F761EF for ; Wed, 19 Dec 2018 11:35:00 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 70F791354E98; Wed, 19 Dec 2018 11:35:00 +0000 (UTC) Delivered-To: bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4E6841354E97 for ; Wed, 19 Dec 2018 11:35:00 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DF103761EC for ; Wed, 19 Dec 2018 11:34:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 0DA7319547 for ; Wed, 19 Dec 2018 11:34:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id wBJBYwx2040450 for ; Wed, 19 Dec 2018 11:34:58 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id wBJBYwNg040449 for bugs@FreeBSD.org; Wed, 19 Dec 2018 11:34:58 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 233637] bectl jail doesn't honour {jailID | jailName} Date: Wed, 19 Dec 2018 11:34:58 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: 12.0-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: rob.fx907@gmail.com X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Dec 2018 11:35:01 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D233637 --- Comment #2 from Rob --- (In reply to Dave Cottlehuber from comment #0) I made a revision for the patch: https://reviews.freebsd.org/D18607 # bectl jail ${RELEASE} unable to create jail. error: 2 By default, bectl is setting the jail 'name' parameter to the boot environm= ent name, which causes the above error. With the attached fix, when no name is supplied, the default jail name will be the jail id - this is is the same behavior as the jail command. During testing, when I started using the jail id as the default name, the j= ail would execute with no errors. However, bectl wasn't able to unjail a boot environment because it was failing to match the boot environment path with = an existing jail path. The source of this problem was two bugs. 1. in 'bectl_locate_jail', 'mountpoint' is used to resolve the boot environment path, but really 'mounted' should be used. 'mountpoint' is the = path where the zfs dataset will be mounted. 'mounted' is the path where the boot environment is mounted. 2. in 'bectl_search_jail_paths', 'jail_getv' would fail after the first call. Which is fine, if the boot environment you're unjailing is the next o= ne up. According to 'man jail_getv', it's expecting name and value strings. 'jail_getv' is being passed an integer for the lastjid. The attached patch = uses a string for the lastjid instead. Should now be possible to: # echo $RELEASE 12.0-RC2-update # bectl jail ${RELEASE} ... # bectl unjail ${RELEASE} The other examples: I looked into the command line parsing a bit, it doesn't handle the format . The documentation should be:=20=20=20=20=20=20 jail {-b | -U} [{-o key=3Dvalue | -u key}]... [utility [argument = ...]] Looking at this example: # bectl create next /* bectl is looking for the prison boot environment */ /* next is the utility that will be executed for the jail */ # bectl jail prison next specified boot environment does not exist could not mount bootenv from your example: # bectl jail next ${RELEASE} specified boot environment does not exist could not mount bootenv In the above command, bectl is looking for the 'next' boot environment, whi= ch doesn't exist. IF it did though, ${RELEASE} is the utility that gets execut= ed for the jail command. I can help with manpage additions or tests if it looks like this patch is in the right direction. --=20 You are receiving this mail because: You are the assignee for the bug.=