Bug #11832

Upgrade Tor to 0.2.8.8

Added by intrigeri 2016-09-24 01:11:01 . Updated 2016-11-15 18:23:34 .

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Target version:
Start date:
2016-09-24
Due date:
% Done:

100%

Feature Branch:
feature/11832-tor-0.2.8.8
Type of work:
Code
Blueprint:

Starter:
Affected tool:
Deliverable for:

Description


Subtasks


History

#1 Updated by intrigeri 2016-09-24 04:28:45

  • Status changed from Confirmed to In Progress
  • % Done changed from 0 to 10
  • Feature Branch set to feature/11832-tor-0.2.8.8

#2 Updated by intrigeri 2016-09-25 13:27:19

Test results on Jenkins are encouraging. But I’ve seen one occurrence of NEWNYM failure there, which is a little bit concerning. Reading upstream’s changelog, I don’t see how this could possibly be related to the Tor upgrade, so I wonder if we have a bug in the test suite. I’ll run it a few more times.

#3 Updated by intrigeri 2016-09-25 13:30:44

  • Assignee changed from intrigeri to anonym
  • QA Check set to Info Needed

Here’s the debug log. The error reporting is quite confusing: is it the NEWNYW that failed, or the gpg command? anonym, can you please have a look (and possibly file a ticket for the test suite side of things, if there’s actually a problem worth tracking)?

calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
call returned: [2, "", "gpg: error reading key: public key not found\n"]
calling as amnesia: gpg --batch --list-keys '10CC5BC7'
Tor operation failed (Try 1 of 10) with:
Timeout::Error: try_for() timeout expired
Last ignored exception was: ExecutionFailedInVM: Command failed: gpg --batch --list-keys '10CC5BC7'
error code: 2
stderr: gpg: error reading key: public key not found
.
<false> is not true.
Forcing new Tor circuit...
calling as root: . /usr/local/lib/tails-shell-library/tor.sh && tor_control_send "signal NEWNYM"
call returned: [2, "", "gpg: error reading key: public key not found\n"]
    When I fetch the "10CC5BC7" OpenPGP key using Seahorse                         # features/step_definitions/torified_gnupg.rb:154
      Command failed: . /usr/local/lib/tails-shell-library/tor.sh && tor_control_send "signal NEWNYM"
      error code: 2
      stderr: gpg: error reading key: public key not found
      .
      <false> is not true. (ExecutionFailedInVM)
      ./features/support/helpers/vm_helper.rb:442:in `rescue in execute_successfully'
      ./features/support/helpers/vm_helper.rb:439:in `execute_successfully'
      ./features/support/helpers/misc_helpers.rb:94:in `force_new_tor_circuit'
      ./features/support/helpers/misc_helpers.rb:104:in `block in retry_tor'
      ./features/support/helpers/misc_helpers.rb:133:in `call'
      ./features/support/helpers/misc_helpers.rb:133:in `rescue in block in retry_action'
      ./features/support/helpers/misc_helpers.rb:125:in `block in retry_action'
      ./features/support/helpers/misc_helpers.rb:124:in `loop'
      ./features/support/helpers/misc_helpers.rb:124:in `retry_action'
      ./features/support/helpers/misc_helpers.rb:108:in `retry_tor'
      ./features/step_definitions/torified_gnupg.rb:172:in `/^I fetch the "([^"]+)" OpenPGP key using Seahorse( via the OpenPGP Applet)?$/'
      features/torified_gnupg.feature:22:in `When I fetch the "10CC5BC7" OpenPGP key using Seahorse'
    And the Seahorse operation is successful                                       # features/step_definitions/torified_gnupg.rb:72
    Then the "10CC5BC7" key is in the live user's public keyring                   # features/step_definitions/torified_gnupg.rb:82
      Scenario failed at time 02:30:17

#4 Updated by anonym 2016-09-27 03:40:21

  • Assignee changed from anonym to intrigeri
  • QA Check changed from Info Needed to Dev Needed

The problem is this:

calling as root: . /usr/local/lib/tails-shell-library/tor.sh && tor_control_send "signal NEWNYM" 
call returned: [2, "", "gpg: error reading key: public key not found\n"]


I.e. the remote shell has mixup up the response. I’ve been fearing this for years, and this is the first time I’ve seen it. What I think happened is: in the try_for we send the gpg --list-keys command, and while it is executing in the guest the try_for times out. Whoever, the remote shell will happily write the response to the socket, and it will wait there until next time the client (i.e. the test suite) polls for a response.

We need proper session handling so that each request and response has a unique ID. This would be trivial with python’s socketserver if the channel was TCP, but it is TCP <—> serial port for us. :/ Any way, this clearly has nothing to do with Tor, and I’ll open a ticket for this new issue.

#5 Updated by anonym 2016-09-27 04:12:33

anonym wrote:
> […] I’ll open a ticket for this new issue.

Now that is Bug #11846.

#6 Updated by intrigeri 2016-09-28 02:46:40

  • Assignee changed from intrigeri to anonym
  • QA Check changed from Dev Needed to Info Needed

> Assignee changed from anonym to intrigeri
> QA Check changed from Info Needed to Dev Needed

What work is left to do on my plate, exactly?

#7 Updated by anonym 2016-09-28 02:51:10

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

intrigeri wrote:
> > Assignee changed from anonym to intrigeri
> > QA Check changed from Info Needed to Dev Needed
>
> What work is left to do on my plate, exactly?

No idea, I suppose “Dev Needed” wasn’t correct.

#8 Updated by intrigeri 2016-09-28 03:05:25

Oops, sorry! I thought I already has set this ticket as Ready for QA, which is obviously not the case as I wanted to gather more test results from Jenkins first.

#9 Updated by intrigeri 2016-09-28 03:08:00

  • Assignee changed from intrigeri to bertagaz
  • % Done changed from 10 to 50
  • QA Check set to Ready for QA

I’ve looked at the latest test results and it seems good to me. bertagaz, please review’n’merge.

#10 Updated by bertagaz 2016-10-03 08:26:58

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

Works fine home, merged!

#11 Updated by bertagaz 2016-11-15 18:23:34

  • Status changed from Fix committed to Resolved