Miniboot script wipes the platform-backup partition when the persistent size is set to an invalid size

Bug #1998932 reported by Shrikumar Sharma
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
StarlingX
Fix Released
Medium
Shrikumar Sharma

Bug Description

Brief Description

DC Debian: Miniboot script wipes the backup-partition when the persistent size is set to an invalid size

Test Condition:

Current platform-backup partition size: 35G
Target persistent_size configuration: 30G
Results:

The install halts with following message:
Installation failed.2022-11-17 14:24:14.719 miniboot part warn: All-in-one Installation Failed: ERROR: Cannot set persistent_size smaller than 35000 MiB
... dropping to shell ; exit to reboot ...
The platform-backup partition is wiped:
root@(none):/# fdisk /dev/sdaWelcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xfb6f3e40.Command (m for help): p
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Disk model: PERC H730P Mini
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfb6f3e40
Next attempt to reinstall the subcloud with platform-backup with 30G will work as the partition has been wiped.
Note:

This issue is also reproduced when we set the persistent size to a value greater than the available disk space

Severity

<Critical: System/Feature is not usable after the defect>

Steps to Reproduce

Deploy a subcloud with platform-backup size set to 35G

Set persistent size to 30G

Update and reinstall subcloud

Expected Behavior

The installation should halts with a message saying that it is not possible to size down the platform-backup partition and it should keep the partition as it is (the contents under the partition should be safe).

Actual Behavior

When we set the persistent size with a value minor than the current partition size the miniboot wipes the partition

Reproducibility

100% reproducible

System Configuration

DC

Load info (eg: 2022-03-10_20-00-07)
BUILD_DATE="2022-11-11 23:00:09 +0000"

Last Pass
new test scenario.

Timestamp/Logs

Start state:

sysadmin@controller-0:~$ sudo touch /opt/platform-backup/test_persistent_size
sysadmin@controller-0:~$ ls /opt/platform-backup/
lost+found test_persistent_size
sysadmin@controller-0:~$ df -h | grep platform-backup
/dev/sda1 34G 48M 32G 1%
target config:

[sysadmin@controller-0 ~(keystone_admin)]$ cat subcloud-1/subcloud1-install-values.yaml | grep persistent_size
persistent_size: 30000

dcmanager subcloud update subcloud1 --install-values subcloud-1/subcloud1-install-values.yaml --bmc-password Li69nux*
+-----------------------------+----------------------------+
| Field | Value |
+-----------------------------+----------------------------+
| id | 14 |
| name | subcloud1 |
| description | None |
| location | None |
| software_version | 22.12 |
| management | unmanaged |
| availability | offline |
| deploy_status | bootstrap-failed |
| management_subnet | fd00:8:49::/64 |
| management_start_ip | fd00:8:49::2 |
| management_end_ip | fd00:8:49::ffff |
| management_gateway_ip | fd00:8:49::1 |
| systemcontroller_gateway_ip | fd00:8:48::1 |
| group_id | 1 |
| created_at | 2022-11-17T12:47:50.901889 |
| updated_at | 2022-11-17T13:56:56.578577 |
| backup_status | None |
| backup_datetime | None |
+-----------------------------+----------------------------+
miniboot logs:

