Updated to use browserstack v2 API #33

Merged
merged 2 commits into from Nov 14, 2012

3 participants

@saiwong

Updated to use the browserstack v2 API to allow for OS specific browser workers. Also updated map.js to add previously unsupported browsers. #19

Sai Wong Updated to use browserstack v2 API
Updated to use the browserstack v2 API to allow for OS specific browser
workers. Also updated `map.js` to add previously unsupported browsers.
#19
373ff79
@clarkbox
Owner

i will review this and get it merged this weekend

@clarkbox
Owner

There seems to be some issues with this revision. Specifically, workers seems to be endlessly queued regardless of their status reported by browserstack. Should be a simple fix to the logic that correlates running/queued workers with needed workers.

I will continue to test this, and report back when i have a resolution.

Sai Wong Fixed hashing of workers
Fixed hashing of workers that was causing workers to not terminate as
needed.
dec7b61
@saiwong

Hey thanks for the heads up. I added a fix for that issue and tested to ensure spawned workers were terminated correctly.

@Krinkle
Collaborator

(just for the record)

... because in API v1 /workers is like:

[
    {
        "browser": {
            "name": "chrome",
            "version": "19.0"
        },
        "status": "running",
        "id": 9254
    }
]

and in API V2:

[
    {
        "os": "win",
        "browser": "chrome",
        "version": "19.0",
        "status": "running",
        "id": 506664
    }
]
@clarkbox
Owner

working better now.
@saiwong thanks for your contribution!

EDIT: spoke too soon. still some slight issues. however they may be unrelated to this change.

@clarkbox
Owner

@Krinkle
can you investigate this log. you can see that IE7 is constantly starting and then terminating a couple runs later. I am not sure if this is intended. seems to me that it is not?

Tue Nov 13 2012 13:56:17 GMT-0800 (PST)
Starting run loop...
    Tue Nov 13 2012 13:56:17 GMT-0800 (PST)


    == Task 0 ==


    Summary: { 'IE|7': 2, 'Opera|12|0': 2 }

    Live workers:
     { '506859': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506893': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506914': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      '506915': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } } }

    Live swarm state:
     { 'Chrome|17': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|18': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|19': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|20': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|21': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|22': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|11': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|12': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|13': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|14': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|15': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|16': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 4 },
      'IE|7': 
       { onlineClients: 2,
         activeRuns: 1,
         pendingRuns: 0,
         pendingReRuns: 12 },
      'IE|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|50': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|60': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|12|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 20,
         pendingReRuns: 0 },
      'Safari|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|1': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|6|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|1': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|3|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|4|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 } } 


    == Task 1 ==



    == Task 2 ==


    == Task 3 ==

    Status... (workers: 4 / limit: 10)
    Neediness exhausted, done!

Next iteration in 10 seconds...













Starting run loop...
    Tue Nov 13 2012 13:56:28 GMT-0800 (PST)


    == Task 0 ==


    Summary: { 'IE|7': 2, 'Opera|12|0': 2 }

    Live workers:
     { '506859': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506893': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506914': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      '506915': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } } }

    Live swarm state:
     { 'Chrome|17': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|18': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|19': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|20': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|21': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|22': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|11': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|12': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|13': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|14': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|15': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|16': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 4 },
      'IE|7': 
       { onlineClients: 0,
         activeRuns: 1,
         pendingRuns: 0,
         pendingReRuns: 12 },
      'IE|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|50': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|60': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|12|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 20,
         pendingReRuns: 0 },
      'Safari|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|1': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|6|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|1': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|3|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|4|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 } } 



    == Task 1 ==

    Running worker disconnected from the swarm: { worker: 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      stats: 
       { onlineClients: 0,
         activeRuns: 1,
         pendingRuns: 0,
         pendingReRuns: 12 } }
    Running worker disconnected from the swarm: { worker: 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      stats: 
       { onlineClients: 0,
         activeRuns: 1,
         pendingRuns: 0,
         pendingReRuns: 12 } }

    == Task 2 ==


    == Task 3 ==

    Status... (workers: 2 / limit: 10)
    Neediness exhausted, done!

    [terminateWorker] Terminated worker #506914

    [terminateWorker] Terminated worker #506915

