Bug 785094 - ActionDispatch::Cookies::CookieOverflow for big deployments
Summary: ActionDispatch::Cookies::CookieOverflow for big deployments
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: CloudForms Cloud Engine
Classification: Retired
Component: aeolus-conductor
Version: 1.0.0
Hardware: Unspecified
OS: Unspecified
unspecified
low
Target Milestone: rc
Assignee: Jan Provaznik
QA Contact: wes hayutin
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-01-27 08:56 UTC by Jan Provaznik
Modified: 2012-05-15 22:25 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-05-15 22:25:27 UTC


Attachments (Terms of Use)
long flash error (337.31 KB, image/png)
2012-02-24 12:28 UTC, Shveta
no flags Details
25_instances (221.45 KB, image/png)
2012-02-24 12:28 UTC, Shveta
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2012:0583 0 normal SHIPPED_LIVE new packages: aeolus-conductor 2012-05-15 22:31:59 UTC

Description Jan Provaznik 2012-01-27 08:56:33 UTC
Steps to Reproduce:
1. create a deployable with many images (25)
2. create a frontend realm which is not mapped to any backend realm or provider
3. try to launch the deployable with this realm

Because of missing realm mapping, no match is found for any of images -> conductor tries to generate really long flash error (see bellow), which is too big to fit into 4k cookie limit -> Error page is rendered: 

ActionDispatch::Cookies::CookieOverflow in DeploymentsController#launch_time_params

ActionDispatch::Cookies::CookieOverflow


I'm not sure how important is this bug since this occurs only for bigger deployments. Could be fixed by displaying the the errors for mages inside page instead of in flash.


flash: {:error=>{:failures=>{"ttt7-5"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt3-1"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt4-1"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt3-2"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt5-1"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt4-2"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt3-3"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt6-1"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt5-2"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt4-3"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt3-4"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt7-1"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt6-2"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt5-3"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt4-4"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt3-5"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt7-2"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt6-3"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt5-4"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt4-5"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt7-3"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt6-4"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt5-5"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt7-4"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled", "ttt6-5"=>"Realm r2 is not mapped to any provider or provider realm, ec2: provider must be enabled"}}}

Comment 1 wes hayutin 2012-01-27 14:07:23 UTC
deployables w/ multiple assemblies is not supported in 1.0, low priority

Comment 2 Jan Provaznik 2012-01-27 14:44:17 UTC
This error can occur in other situations too - anywhere where we work with multiple objects and save a result into flash, for example when stopping instances: start many deployments (30) on one provider, better to use long instance time, then stop DC core and rty to stop instances. Condutor prints list of instances which failed to stop, but if this list will be sufficiently long, it will throws exception page.

Comment 3 Jan Provaznik 2012-02-08 16:08:56 UTC
Heh, found funny related bug:
in config/initializers/session_store.rb we define:
Conductor::Application.config.session_store = :active_record_store
but correct syntax is:
Conductor::Application.config.session_store :active_record_store

Because of wrong syntax, default CookieSession is used, which is... bad.

But this doesn't solve the problem. For some reason flash object is saved in _session_id key string, this string is:
1) sent as cookie (4k limit anyway)
2) is used when storing session in DB (if SessionStore is used) - there is varchar(255) limit for _session_id in db table, so another exception is raised.

Going to check if we can somehow set what is saved in '_session_id' string.

Comment 5 Jan Provaznik 2012-02-09 10:32:52 UTC
pushed, commit: 8654859c236693f7ca81aadf1b539cf379742141

Comment 6 Shveta 2012-02-24 12:28:08 UTC
Created attachment 565590 [details]
long flash error

Comment 7 Shveta 2012-02-24 12:28:49 UTC
Created attachment 565591 [details]
25_instances

Comment 8 Shveta 2012-02-24 12:30:59 UTC
launched a deployment with 25 assemblies , for a realm not mapped to
any provider.. 
Long flash error is displayed..



rpm -qa|grep aeolus
aeolus-conductor-0.8.0-35.el6.noarch
rubygem-aeolus-cli-0.3.0-10.el6.noarch
aeolus-conductor-doc-0.8.0-35.el6.noarch
rubygem-aeolus-image-0.3.0-9.el6.noarch
aeolus-all-0.8.0-35.el6.noarch
aeolus-conductor-daemons-0.8.0-35.el6.noarch
aeolus-configure-2.5.0-15.el6.noarch

Comment 9 errata-xmlrpc 2012-05-15 22:25:27 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHEA-2012-0583.html


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