Bug #10539

"Clone and upgrade" on Jessie pretends my Tails was not installed with our Installer

Added by intrigeri 2015-11-12 03:44:40 . Updated 2015-11-25 05:10:30 .

Status:
Resolved
Priority:
High
Assignee:
Category:
Installation
Target version:
Start date:
2015-11-12
Due date:
% Done:

100%

Feature Branch:
451f:liveusb-creator/feature/jessie and 451f:liveusb-creator/tails/jessie
Type of work:
Code
Blueprint:

Starter:
Affected tool:
Installer
Deliverable for:

Description

I start from DVD a Tails built from feature/jessie today, “clone and install” it to a USB drive, reboot the same Tails from DVD, attempt “clone and upgrade” to the same USB drive, and I’m told:

It is impossible to upgrade the device QEMU QEMU HARDDISK (4.3 GB QEMU-QEMU-HARDDISK-1-0000:00:07.7-1) - /dev/sda1 because it was not created using Tails Installer. You should instead use "Clone & Install" to upgrade Tails on this device.

I think this worked on the GTK3 installer recently, and I suspect this is a regression introduced when merging master.


Subtasks


Related issues

Related to Tails - Feature #5623: Tails Installer should refuse upgrading a device that hasn't Tails installed Resolved
Blocks Tails - Feature #8557: Have Tails Installer uploaded and accepted into Debian Resolved 2015-01-06
Blocks Tails - Feature #7563: Update the automated test suite for Jessie ISO images Resolved 2014-11-26 2016-01-15

History

#1 Updated by intrigeri 2015-11-12 03:45:00

  • blocks #8538 added

#2 Updated by intrigeri 2015-11-12 03:46:10

Note that this only affects Tails, so it’s not blocking the upload to Debian. But it breaks some of the automated test suite, that’s high prio for 1.8.

#3 Updated by intrigeri 2015-11-12 04:10:38

  • related to Feature #5623: Tails Installer should refuse upgrading a device that hasn't Tails installed added

#4 Updated by intrigeri 2015-11-18 02:00:16

  • blocks Feature #8557: Have Tails Installer uploaded and accepted into Debian added

#5 Updated by intrigeri 2015-11-18 03:20:43

intrigeri wrote:
> Note that this only affects Tails

Tested for real, and I was wrong.

#6 Updated by intrigeri 2015-11-18 03:41:20

  • blocks Feature #7563: Update the automated test suite for Jessie ISO images added

#7 Updated by Anonymous 2015-11-19 03:05:43

  • Assignee set to intrigeri
  • QA Check set to Ready for QA
  • Feature Branch set to 451f:feature/jessie

The function which tests if the USB device used is a Tails, does not do more than check the partition table, filesystem and disk label. The latter did not work correctly. I pushed a fix for this to feature/jessie, and built and tested tails-installer-4.4.3.
This latest deb package also contains Alan’s latest UI improvements.

#8 Updated by intrigeri 2015-11-19 05:07:30

  • Assignee deleted (intrigeri)
  • QA Check changed from Ready for QA to Info Needed

> The function which tests if the USB device used is a Tails, does not do more than check the partition table, filesystem and disk label.

It checks the GPT partition label vs. the one we want (and the one we want is in self.label which could be reused, but for some reason it’s hardcoded ‘Tails’ here. Whatever).

> I pushed a fix for this to feature/jessie,

Assuming you mean:

-           and device['label'] == 'Tails':
+           and self.label == 'Tails':

… my understanding is that this updated condition will always be verified: self.label is initialized to config['branding']['partition_label'] ( 'Tails') on top of @class TailsInstallerCreator@, and I don't think it's modified anywhere else. So what this test now does is essentially @'Tails' ‘Tails’@, no?

I may be wrong, but it looks like device_can_be_upgraded will now return True if all other conditions are met, regardless of the target GPT partition label.

> and built and tested tails-installer-4.4.3.

I assume you tested that the bug I reported is fixed by essentially dropping the test. I’d like to make sure you also test that we’re not replacing this regression with another one (namely: Tails Installer allows “upgrading” a device that does not contain a Tails, which is what this code was supposed to guard against (Feature #5623)).

I admit I’m doing lots of guesswork here, and didn’t actually verify anything. If you actually tested this and think I’m wrong, just let me know and I’ll do my homework :)

#9 Updated by Anonymous 2015-11-19 08:34:52

  • Assignee set to intrigeri
  • QA Check changed from Info Needed to Ready for QA
  • Feature Branch changed from 451f:feature/jessie to 451f:liveusb-creator/feature/jessie and 451f:liveusb-creator/tails/jessie

I’ve added the correct partition label property, as worked out earlier today. Thanks for your help on that one. Please review.

#10 Updated by Anonymous 2015-11-19 08:36:29

intrigeri wrote:
> … my understanding is that this updated condition will always be verified: self.label is initialized to config['branding']['partition_label'] ( 'Tails') on top of @class TailsInstallerCreator@, and I don't think it's modified anywhere else. So what this test now does is essentially @'Tails' ‘Tails’@, no?

FTR, this is absolutely correct, my testing was only half well done.
FTR again, what helped was udisksctl dump and running tails-installer with DEBUG=1.

#11 Updated by Anonymous 2015-11-19 08:41:45

Also, after retesting again, please note that now we check for the partition name and not the filesystem label. If I modify the latter to something !Tails, the code will still work, as it checks the partition label.

#12 Updated by intrigeri 2015-11-25 02:21:56

  • Status changed from Confirmed to In Progress
  • % Done changed from 0 to 50

I indeed can’t reproduce the bug in tails-installer_4.4.4 :) Not tested other use cases manually, so more confidence will come when running the test suite => I’ll upload a .deb soonish, tht should fix both Bug #10538 and this very ticket.

#13 Updated by intrigeri 2015-11-25 03:06:03

tails-installer 4.4.4+dfsg-0tails2 uploaded to feature-jessie

#14 Updated by intrigeri 2015-11-25 05:10:30

  • Status changed from In Progress to Resolved
  • Assignee deleted (intrigeri)
  • % Done changed from 50 to 100
  • QA Check changed from Ready for QA to Pass

Tested manually because Bug #10660 breaks the corresponding automated tests => works! :)