Next iteration in 10 seconds...
Starting run loop...
    Tue Nov 13 2012 13:56:52 GMT-0800 (PST)


    == Task 0 ==


    Summary: { 'Opera|12|0': 2 }

    Live workers:
     { '506859': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506893': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } } }

    Live swarm state:
     { 'Chrome|17': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|18': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|19': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|20': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|21': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|22': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|11': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|12': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|13': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|14': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|15': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|16': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 4 },
      'IE|7': 
       { onlineClients: 0,
         activeRuns: 1,
         pendingRuns: 0,
         pendingReRuns: 12 },
      'IE|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|50': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|60': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|12|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 20,
         pendingReRuns: 0 },
      'Safari|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|1': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|6|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|1': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|3|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|4|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 } } 



    == Task 1 ==


    == Task 2 ==


    == Task 3 ==

    Status... (workers: 2 / limit: 10)
    Neediness exhausted, done!

Next iteration in 10 seconds...
Starting run loop...
    Tue Nov 13 2012 13:57:03 GMT-0800 (PST)


    == Task 0 ==


    Summary: { 'Opera|12|0': 2 }

    Live workers:
     { '506859': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506893': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } } }

    Live swarm state:
     { 'Chrome|17': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|18': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|19': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|20': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|21': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|22': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|11': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|12': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|13': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|14': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|15': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|16': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 4 },
      'IE|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 1,
         pendingReRuns: 12 },
      'IE|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|50': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|60': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|12|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 20,
         pendingReRuns: 0 },
      'Safari|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|1': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|6|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|1': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|3|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|4|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 } } 



    == Task 1 ==


    == Task 2 ==


    == Task 3 ==

    Status... (workers: 3 / limit: 10)
    Most needed: { priority: 0.5, ua: 'IE|7' }

    Looping... (workers: 4 / limit: 10)

    Neediness exhausted, done!

    [spawnWorker] { browser: 'ie', version: '7.0', os: 'win' } { id: 506916 }

    [spawnWorker] { browser: 'ie', version: '7.0', os: 'win' } { id: 506917 }

Next iteration in 10 seconds...
Starting run loop...
    Tue Nov 13 2012 13:57:14 GMT-0800 (PST)


    == Task 0 ==


    Summary: { 'IE|7': 2, 'Opera|12|0': 2 }

    Live workers:
     { '506859': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506893': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506916': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      '506917': 
       { status: 'queue',
         browser: { os: 'win', version: '7.0', browser: 'ie' } } }

    Live swarm state:
     { 'Chrome|17': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|18': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|19': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|20': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|21': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|22': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|11': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|12': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|13': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|14': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|15': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|16': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 4 },
      'IE|7': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 1,
         pendingReRuns: 12 },
      'IE|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|50': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|60': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|12|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 20,
         pendingReRuns: 0 },
      'Safari|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|1': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|6|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|1': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|3|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|4|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 } } 



    == Task 1 ==


    == Task 2 ==


    == Task 3 ==

    Status... (workers: 4 / limit: 10)
    Neediness exhausted, done!

Next iteration in 10 seconds...
Starting run loop...
    Tue Nov 13 2012 13:57:24 GMT-0800 (PST)


    == Task 0 ==


    Summary: { 'IE|7': 2, 'Opera|12|0': 2 }

    Live workers:
     { '506859': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506893': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506916': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      '506917': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } } }

    Live swarm state:
     { 'Chrome|17': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|18': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|19': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|20': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|21': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|22': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|11': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|12': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|13': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|14': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|15': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|16': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 4 },
      'IE|7': 
       { onlineClients: 2,
         activeRuns: 2,
         pendingRuns: 0,
         pendingReRuns: 11 },
      'IE|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|50': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|60': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|12|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 20,
         pendingReRuns: 0 },
      'Safari|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|1': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|6|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|1': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|3|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|4|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 } } 


    == Task 1 ==



    == Task 2 ==


    == Task 3 ==

    Status... (workers: 4 / limit: 10)
    Neediness exhausted, done!

Next iteration in 10 seconds...
Starting run loop...
    Tue Nov 13 2012 13:57:35 GMT-0800 (PST)


    == Task 0 ==


    Summary: { 'IE|7': 2, 'Opera|12|0': 2 }

    Live workers:
     { '506859': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506893': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506916': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      '506917': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } } }

    Live swarm state:
     { 'Chrome|17': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|18': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|19': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|20': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|21': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|22': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|11': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|12': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|13': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|14': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|15': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|16': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 4 },
      'IE|7': 
       { onlineClients: 2,
         activeRuns: 2,
         pendingRuns: 0,
         pendingReRuns: 11 },
      'IE|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|50': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|60': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|12|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 20,
         pendingReRuns: 0 },
      'Safari|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|1': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|6|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|1': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|3|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|4|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 } } 


Next iteration in 10 seconds...

    == Task 1 ==


    == Task 2 ==


    == Task 3 ==

    Status... (workers: 4 / limit: 10)
    Neediness exhausted, done!