Thu Nov 17 14:24:01 UTC 2022 Export %ks-early hook script /tmp/lat/lat_ks_early/0_script 2022-11-17 14:24:01.614 miniboot ks-early info: UEFI Firmware execution 2022-11-17 14:24:01.623 miniboot ks-early info: ***************************************************** 2022-11-17 14:24:01.624 miniboot ks-early info: *** Pre Partition - Volume Remove & Wipe Disk *** 2022-11-17 14:24:01.625 miniboot ks-early info: ***************************************************** 2022-11-17 14:24:01.626 miniboot ks-early info: Waiting for disks to be available 2022-11-17 14:24:01.633 miniboot ks-early info: Disks became available 2022-11-17 14:24:01.635 miniboot ks-early info: Install traits: controller,worker 2022-11-17 14:24:01.638 miniboot ks-early info: All-in-one LAT size parameters: FSZ=32 BSZ=512 RSZ=20480 VSZ=20480 2022-11-17 14:24:01.640 miniboot ks-early info: All-in-one /proc/cmdline:net.naming-scheme=vSTX7_0 BOOT_IMAGE=/bzImage-std initrd=/initrd instdate=@1668695041 instw=60 instiso=instboot biosplusefi=1 instnet=0 ks=file:///kickstart/miniboot.cfg rdinit=/install instname=debian instbr=starlingx instab=0 insturl=http://[2620:10a:a001:d41::1051]:8080/iso/22.12/ostree_repo ip=[2620:10a:a001:d41::54],,,64,subcloud1,eno3,off BLM=2506 FSZ=32 BSZ=512 RSZ=20480 VSZ=20480 instdev=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:0:0 rootfs_device=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:0:0 boot_device=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:0:0 persistent_size=30000 traits=controller,worker defaultkernel=vmlinuz-*[!t]-amd64 console=ttyS0,115200 serial 2022-11-17 14:24:01.673 miniboot ks-early info: All-in-one Controller Function 2022-11-17 14:24:01.674 miniboot ks-early info: All-in-one Worker Function 2022-11-17 14:24:01.675 miniboot ks-early info: All-in-one system 2022-11-17 14:24:01.694 miniboot ks-early warn: All-in-one timezone not set ; 'timezone --nontp --utc UTC' 2022-11-17 14:24:02.075 miniboot ks-early info: All-in-one Checking hwclock: 2022-11-17 14:33:56.624585+00:00, current date: Thu Nov 17 14:24:02 UTC 2022, instdate: Thu Nov 17 14:24:01 UTC 2022 Installing to: /dev/sda Export %pre-part hook script /tmp/lat/lat_pre_part/0_script 2022-11-17 14:24:03.093 miniboot pre-part info: All-in-one UEFI Firmware execution 2022-11-17 14:24:03.108 miniboot pre-part info: All-in-one Install device: /dev/sda : /dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:0:0 2022-11-17 14:24:03.109 miniboot pre-part info: All-in-one Detected storage devices: 2022-11-17 14:24:04.135 miniboot pre-part info: All-in-one Adding /dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:0:0 -> /dev/sda to managed device list 2022-11-17 14:24:04.174 miniboot pre-part info: All-in-one Adding /dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:1:0 -> /dev/sdb to managed device list 2022-11-17 14:24:04.186 miniboot pre-part info: All-in-one Adding /dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:2:0 -> /dev/sdc to managed device list 2022-11-17 14:24:04.192 miniboot pre-part info: All-in-one Unique storage devices: /dev/sda /dev/sdb /dev/sdc 2022-11-17 14:24:04.194 miniboot pre-part info: All-in-one Locked /dev/sda fd:10 2022-11-17 14:24:04.197 miniboot pre-part info: All-in-one Locked /dev/sdb fd:11 2022-11-17 14:24:04.199 miniboot pre-part info: All-in-one Locked /dev/sdc fd:12 2022-11-17 14:24:04.201 miniboot pre-part info: All-in-one Initial partition table for /dev/sda is: Model: DELL PERC H730P Mini (scsi) Disk /dev/sda: 307200MiB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1.00MiB 35001MiB 35000MiB ext4 platform_backup 2 35001MiB 35301MiB 300MiB fat16 otaefi boot, esp 3 35301MiB 35801MiB 500MiB ext4 otaboot 4 35801MiB 56281MiB 20480MiB ext4 otaroot 5 56281MiB 76761MiB 20480MiB ext4 fluxdata 6 76761MiB 260057MiB 183296MiB platform_pv lvm2022-11-17 14:24:04.221 miniboot pre-part info: All-in-one Initial partition table for /dev/sdb is: Model: DELL PERC H730P Mini (scsi) Disk /dev/sdb: 512000MiB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags2022-11-17 14:24:04.229 miniboot pre-part info: All-in-one Initial partition table for /dev/sdc is: Model: DELL PERC H730P Mini (scsi) Disk /dev/sdc: 552832MiB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags2022-11-17 14:24:04.239 miniboot pre-part info: All-in-one Volume Groups : cgts-vg ; 6 10 11 12 2022-11-17 14:24:04.281 miniboot pre-part info: All-in-one Found ' cgts-vg' volume groups 2022-11-17 14:24:04.283 miniboot pre-part info: All-in-one ... disabling cgts-vg 0 logical volume(s) in volume group "cgts-vg" now active File descriptor 7 (pipe:[37893]) leaked on vgs invocation. Parent PID 1327: /bin/sh File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1329: /bin/sh 2022-11-17 14:24:04.555 miniboot pre-part info: All-in-one Removing LVs on cgts-vg. File descriptor 7 (pipe:[37893]) leaked on lvremove invocation. Parent PID 1334: /bin/sh Logical volume "log-lv" successfully removed Logical volume "scratch-lv" successfully removed Logical volume "pgsql-lv" successfully removed Logical volume "rabbit-lv" successfully removed Logical volume "platform-lv" successfully removed Logical volume "extension-lv" successfully removed Logical volume "docker-lv" successfully removed Logical volume "etcd-lv" successfully removed Logical volume "dockerdistribution-lv" successfully removed Logical volume "backup-lv" successfully removed Logical volume "kubelet-lv" successfully removed File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1336: /bin/sh 2022-11-17 14:24:04.628 miniboot pre-part warn: All-in-one VG cgts-vg has PVs: /dev/sda6, removing them. 2022-11-17 14:24:04.629 miniboot pre-part info: All-in-one Removing PV /dev/sda6. File descriptor 7 (pipe:[37893]) leaked on pvremove invocation. Parent PID 1342: /bin/sh WARNING: PV /dev/sda6 is used by VG cgts-vg. WARNING: Wiping physical volume label from /dev/sda6 of volume group "cgts-vg". Labels on physical volume "/dev/sda6" successfully wiped. File descriptor 7 (pipe:[37893]) leaked on vgs invocation. Parent PID 1344: /bin/sh 2022-11-17 14:24:04.728 miniboot pre-part info: All-in-one Skip Ceph OSD data wipe. File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1355: /bin/sh File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1368: /bin/sh File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1376: /bin/sh File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1384: /bin/sh File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1392: /bin/sh File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1400: /bin/sh File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1408: /bin/sh 2022-11-17 14:24:05.166 miniboot pre-part info: All-in-one Adding /dev/sda to list of disks to be wiped 2022-11-17 14:24:05.167 miniboot pre-part info: All-in-one WIPE_HDD=/dev/sda File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1416: /bin/sh 2022-11-17 14:24:05.221 miniboot pre-part info: All-in-one Adding /dev/sdb to list of disks to be wiped 2022-11-17 14:24:05.223 miniboot pre-part info: All-in-one WIPE_HDD=/dev/sda,/dev/sdb File descriptor 7 (pipe:[37893]) leaked on pvs invocation. Parent PID 1429: /bin/sh 2022-11-17 14:24:05.269 miniboot pre-part info: All-in-one Adding /dev/sdc to list of disks to be wiped 2022-11-17 14:24:05.271 miniboot pre-part info: All-in-one WIPE_HDD=/dev/sda,/dev/sdb,/dev/sdc 2022-11-17 14:24:05.272 miniboot pre-part info: All-in-one Not in upgrade 2022-11-17 14:24:05.273 miniboot pre-part info: All-in-one =========== 2022-11-17 14:24:05.275 miniboot pre-part info: All-in-one WIPE DISKs: /dev/sda,/dev/sdb,/dev/sdc 2022-11-17 14:24:05.276 miniboot pre-part info: All-in-one =========== 2022-11-17 14:24:05.278 miniboot pre-part info: All-in-one Wiping /dev/sda 2022-11-17 14:24:05.304 miniboot pre-part info: All-in-one Looking for platform-backup partition on /dev/sda1 from ... instdev=/dev/sda device=/dev/sda 2022-11-17 14:24:05.325 miniboot pre-part info: All-in-one Discovered persistent backup partition: /dev/sda1 [platform_backup':2048:71682047:71680000:BA5EBA11-0000-1111-2222-000000000002] 2022-11-17 14:24:05.343 miniboot pre-part info: All-in-one Discovered persistent backup partition, /dev/sda1 [35000 MiB], is in the expected location and is formatted correctly. Maintaining... 2022-11-17 14:24:05.349 miniboot pre-part info: All-in-one skipping 'otaefi' on /dev/sda2 2022-11-17 14:24:05.355 miniboot pre-part info: All-in-one skipping 'otaboot' on /dev/sda3 2022-11-17 14:24:05.372 miniboot pre-part info: All-in-one Wiping /dev/sdb 2022-11-17 14:24:05.380 miniboot pre-part info: All-in-one Creating disk label for /dev/sdb 2022-11-17 14:24:05.403 miniboot pre-part info: All-in-one ... done 2022-11-17 14:24:05.404 miniboot pre-part info: All-in-one Wiping /dev/sdc 2022-11-17 14:24:05.413 miniboot pre-part info: All-in-one Creating disk label for /dev/sdc 2022-11-17 14:24:05.436 miniboot pre-part info: All-in-one ... done 2022-11-17 14:24:05.438 miniboot pre-part info: All-in-one Ensure any LAT installer root/boot partitions are zapped/wiped 2022-11-17 14:24:05.443 miniboot pre-part info: All-in-one ... destroying /dev/sda4 on /dev/sda 2022-11-17 14:24:05.444 miniboot pre-part info: All-in-one ... zapping /dev/sda GPT data structures destroyed! You may now partition the disk using fdisk or other utilities. [ 37.139397] sda: The operation has completed successfully. 2022-11-17 14:24:07.452 miniboot pre-part info: All-in-one ... probing /dev/sda 2022-11-17 14:24:07.472 miniboot pre-part info: All-in-one ... wiping /dev/sda /dev/sda: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54 /dev/sda: 8 bytes were erased at offset 0x4afffffe00 (gpt): 45 46 49 20 50 41 52 54 /dev/sda: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa /dev/sda: calling ioctl to re-read partition table: Success 2022-11-17 14:24:08.451 miniboot pre-part info: All-in-one Setting up initial IP address for ostree pull 2022-11-17 14:24:08.454 miniboot pre-part info: All-in-one Using ip=[2620:10a:a001:d41::54],,,64,subcloud1,eno3,off 2022-11-17 14:24:08.456 miniboot pre-part info: All-in-one Parsing boot ipstring=[2620:10a:a001:d41::54],,,64,subcloud1,eno3,off 2022-11-17 14:24:08.471 miniboot pre-part info: All-in-one Using IP values: ip:2620:10a:a001:d41::54, family: inet6 prefix:64, gw:, ifname: eno3, route options: , metric: metric 1, dns: 2022-11-17 14:24:08.473 miniboot pre-part info: All-in-one ip -6 address add 2620:10a:a001:d41::54 dev eno3 2022-11-17 14:24:08.477 miniboot pre-part info: All-in-one ip -6 link set dev eno3 up 2022-11-17 14:24:08.526 miniboot pre-part info: All-in-one ip -6 route add default dev eno3 metric 1 2022-11-17 14:24:08.529 miniboot pre-part info: All-in-one Waiting for interface eno3 to settle... [timeout: 60s] [ 41.319823] igb 0000:08:00.0 eno3: igb: eno3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX [ 41.330391] IPv6: ADDRCONF(NETDEV_CHANGE): eno3: link becomes ready 2022-11-17 14:24:12.539 miniboot pre-part info: All-in-one eno3 operstate: up 2022-11-17 14:24:12.541 miniboot pre-part info: All-in-one ip addr: 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp4s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 3c:fd:fe:b2:19:54 brd ff:ff:ff:ff:ff:ff 3: eno3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether ec:f4:bb:e9:9b:94 brd ff:ff:ff:ff:ff:ff altname enp8s0f0 inet6 2620:10a:a001:d41::54/128 scope global tentative valid_lft forever preferred_lft forever inet6 fe80::eef4:bbff:fee9:9b94/64 scope link tentative valid_lft forever preferred_lft forever 4: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether ec:f4:bb:e9:9b:90 brd ff:ff:ff:ff:ff:ff altname enp1s0f0 5: enp4s0f1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 3c:fd:fe:b2:19:55 brd ff:ff:ff:ff:ff:ff 6: eno4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether ec:f4:bb:e9:9b:95 brd ff:ff:ff:ff:ff:ff altname enp8s0f1 7: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether ec:f4:bb:e9:9b:92 brd ff:ff:ff:ff:ff:ff altname enp1s0f1 8: enp129s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 3c:fd:fe:ac:da:24 brd ff:ff:ff:ff:ff:ff 9: enp129s0f1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 3c:fd:fe:ac:da:25 brd ff:ff:ff:ff:ff:ff 2022-11-17 14:24:12.544 miniboot pre-part info: All-in-one ip route: 2620:10a:a001:d41::54 dev eno3 proto kernel metric 256 pref medium fe80::/64 dev eno3 proto kernel metric 256 pref medium default dev eno3 metric 1 pref medium Skipping LAT installer partitioning for StarlingX (inststx=1). Rely on kickstart partitioning (using %part hook). Export %part hook script /tmp/lat/lat_create_part/0_script 2022-11-17 14:24:13.685 miniboot part info: All-in-one UEFI Firmware execution 2022-11-17 14:24:13.687 miniboot part info: All-in-one ***************************************** 2022-11-17 14:24:13.688 miniboot part info: All-in-one *** Partition - Partition Disks *** 2022-11-17 14:24:13.690 miniboot part info: All-in-one ***************************************** 2022-11-17 14:24:13.693 miniboot part info: All-in-one BIOSPLUSEFI=1 configuration is requested 2022-11-17 14:24:13.694 miniboot part info: All-in-one WARNING: UEFI booted and installed controllers will NOT have a BIOS MBR partition due to partitioning patterns established in previous releases. 2022-11-17 14:24:13.696 miniboot part info: All-in-one LAT size parameters: BIOSSZ=1 BLM=2506 FSZ=300 BSZ=500 RSZ=20480 VSZ=20480 Creating new GPT entries in memory. GPT data structures destroyed! You may now partition the disk using fdisk or other utilities. Warning: Partition table header claims that the size of partition table entries is 0 bytes, but this program supports only 128-byte entries. Adjusting accordingly, but partition table may be garbage. Warning: Partition table header claims that the size of partition table entries is 0 bytes, but this program supports only 128-byte entries. Adjusting accordingly, but partition table may be garbage. 2022-11-17 14:24:14.711 miniboot part info: All-in-one Allocate host partitions on /dev/sda with first sector: 2048 and last sector: 629145566 2022-11-17 14:24:14.714 miniboot part info: All-in-one Install disk /dev/sda has size:322122547200B, 300GiB 2022-11-17 14:24:14.716 miniboot part info: All-in-one Large disk: MINIMUM_PLATFORM_PV_SIZE=179GiB*1024=183296 MiB 2022-11-17 14:24:14.717 miniboot part info: All-in-one AIO Controller: MINIMIZING root disk space allocation Installation failed.2022-11-17 14:24:14.719 miniboot part warn: All-in-one Installation Failed: ERROR: Cannot set persistent_size smaller than 35000 MiB ... dropping to shell ; exit to reboot ...

