Project

General

Profile

Actions

Bug #13920

closed

arvados-cli fails with ruby versions >= 2.3.7

Added by Lucas Di Pentima over 5 years ago. Updated over 5 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
SDKs
Target version:
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 1 (0 open1 closed)

Task #13922: Review 13920-arvados-gem-with-newer-rubiesClosed07/26/2018Actions

Related issues

Related to Arvados - Bug #14153: [gem] make google-api-client compatible with ruby 2.3.7ResolvedWard VandewegeActions
Related to Arvados - Bug #16043: There was an error while trying to load the gem 'arvados'.Gem Load Error is: can't modify frozen StringClosedActions
Related to Arvados - Bug #17738: [ruby] sudden gem load errors on ubuntu 18.04 (ruby 2.5.1)ResolvedWard Vandewege05/27/2021Actions
Actions #1

Updated by Lucas Di Pentima over 5 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.

Actions #2

Updated by Lucas Di Pentima over 5 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.

Actions #3

Updated by Lucas Di Pentima over 5 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.

Actions #4

Updated by Peter Amstutz over 5 years ago

LGTM

Actions #5

Updated by Lucas Di Pentima over 5 years ago

  • Status changed from In Progress to Resolved
Actions #6

Updated by Ward Vandewege over 5 years ago

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

Updated by Tom Morris over 5 years ago

  • Release set to 13
Actions #8

Updated by Ward Vandewege over 4 years 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
Actions #9

Updated by Lucas Di Pentima almost 3 years ago

  • Related to Bug #17738: [ruby] sudden gem load errors on ubuntu 18.04 (ruby 2.5.1) added
Actions

Also available in: Atom PDF