NetBSD Problem Report #55381

From tsutsui@ceres.dti.ne.jp  Fri Jun 12 18:34:23 2020
Return-Path: <tsutsui@ceres.dti.ne.jp>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 938B11A9219
	for <gnats-bugs@gnats.NetBSD.org>; Fri, 12 Jun 2020 18:34:23 +0000 (UTC)
Message-Id: <202006121834.05CIYE53007398@ceres.dti.ne.jp>
Date: Sat, 13 Jun 2020 03:34:14 +0900 (JST)
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
Reply-To: tsutsui@ceres.dti.ne.jp
To: gnats-bugs@NetBSD.org
Cc: tsutsui@ceres.dti.ne.jp
Subject: sysinst wrong size check on moving partitions forward
X-Send-Pr-Version: 3.95

>Number:         55381
>Category:       install
>Synopsis:       sysinst wrong size check on moving partitions forward
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    install-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jun 12 18:35:00 +0000 2020
>Last-Modified:  Tue Sep 29 14:30:01 +0000 2020
>Originator:     Izumi Tsutsui
>Release:        NetBSD 9.0
>Organization:
>Environment:
System: all
Architecture: all
Machine: all
>Description:
On a partition editor of sysinst, there is something wrong
in partition size check when users tries to move partitions forward.

If users change a value of "start" to move it forward
(i.e. set a smaller value than before), available
size should be "previous size + extra size by moving start"
but sysinst seems to use a size "from moved start to previous start".

>How-To-Repeat:

---

 We now have your disklabel partitions for wd0 below.  This is your last   
 chance to change them.

 Flags: (I)nstall, (N)ewfs.  Total size: 512M, free: 0B

     Start (sec)    End (sec)   Size (sec)  FS type Flag Filesystem
    ------------ ------------ ------------ -------- ---- ----------------
>a:        20546       983793       963248   4.2BSD      /
 b:       983795      1049327        65533     swap
 c:            0      1049327      1049328 Whole disk
    ------------ ------------ ------------ -------- ---- ----------------
 e: Change input units (sectors/cylinders/MB/GB)
 f: Edit name of the disk
 g: Clone external partition(s)
 h: Cancel
 x: Partition sizes ok

---

Select "a:" to change partition size:

---

 We now have your disklabel partitions for wd0 below.  This is your last   
 chance to chan+------------------------------------------------------------+
               | The current values for this partition are                  |
 Flags: (I)nsta| displayed below.                                           |
               |                                                            |
     Start (sec| Select the field you wish to change:                       |
    -----------|                                                            |
>a:        2054| a:             type : FFS                                  |
 b:       98379|>b:            start : 20546 sec                            |
 c:            | c:             size : 963248 sec                           |
    -----------| d:              end : 983794 sec                           |
 e: Change inpu| e:          install : No                                   |
 f: Edit name o| f:            newfs : No                                   |
 g: Clone exter| g:            mount : Yes                                  |
 h: Cancel     | h:    mount options :                                      |
 x: Partition s| i:      mount point : /                                    |
               | j: Change input units (sectors/cylinders/MB/GB)            |
               | k: Restore original values                                 |
               | l: Delete partition                                        |
               | m: Cancel                                                  |
               | x: OK                                                      |
               +------------------------------------------------------------+

---

Change "start" from "20546" to "0":

---

 We now have your disklabel partitions for wd0 below.  This is your last   
 chance to chan+------------------------------------------------------------+
               | The current values for this partition are                  |
 Flags: (I)nsta| displayed below.                                           |
               |                                                            |
     Start (sec| Select the field you wish to change:                       |
    -----------|                                                            |
>a:        2054| a:             type : FFS                                  |
 b:       98379|>b:            start : 20546 sec                            |
 c:            | c:             size : 963248 sec                           |
    -----------| d:              end : 983794 sec                           |
 e: C+--------------------------------------------------------------------+ |
 f: E|Special values that can be entered for the offset value:            | |
 g: C|    -1:   start at the beginning                                    | |
 h: C|   a-c:   start at the end of given partition                       | |
 x: P|     d:   start at the beginning of given free space                | |
     |                                                                    | |
     |d: Space at 0..983795 sec (size 983795 sec)                         | |
     |                                                                    | |
     |Start (sec) [20546]: 0                                              | |
     +--------------------------------------------------------------------+ |
               +------------------------------------------------------------+

---

Next change "size":

---

 We now have your disklabel partitions for wd0 below.  This is your last   
 chance to chan+------------------------------------------------------------+
               | The current values for this partition are                  |
 Flags: (I)nsta| displayed below.                                           |
               |                                                            |
     Start (sec| Select the field you wish to change:                       |
    -----------|                                                            |
>a:        2054| a:             type : FFS                                  |
 b:       98379| b:            start : 0 sec                                |
 c:            |>c:             size : 983794 sec                           |
    -----------| d:              end : 983794 sec                           |
 e: Change inpu| e:          install : Yes                                  |
 f: Edit name o| f:            newfs : No                                   |
 g: Clone exter| g:            mount : Yes                                  |
 h: Cancel     | h:    mount options :                                      |
 x: Partition s| i:      mount point : /                                    |
               | j: Change input units (sectors/cylinders/MB/GB)            |
               | k: Restore original values                                 |
               | l: Delete partition                                        |
               | m: Cancel                                                  |
               | x: OK                                                      |
               +------------------------------------------------------------+

---

 We now have your disklabel partitions for wd0 below.  This is your last   
 chance to chan+------------------------------------------------------------+
               | The current values for this partition are                  |
 Flags: (I)nsta| displayed below.                                           |
               |                                                            |
     Start (sec| Select the field you wish to change:                       |
    -----------|                                                            |
>a:        2054| a:             type : FFS                                  |
 b:       98379| b:            start : 0 sec                                |
 c:            |>c:             size : 983794 sec                           |
    -----------| d:              end : 983794 sec                           |
 e: C+--------------------------------------------------------------------+ |
 f: E|Special values that can be entered for the size value:              | |
 g: C|    -1:   use until the end                                         | |
 h: C|   a-c:   use until the given partition                             | |
 x: P|                                                                    | |
     |Size (max 20546 sec) [20546]:                                       | |
     +--------------------------------------------------------------------+ |
               | l: Delete partition                                        |
               | m: Cancel                                                  |
               | x: OK                                                      |
               +------------------------------------------------------------+

---

sysinst shows "(max 20546 sec)" but it should be "(20546 + 983794)"
in this case.

>Fix:
Check boundaries correctly even in "moving forward" case?

---
Izumi Tsutsui

>Audit-Trail:
From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/55381 CVS commit: src/usr.sbin/sysinst
Date: Tue, 29 Sep 2020 14:29:56 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Tue Sep 29 14:29:56 UTC 2020

 Modified Files:
 	src/usr.sbin/sysinst: defs.h label.c part_edit.c

 Log Message:
 PR 55381: try to deal with moved (but not yet saved) partitions when
 calculating free space


 To generate a diff of this commit:
 cvs rdiff -u -r1.63 -r1.64 src/usr.sbin/sysinst/defs.h
 cvs rdiff -u -r1.24 -r1.25 src/usr.sbin/sysinst/label.c
 cvs rdiff -u -r1.16 -r1.17 src/usr.sbin/sysinst/part_edit.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.