Alarms

n/a

Test Activity

Feature Testing

Workaround

n/a

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to metal (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/starlingx/metal/+/866786

Changed in starlingx:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to metal (master)

Reviewed: https://review.opendev.org/c/starlingx/metal/+/866786
Committed: https://opendev.org/starlingx/metal/commit/b29e8c73459e205c223263a63fb2a35b0d0c2f67
Submitter: "Zuul (22348)"
Branch: master

commit b29e8c73459e205c223263a63fb2a35b0d0c2f67
Author: Shrikumar Sharma <email address hidden>
Date: Tue Dec 6 13:44:11 2022 +0000

    Preserve persistent backup when invalid persistent_size provided

    Miniboot wipes the backup-partition when the persistent size
    is set to a value less than the existing size. The expectation is
    that the install should fail and the contents of platform-backup
    should be preserved.

    This fix solves the issue by failing the installation during the
    ks-early phase, where the provided persistent size value in the
    kernel commandline can be read, and no disk operations have been
    performed.

    Test Plan:
    PASS: Verify that installation with valid parameters passes.

    PASS: Verify that reinstall fails if persistent_size less
          than the current persistent_size is provided.

    PASS: Verify that contents of /opt/platform-backup are preserved
          when persistent_size less than the current size is
          provided.

    PASS: Verify that reinstall fails if persistent_size greater
          than the size of the rootfs device is provided.

    PASS: Verify that the contents of /opt/platform-backup are
          preserved when persistent-size greater than size of rootfs
          device is provided.

    Closes-Bug: 1998932

    Signed-off-by: Shrikumar Sharma <email address hidden>
    Change-Id: I51351cb14cdcfa63b4b5839d935589d997b5403a

Changed in starlingx:
status: In Progress → Fix Released
Ghada Khalil (gkhalil)
Changed in starlingx:
assignee: nobody → Shrikumar Sharma (ssharma3)
tags: added: stx.8.0 stx.metal
Ghada Khalil (gkhalil)
Changed in starlingx:
importance: Undecided → Medium
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.