Bug #13920

arvados-cli fails with ruby versions >= 2.3.7

Added by Lucas Di Pentima almost 3 years ago. Updated over 2 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
SDKs
Target version:
Start date:
07/26/2018
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Story points:
-
Release:
Release relationship:
Auto

Description

When using arvados-cli with ruby 2.3.7 or above, it errors out with the following error message:

Failed to connect to Arvados API server: header field value cannot include CR/LF

Subtasks

Task #13922: Review 13920-arvados-gem-with-newer-rubiesClosed


Related issues

Related to Arvados - Bug #14153: [gem] make google-api-client compatible with ruby 2.3.7Resolved

Related to Arvados - Bug #16043: There was an error while trying to load the gem 'arvados'.Gem Load Error is: can't modify frozen StringClosed

Associated revisions

Revision 43175f03
Added by Lucas Di Pentima almost 3 years ago

Merge branch '13920-arvados-gem-with-newer-rubies'
Closes #13920

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <>

History

#1 Updated by Lucas Di Pentima almost 3 years ago

The issue is caused by the fact that newer versions of Ruby don't accept \n on header fields, and the google-api-client gem we're using sometimes adds it.

One option is to upgrade the google-api-client gem to version 0.20.0 or above (see https://github.com/google/google-api-ruby-client/pull/648/commits/ee8c922dbf9cef79284d4b83d16d4d73008a6e8f) but that's isn't trivial because from version 0.9 onwards, this gem significantly changed its way of working, and it's not compatible with our arvados gem.

The other option would be to monkeypatch the google-api-client gem from our own arvados gem.

#2 Updated by Lucas Di Pentima almost 3 years ago

Updates at c0b02133b - branch 13920-arvados-gem-with-newer-rubies
Test run: https://ci.curoverse.com/job/developer-run-tests/828/

Monkeypatch google-api-client after requiring it on the arvados gem.

#3 Updated by Lucas Di Pentima almost 3 years ago

How to test:

1. Build the new arvados gem
2. With rvm install ruby 2.3.7 or 2.4.4
3. Create a gemset and install the newly created arvados gem and then install arvados-cli gem
4. Set up vars to access some arvados instance
5. Execute "arv user current", it should work without issues.

#4 Updated by Peter Amstutz almost 3 years ago

LGTM

#5 Updated by Lucas Di Pentima almost 3 years ago

  • Status changed from In Progress to Resolved

#6 Updated by Ward Vandewege over 2 years ago

  • Related to Bug #14153: [gem] make google-api-client compatible with ruby 2.3.7 added

#7 Updated by Tom Morris over 2 years ago

  • Release set to 13

#8 Updated by Ward Vandewege over 1 year ago

  • Related to Bug #16043: There was an error while trying to load the gem 'arvados'.Gem Load Error is: can't modify frozen String added

Also available in: Atom PDF