Project

General

Profile

Actions

Bug #17492

closed

Exceptions thrown by the Ruby SDK should include the request id if possible

Added by Peter Amstutz about 3 years ago. Updated about 2 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
SDKs
Target version:
Story points:
-
Release relationship:
Auto

Subtasks 1 (0 open1 closed)

Task #17798: Review 17492-ruby-sdk-req-idsResolvedLucas Di Pentima02/08/2022Actions

Related issues

Blocked by Arvados - Bug #17830: Controller doesn't propagate back X-Request-Id headers on "new code path" endpointsResolvedWard Vandewege07/22/2021Actions
Actions #1

Updated by Peter Amstutz about 3 years ago

  • Target version set to 2021-05-26 sprint
Actions #2

Updated by Peter Amstutz almost 3 years ago

  • Target version changed from 2021-05-26 sprint to 2021-06-09 sprint
Actions #3

Updated by Peter Amstutz almost 3 years ago

  • Target version changed from 2021-06-09 sprint to 2021-06-23 sprint
Actions #4

Updated by Peter Amstutz almost 3 years ago

  • Subject changed from Errors should always include the request id if possible to Exceptions thrown by the Ruby SDK should include the request id if possible
Actions #5

Updated by Peter Amstutz almost 3 years ago

  • Assigned To set to Lucas Di Pentima
Actions #6

Updated by Lucas Di Pentima almost 3 years ago

  • Target version changed from 2021-06-23 sprint to 2021-07-07 sprint
Actions #7

Updated by Lucas Di Pentima almost 3 years ago

  • Blocked by Bug #17830: Controller doesn't propagate back X-Request-Id headers on "new code path" endpoints added
Actions #8

Updated by Lucas Di Pentima almost 3 years ago

  • Target version changed from 2021-07-07 sprint to 2021-07-21 sprint
Actions #9

Updated by Lucas Di Pentima almost 3 years ago

  • Target version changed from 2021-07-21 sprint to 2021-08-04 sprint
Actions #10

Updated by Lucas Di Pentima over 2 years ago

  • Target version changed from 2021-08-04 sprint to 2021-08-18 sprint
Actions #11

Updated by Lucas Di Pentima over 2 years ago

  • Target version changed from 2021-08-18 sprint to 2021-09-01 sprint
Actions #12

Updated by Lucas Di Pentima over 2 years ago

  • Target version changed from 2021-09-01 sprint to 2021-09-15 sprint
Actions #13

Updated by Lucas Di Pentima over 2 years ago

  • Target version changed from 2021-09-15 sprint to 2021-09-29 sprint
Actions #14

Updated by Peter Amstutz over 2 years ago

  • Target version changed from 2021-09-29 sprint to 2021-10-13 sprint
Actions #15

Updated by Lucas Di Pentima over 2 years ago

  • Target version changed from 2021-10-13 sprint to 2021-10-27 sprint
Actions #16

Updated by Lucas Di Pentima over 2 years ago

  • Target version changed from 2021-10-27 sprint to 2021-11-24 sprint
Actions #17

Updated by Lucas Di Pentima over 2 years ago

  • Target version changed from 2021-11-24 sprint to 2021-12-08 sprint
Actions #18

Updated by Lucas Di Pentima over 2 years ago

  • Status changed from New to In Progress
Actions #19

Updated by Lucas Di Pentima over 2 years ago

  • Target version changed from 2021-12-08 sprint to 2022-01-05 sprint
Actions #20

Updated by Lucas Di Pentima over 2 years ago

  • Target version changed from 2022-01-05 sprint to 2022-01-19 sprint
Actions #21

Updated by Lucas Di Pentima over 2 years ago

Updates at 1859bc3 - branch 17492-ruby-sdk-req-ids

Status update:

The arv CLI command currently implements its own GoogleAPIClient subclass to add custom behavior. I've replaced that subclass with a new one from the arvados gem.

The new Arvados::ArvadosClient class overrides the execute() method, passing a newly created X-Request-Id: req-xxxxx header to every request and also adding the request-id to the exception message if it's not there.

Pending:

  • Add some testing to this new ArvadosClient code. It would be ideal to do some unit testing to check the different failure modes, although it's not clear if it's a simple task.
  • The arv CLI testing machinery relies on installing a released version of the arvados gem, so the gem won't reflect any changes on the CLI test run until we do a proper release.
Actions #22

Updated by Lucas Di Pentima over 2 years ago

  • Target version changed from 2022-01-19 sprint to 2022-02-02 sprint
Actions #23

Updated by Peter Amstutz about 2 years ago

  • Target version changed from 2022-02-02 sprint to 2022-02-16 sprint
Actions #24

Updated by Lucas Di Pentima about 2 years ago

Updates at 5e26583 - branch 17492-ruby-sdk-req-ids
Test run:

  • Rebased to newest main
  • Reverted arv changes because it'll need the Ruby SDK to be released first.
  • Fixed Arvados::ArvadosClient class and added a test that confirms the request id is added to an exception message that doesn't include it.
Actions #25

Updated by Tom Clegg about 2 years ago

This LGTM.

I fell into a hole trying to run tests locally. When I deleted my {tmpdir}/GEMHOME dir in an attempt to resolve a bundler version conflict, run-tests.sh stopped working completely. It seems that it has been installing the desired version of bundler to $HOME but then running the version in {tmpdir}/GEMHOME. I'm guessing jenkins (like my system) still has a version of bundler installed in {tmpdir}/GEMHOME because a previous run-tests.sh would have also installed a version there, because bundler was (still is) listed in Gemfile.lock. Ugh!

I made things work by doing this:

17492-fix-bundler-install @ fba386bcea1c003760fa23daff1ecabc14a476ca -- developer-run-tests: #2902

If this looks right to you, maybe we should merge it?

Actions #26

Updated by Lucas Di Pentima about 2 years ago

17492-fix-bundler-install LGTM

Actions #27

Updated by Lucas Di Pentima about 2 years ago

  • Status changed from In Progress to Resolved
Actions #28

Updated by Peter Amstutz about 2 years ago

Lucas Di Pentima wrote:

17492-fix-bundler-install LGTM

FWIW I ended up making almost exactly the same fix in the arvbox branch, #18657

Actions #29

Updated by Peter Amstutz about 2 years ago

  • Release set to 46
Actions

Also available in: Atom PDF