Bug 1119618 - List server throw an exception when add '@','%','*','&' as parameters value in server.yml
Summary: List server throw an exception when add '@','%','*','&' as parameters value ...
Alias: None
Product: OpenShift Online
Classification: Red Hat
Component: oc
Version: 2.x
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
: ---
Assignee: Fabiano Franz
QA Contact: libra bugs
Depends On:
TreeView+ depends on / blocked
Reported: 2014-07-15 07:08 UTC by XiuJuan Wang
Modified: 2017-05-31 18:22 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2017-05-31 18:22:11 UTC

Attachments (Terms of Use)

Description XiuJuan Wang 2014-07-15 07:08:18 UTC
Description of problem:
Add '@','%','*','&' as parameters value in server.yml,then list server showing some 'Psych::SyntaxError'.

If add/configure servers with above invalid parameters value, will show meaningful message.

Version-Release number of selected component (if applicable):
rhc build from devenv_4967

How reproducible:

Steps to Reproduce:
1.Modify timeout value as '@' in server.yml.
- server:
    hostname: openshift.redhat.com
    nickname: online
    use_authorization_tokens: true
    insecure: false
    timeout: @
2.List servers

Actual results:

# rhc server list 
/usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/psych.rb:203:in `parse': (/root/.openshift/servers.yml): found character that cannot start any token while scanning for the next token at line 13 column 14 (Psych::SyntaxError)
	from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/psych.rb:203:in `parse_stream'
	from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/psych.rb:151:in `parse'
	from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/psych.rb:127:in `load'
	from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/psych.rb:297:in `block in load_file'
	from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/psych.rb:297:in `open'
	from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/psych.rb:297:in `load_file'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/lib/rhc/servers.rb:174:in `load'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/lib/rhc/servers.rb:71:in `initialize'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/lib/rhc/config.rb:364:in `new'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/lib/rhc/config.rb:364:in `load_servers'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/lib/rhc/config.rb:375:in `lazy_init'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/lib/rhc/config.rb:368:in `servers_config'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/lib/rhc/config.rb:347:in `sync_additional_config'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/lib/rhc/commands.rb:86:in `parse_options_and_call_procs'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/commander-4.1.6/lib/commander/command.rb:155:in `run'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/commander-4.1.6/lib/commander/runner.rb:420:in `run_active_command'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/lib/rhc/command_runner.rb:72:in `run!'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/commander-4.1.6/lib/commander/delegates.rb:12:in `run!'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/lib/rhc/cli.rb:37:in `start'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rhc-1.28.0/bin/rhc:20:in `<top (required)>'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/rhc:19:in `load'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/rhc:19:in `<main>'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/ruby_executable_hooks:15:in `eval'
	from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/ruby_executable_hooks:15:in `<main>'

Expected results:
Should show friendly message.

Additional info:

Comment 1 Vu Dinh 2015-10-16 14:41:56 UTC
This bug is already fixed as it works fine when I try to reproduce.

Comment 2 XiuJuan Wang 2015-10-26 08:08:05 UTC
I still could reproduce this issue with rhc-1.38.4

1.Modify one parameters value to & in server.yml
- server:
    hostname: openshift.redhat.com
    nickname: & 
    login: xiu@redhat.com
    use_authorization_tokens: true
    insecure: true
2.Do server list, still show error as comment #0

Comment 3 Vu Dinh 2015-10-26 14:47:58 UTC
I'm still not able to reproduce the bug.

Here are my findings:

1. If I changed nickname to "&" and then run 'rhc server list', there is no error as it simply shows:
Server '@' (in use)
  Hostname:        [filtered]
  Login:           [filtered]
  Use Auth Tokens: true
  Insecure:        true

2. If I add 'timeout: &' and run rhc, then the error msg is:
The configuration file /root/.openshift/express.conf contains an invalid
setting: invalid value for Integer: "&"
which is perfectly fine

rhc --version : rhc 1.38.4
ruby --version : ruby 1.9.3p484 (2013-11-22) [x86_64-linux]
devenv: devenv_5681

Would you mind verifying the versions of ruby, rhc and devenv? Perhaps, retrying with the versions that I list above.

Comment 4 XiuJuan Wang 2015-10-28 09:45:19 UTC
hi Vu,
My env is ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-linux].

Since can't find ruby 1.9.3p484 web site(https://cache.ruby-lang.org/pub/ruby/)

I use setup two env:
one with ruby 2.2.3p173 [x86_64-linux]
one with ruby 2.1.7p400 [x86_64-linux]

when set @/& in server.yaml, the above error gone,but both show my env not set.Actually,I have setup rhc.

If custom use different ruby version with you, how do they deal this issue?

1.# rhc server  list
Server 'server1' (in use)
  Hostname:        ec2-54-175-215-241.compute-1.amazonaws.com
  Login:           xiuwang
  Use Auth Tokens: true
  Insecure:        true
  Timeout:         10

Server 'stg'
  Hostname:        stg.openshift.redhat.com
  Login:           xiuwang
  Use Auth Tokens: true
  Insecure:        true

You have 2 servers configured. Use 'rhc server use <hostname|nickname>' to switch between them.

2.Set @/& into server.yml

# cat .openshift/servers.yml
- server:
    hostname: stg.openshift.redhat.com
    nickname: stg
    login: xiuwang
    use_authorization_tokens: true
    insecure: true
- server:
    hostname: ec2-54-175-215-241.compute-1.amazonaws.com
    nickname: @
    login: xiuwang
    use_authorization_tokens: true
    insecure: true
    timeout: 10
3.# rhc server  list
Server 'server1' (not configured, run 'rhc setup')
  Hostname: ec2-54-175-215-241.compute-1.amazonaws.com

You have 1 server configured. Use 'rhc server add' to add a new server.

Comment 5 Vu Dinh 2015-10-28 17:12:11 UTC
Hi XiuJuan,

Would you let me know which rhc version that you are running with the two instances with the ruby 2.1 and 2.2?


Comment 6 XiuJuan Wang 2015-10-29 03:01:59 UTC
my rhc version is rhc-1.38.4 when run with envs with the ruby 2.1 and 2.2

Comment 7 Vu Dinh 2015-10-29 03:29:30 UTC
Hi XinJuan,

I'm having a bit of trouble to install rhc 1.38.4 while using ruby 2.1 and 2.2. I would like to ask if you can spin up 2 devenv with the setup that you have above and then stop and put them in preserve. I can restart and log in to those instances in the morning and run test on them to verify the bug. Just make sure you use libra private key and put bug number on the name so I can log in and recognize them in AWS. I hope that's not too much to ask.

Thanks in advance.

Comment 11 Eric Paris 2017-05-31 18:22:11 UTC
We apologize, however, we do not plan to address this report at this time. The majority of our active development is for the v3 version of OpenShift. If you would like for Red Hat to reconsider this decision, please reach out to your support representative. We are very sorry for any inconvenience this may cause.

Note You need to log in before you can comment on or make changes to this bug.