Starting run loop...
    Tue Nov 13 2012 13:57:45 GMT-0800 (PST)


    == Task 0 ==


    Summary: { 'IE|7': 2, 'Opera|12|0': 2 }

    Live workers:
     { '506859': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506893': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506916': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      '506917': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } } }

    Live swarm state:
     { 'Chrome|17': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|18': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|19': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|20': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|21': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|22': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|11': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|12': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|13': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|14': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|15': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|16': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 4 },
      'IE|7': 
       { onlineClients: 2,
         activeRuns: 2,
         pendingRuns: 0,
         pendingReRuns: 11 },
      'IE|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|50': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|60': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|12|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 20,
         pendingReRuns: 0 },
      'Safari|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|1': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|6|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|1': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|3|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|4|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 } } 



    == Task 1 ==


    == Task 2 ==


    == Task 3 ==

    Status... (workers: 4 / limit: 10)
    Neediness exhausted, done!

Next iteration in 10 seconds...
Starting run loop...
    Tue Nov 13 2012 13:57:56 GMT-0800 (PST)


    == Task 0 ==


    Summary: { 'IE|7': 2, 'Opera|12|0': 2 }

    Live workers:
     { '506859': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506893': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506916': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      '506917': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } } }

    Live swarm state:
     { 'Chrome|17': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|18': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|19': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|20': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|21': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|22': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|11': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|12': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|13': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|14': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|15': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|16': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 4 },
      'IE|7': 
       { onlineClients: 1,
         activeRuns: 2,
         pendingRuns: 0,
         pendingReRuns: 11 },
      'IE|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|50': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|60': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|12|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 20,
         pendingReRuns: 0 },
      'Safari|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|1': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|6|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|1': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|3|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|4|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 } } 


    == Task 1 ==



    == Task 2 ==


    == Task 3 ==

    Status... (workers: 4 / limit: 10)
    Neediness exhausted, done!

Next iteration in 10 seconds...
Starting run loop...
    Tue Nov 13 2012 13:58:06 GMT-0800 (PST)


    == Task 0 ==


    Summary: { 'IE|7': 2, 'Opera|12|0': 2 }

    Live workers:
     { '506859': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506893': 
       { status: 'queue',
         browser: { os: 'win', version: '12.0', browser: 'opera' } },
      '506916': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      '506917': 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } } }

    Live swarm state:
     { 'Chrome|17': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|18': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|19': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|20': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|21': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Chrome|22': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|3|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|7': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|11': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|12': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|13': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|14': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|15': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Firefox|16': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 4 },
      'IE|7': 
       { onlineClients: 0,
         activeRuns: 1,
         pendingRuns: 1,
         pendingReRuns: 11 },
      'IE|8': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|9': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'IE|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|10': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|50': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|11|60': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Opera|12|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 20,
         pendingReRuns: 0 },
      'Safari|4': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|5|1': 
       { onlineClients: 1,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Safari|6|0': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|5': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|1|6': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|1': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'Android|2|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|3|2': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 },
      'iPad|4|3': 
       { onlineClients: 0,
         activeRuns: 0,
         pendingRuns: 0,
         pendingReRuns: 0 } } 


    == Task 1 ==


    Running worker disconnected from the swarm: { worker: 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      stats: 
       { onlineClients: 0,
         activeRuns: 1,
         pendingRuns: 1,
         pendingReRuns: 11 } }
    Running worker disconnected from the swarm: { worker: 
       { status: 'running',
         browser: { os: 'win', version: '7.0', browser: 'ie' } },
      stats: 
       { onlineClients: 0,
         activeRuns: 1,
         pendingRuns: 1,
         pendingReRuns: 11 } }

    == Task 2 ==


    == Task 3 ==

    Status... (workers: 3 / limit: 10)
    Most needed: { priority: 0.5, ua: 'IE|7' }
    Looping... (workers: 4 / limit: 10)

    Neediness exhausted, done!

    [spawnWorker] { browser: 'ie', version: '7.0', os: 'win' } { id: 506918 }

    [spawnWorker] { browser: 'ie', version: '7.0', os: 'win' } { id: 506919 }

    [terminateWorker] Terminated worker #506916

    [terminateWorker] Terminated worker #506917
@clarkbox
Owner

@krinkle
you can see IE7 has pendingRuns alternating between 0 and 1. i suspect this to be a bug in the swarm-state endpoint?

if thats the case, this is not a regression, and this pull request can be merged.

@Krinkle
Collaborator

pendingRuns alternating is a side-effect (when a client that was given a run disconnects before submitting results of that run, the minutely cleanup cronjob will reset the run, thus removing it from activeRuns and adding it back to pendingRuns).

This is confirmed by the fact that onlineClients is also alternating. This suggests that maybe your TestSwarm install is not accessible by IE7, or your test suite is causing an uncaught exception, preventing IE7 from phoning home.

I'd recommend logging into the browserstack GUI and joining your swarm with IE7 manually to see what happens.

At this point I don't know whether it is a regression in testswarm-browserstack, node-browserstack or browserstack's v2 API. In order to have more data to work from, I'll try to reproduce the issue myself as well with my own browserstack account, webserver and TestSwarm install.

@clarkbox clarkbox merged commit 5460dc9 into clarkbox:master Nov 14, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment