Details
-
Bug
-
Resolution: Fixed
-
Low
-
5.0, 5.0.1
Description
Running 66 deployment projects noticeably slows down Bamboo's dashboard. The slowness is mostly coming from line 46774 of the batch.js file:
(function(){function i(e){return n.isArray(e)?n.reduce(e,function(e,t){return e[t]=null,e},{}):e}function s(e,t){if(!e||t==null)return t;if(typeof e=="string"||e instanceof String){if(typeof t!=""+e)throw"The typeof "+t+" is "+typeof t+" but expected it to be "+e;return t}if(n.isArray(e)||e===Array){if(!u(t))throw"Array type expected, but nonnull, non-Array value provided.";return e===Array||!e[0]?t:n.map(t,n.bind(s,null,e[0]))}if(typeof e!="function")throw"Invalid expected type "+e+". Should be falsy, String, Array, Backbone.Collection constructor, or function.";return t instanceof e?t:o(e)?new e(s([e.model],t)):new e(t)}function o(e,t){return e&&(e.__super__ instanceof(t||r.Collection)||e.__super__===(t||r.Collection).prototype||e===(t||r.Collection))}function u(e){return n.has(e,"length")&&!(e instanceof String||n.has({string:1,"function":1},typeof e)||e instanceof r.Collection)}function a(e,t){var r={};return n.each(e,function(e,n){if(!!t[n]&&!f(e,t[n])){if(!e||f(t[n],e))return;throw n+" has conflicted type descriptors."}r[n]=e}),r}function f(e,t){return!t||t===e?!0:!e||typeof e=="string"?!1:e instanceof Array?t===Array||t instanceof Array&&f(e[0],t[0]):typeof t!="function"?!1:o(t)?o(e,t):e.prototype instanceof t}function l(e){return n.isObject(e)?n.reduce(e,function(e,t,r){return t&&n.isFunction(t.toJSON)?e[r]=t.toJSON():n.isArray(t)&&(e[r]=n.map(t,function(e){return e&&n.isFunction(e.toJSON)?e.toJSON():e})),e},e):e}function c(e){return function(){var n=e.call(this);return l(n)}}function h(e){return function r(s,o){var u,a=n.extend({},s),f;return s&&s.mixins&&(f=s.mixins,delete a.mixins),u=e.call(this,a,o),this.prototype.namedEvents&&t.Mixins.applyMixin(u,{namedEvents:this.prototype.namedEvents}),this.prototype.namedAttributes&&t.Mixins.applyMixin(u,{namedAttributes:this.prototype.namedAttributes}),f&&n.each(s.mixins,function(e){t.Mixins.applyMixin(u,e)}),u.prototype.namedEvents&&t.Mixins.applyMixin(u,t.EventsMixinCreator.create(u.prototype.namedEvents)),u.prototype.namedAttributes&&(u.prototype.namedAttributes=i(u.prototype.namedAttributes),t.Mixins.applyMixin(u,t.AttributesMixinCreator.create(u.prototype.namedAttributes))),u.prototype.toJSON&&(u.prototype.toJSON=c(u.prototype.toJSON)),u.extend=r,u}}function p(e,t){var r=e.prototype,i=t.prototype,o=r.set;i.set=function(e,t,r){var i,u=this.namedAttributes;if(!u||e==null)return o.apply(this,arguments);n.isObject(e)?(i=n.clone(e),r=t):(i={},i[e]=t);for(var a in i){if(!n.has(i,a))continue;if(!n.has(u,a))throw"Attribute '"+a+"' does not exist";i[a]=s(u[a],i[a])}return o.call(this,i,r)};var u=r.get;i.get=function(e){if(this.namedAttributes&&!n.has(this.namedAttributes,e))throw"Attribute '"+e+"' does not exist";return u.apply(this,arguments)}}function d(e){var t=e.extend(),n=e.extend;return t.extend=h(n),t}function v(e){var t=d(e);return p(e,t),t}var e=this,t;typeof exports!="undefined"?t=exports:t=e.Brace={};var n=e._;!n&&typeof require!="undefined"&&(n=require("underscore"));var r=e.Backbone;!r&&typeof require!="undefined"&&(r=require("backbone")),t.Mixins={createMethodName:function(e,t){return e+t.charAt(0).toUpperCase()+t.substr(1)},applyMixin:function(e,t){n.forEach(n.keys(t),function(r){var s=e.prototype;if("initialize"===r){var o=s.initialize;s.initialize=function(){o&&o.apply(this,arguments),t.initialize.apply(this,arguments)};return}if("validate"===r){var u=s.validate;s.validate=function(){if(u){var e=u.apply(this,arguments);if(e)return e}return t.validate.apply(this,arguments)};return}if("defaults"===r){var f=s.defaults||(s.defaults={}),l=t[r];for(var c in l){if(f.hasOwnProperty(c))throw"Mixin error: class already has default '"+c+"' defined";f[c]=l[c]}return}if("namedAttributes"===r){var h=i(s.namedAttributes)||{},p=i(t[r]);s.namedAttributes=n.extend(h,a(p,h));return}if("namedEvents"===r){if(!n.isArray(t[r]))throw"Expects events member on mixin to be an array";s.namedEvents||(s.namedEvents=[]),s.namedEvents=n.uniq(s.namedEvents.concat(t[r]));return}if(s.hasOwnProperty(r))throw"Mixin error: class already has property '"+r+"' defined";s[r]=t[r]},this)}},t.AttributesMixinCreator={create:function(e){var r={};return e||(e={}),n.has(e,"id")||(e.id=null),n.each(e,function(e,n){var i=t.Mixins.createMethodName("set",n);r[i]=function(e,t){return this.set(n,e,t)};var s=t.Mixins.createMethodName("get",n);r[s]=function(){return this.get(n)}}),r},ensureType:s},t.EventsMixinCreator={create:function(e){var r={},i=function(e){var i=t.Mixins.createMethodName("on",e);r[i]=function(){return this.on.apply(this,[e].concat(n.toArray(arguments)))};var s=t.Mixins.createMethodName("trigger",e);r[s]=function(){return this.trigger.apply(this,[e].concat(n.toArray(arguments)))}};return n.each(e,n.bind(i,this)),r}},t.Model=v(r.Model),t.Collection=d(r.Collection),t.View=d(r.View),t.Router=d(r.Router)})();
Attachments
Issue Links
- causes
-
BAM-17176 Deployment Dashboards extremely slow in 5.10, particularly against MySQL
- Closed
-
BAM-17322 Deployment Dashboards still extremely slow in 5.10.2 against MySQL 5.5
- Closed
-
BAM-16628 Deployment dashboard broken for users who cannot see all deployment projects
- Closed
- is related to
-
BAM-18284 Deployment Projects page slow
- Closed
-
BAM-16420 View All Deployments is slow for non-admins
- Closed
- is detailed by
-
BDEV-9229 Loading...
- was cloned as
-
BDEV-9114 Loading...