Commit Graph

1415 Commits

Author SHA1 Message Date
Baptiste Mathus 30f1abf1b5 Give more realistic time to start up (~4.5 min, instead of < 1 min)
Previous was not even a minute. So raising values for this purpose.

Simulating overall an in-between durations:

```
info: Attempt 1/25 done immediately
info: Attempt 2/25 after 3000 ms
info: Attempt 3/25 after 3300.0000000000005 ms
info: Attempt 4/25 after 3630.000000000001 ms
info: Attempt 5/25 after 3993.0000000000014 ms
info: Attempt 6/25 after 4392.300000000002 ms
info: Attempt 7/25 after 4831.5300000000025 ms
info: Attempt 8/25 after 5314.683000000003 ms
info: Attempt 9/25 after 5846.151300000003 ms
info: Attempt 10/25 after 6430.766430000004 ms
info: Attempt 11/25 after 7073.8430730000055 ms
info: Attempt 12/25 after 7781.227380300006 ms
info: Attempt 13/25 after 8559.350118330007 ms
info: Attempt 14/25 after 9415.285130163009 ms
info: Attempt 15/25 after 10356.81364317931 ms
info: Attempt 16/25 after 11392.495007497242 ms
info: Attempt 17/25 after 12531.744508246968 ms
info: Attempt 18/25 after 13784.918959071665 ms
info: Attempt 19/25 after 15163.410854978833 ms
info: Attempt 20/25 after 16679.751940476715 ms
info: Attempt 21/25 after 18347.72713452439 ms
info: Attempt 22/25 after 20182.49984797683 ms
info: Attempt 23/25 after 22200.749832774512 ms
info: Attempt 24/25 after 24420.824816051965 ms
info: Attempt 25/25 after 26862.907297657162 ms
info:  *** Total time: 265491.9802742286 ms ***
info:  **=>Total time: 4.4248663379038105 minutes ***
```

```
info: Attempt 1/10 done immediately
info: Attempt 2/10 after 2000 ms
info: Attempt 3/10 after 2500 ms
info: Attempt 4/10 after 3125 ms
info: Attempt 5/10 after 3906.25 ms
info: Attempt 6/10 after 4882.8125 ms
info: Attempt 7/10 after 6103.515625 ms
info: Attempt 8/10 after 7629.39453125 ms
info: Attempt 9/10 after 9536.7431640625 ms
info: Attempt 10/10 after 11920.928955078125 ms
info:  *** Total time: 51604.644775390625 ms ***
info:  **=>Total time: 0.8600774129231771 minutes ***
```
2018-10-02 15:40:00 +02:00
Baptiste Mathus 91bf8d3f16 Per-instance tainting client function 2018-10-02 15:10:39 +02:00
Baptiste Mathus 644d493067 Test and fix duration formatting 2018-10-02 15:10:39 +02:00
Baptiste Mathus 17d68932ea Same message for UI and console logging 2018-10-02 15:10:39 +02:00
Baptiste Mathus 88d53d5713
Merge pull request #298 from rtyler/bleu
Upgrade to the latest wonderful changes in Blue Ocean
2018-10-02 06:55:16 +02:00
R. Tyler Croy 30bf316825
Upgrade to the latest wonderful changes in Blue Ocean 2018-10-01 18:09:12 -07:00
Mandie Smith 40b131b34c
Merge pull request #297 from batmat/JENKINS-53856-fix-permission-denied-errors
[JENKINS-53856] Fix 'Permission denied' errors
2018-10-01 15:00:58 -04:00
Baptiste Mathus 1257613f9c [JENKINS-53856] Define HOME to avoid permission errors
like

```
instance_1  | info: [snapshotting] stdout: '[master 6894d0d] UL4->UL5 Snapshot after downloads completed, before Jenkins restart
instance_1  |  2 files changed, 2 insertions(+), 1 deletion(-)
instance_1  | '
instance_1  | error: [snapshotting] stderr: 'warning: unable to access '/root/.config/git/attributes': Permission denied
instance_1  | warning: unable to access '/root/.config/git/attributes': Permission denied
```

Or

```
instance_1  | 2018-10-01 15:34:35,827 INFO exited: evergreen-client (exit status 243; not expected)
instance_1  | 2018-10-01 15:34:36,832 INFO spawned: 'evergreen-client' with pid 764
instance_1  | npm ERR! path /root/.npm/_logs
instance_1  | npm ERR! code EACCES
instance_1  | npm ERR! errno -13
instance_1  | npm ERR! syscall scandir
instance_1  | npm ERR! Error: EACCES: permission denied, scandir '/root/.npm/_logs'
instance_1  | npm ERR!  { [Error: EACCES: permission denied, scandir '/root/.npm/_logs']
instance_1  | npm ERR!   stack:
instance_1  | npm ERR!    'Error: EACCES: permission denied, scandir \'/root/.npm/_logs\'',
instance_1  | npm ERR!   errno: -13,
instance_1  | npm ERR!   code: 'EACCES',
instance_1  | npm ERR!   syscall: 'scandir',
instance_1  | npm ERR!   path: '/root/.npm/_logs' }
instance_1  | npm ERR!
instance_1  | npm ERR! The operation was rejected by your operating system.
instance_1  | npm ERR! It is likely you do not have the permissions to access this file as the current user
instance_1  | npm ERR!
instance_1  | npm ERR! If you believe this might be a permissions issue, please double-check the
instance_1  | npm ERR! permissions of the file and its containing directories, or try running
instance_1  | npm ERR! the command again as root/Administrator (though this is not recommended).
instance_1  | glob error { [Error: EACCES: permission denied, scandir '/root/.npm/_logs']
instance_1  |   stack:
instance_1  |    'Error: EACCES: permission denied, scandir \'/root/.npm/_logs\'',
instance_1  |   errno: -13,
instance_1  |   code: 'EACCES',
instance_1  |   syscall: 'scandir',
instance_1  |   path: '/root/.npm/_logs' }
instance_1  |
instance_1  | > evergreen-client@1.0.0 client /evergreen/client
```
2018-10-01 20:24:57 +02:00
Baptiste Mathus 6491a0b650 [JENKINS-53856] Add test surfacing 'Permission denied' errors
Hence, expected to fail as-is.
2018-10-01 18:20:20 +02:00
Mandie Smith 97aa395693
Merge pull request #295 from batmat/EVERGREEN-35
Deploy fix for anonymous warning from DockerComputerConnector$1
2018-09-27 09:27:41 -04:00
Baptiste Mathus a524079761 Deploy fix for anonymous warning from DockerComputerConnector$1 2018-09-27 13:29:55 +02:00
R. Tyler Croy b8e50b2d13
Merge pull request #294 from rtyler/npm-audit-fix
Run `npm audit fix` for the client
2018-09-26 15:08:13 -07:00
R. Tyler Croy 2d9ab259f5
Merge branch 'master' into npm-audit-fix 2018-09-26 14:45:28 -07:00
Mandie Smith c878f470fe
Merge pull request #292 from batmat/update-to-latest-git-plugins
Update to latest git and git-client plugins from incrementals
2018-09-26 17:01:55 -04:00
R. Tyler Croy 4b08b1cafa
Run `npm audit fix` for the client 2018-09-26 13:45:04 -07:00
R. Tyler Croy db17d5891b
Merge branch 'master' into update-to-latest-git-plugins 2018-09-26 12:04:12 -07:00
R. Tyler Croy 20b10c9068
Merge pull request #293 from rtyler/sentry-validation-53749
Re-locate the Sentry error handler to take effect.
2018-09-26 11:06:39 -07:00
R. Tyler Croy 1b4d35017e
Re-locate the Sentry error handler to take effect.
Apparently installing this errorHandler() middleware too early results in
feathers errors not being properly caught and reported.

I've verified this by running acceptance tests and seeing what gets reported in
Sentry (lots! 😄)

Fixes JENKINS-53749
2018-09-26 10:44:07 -07:00
Baptiste Mathus d70d9941ea Update to latest git and git-client plugins from incrementals
Deemed to fix at least `EVERGREEN-36` in Sentry.
2018-09-26 10:56:21 +02:00
R. Tyler Croy 578e3563f7
Merge pull request #290 from batmat/JENKINS-53765
[JENKINS-53765] Reduce log verbosity of backend errors
2018-09-25 09:36:40 -07:00
Baptiste Mathus 1807b47ef5
Merge branch 'master' into JENKINS-53765 2018-09-25 18:16:18 +02:00
Baptiste Mathus 3f1a5a3837
Merge pull request #291 from rtyler/advisory
Upgrade to the latest core and pull in security updates for plugins
2018-09-25 18:16:05 +02:00
R. Tyler Croy 05ef3153bb
Upgrade to the latest core and pull in security updates for plugins 2018-09-25 08:45:31 -07:00
Baptiste Mathus 0bc29cea99 [JENKINS-53765] Silence or reduce log verbosity of backend errors
The full dump of errors makes the logs overall unreadable, and hence
makes it more likely to actually miss important lines/logs. (as long
as we do not have a system to parse those in a good manner, this issue
is even more important).

Plus, anyway looking at that dump, I do not see something critically
useful and I believe the .toString rendering ought to be always enough.

Now, with this change, logs look like :

```
backend_1   | error: Error during call: NotAuthenticated: Invalid UUID
```

Before the change, the same log would be:

```
backend_1   | error: { NotAuthenticated: Invalid UUID
backend_1   |     at new NotAuthenticated (/srv/evergreen/node_modules/@feathersjs/errors/lib/index.js:93:17)
backend_1   |     at Object.module.exports (/srv/evergreen/src/hooks/ensureuuid.js:48:11)
backend_1   |     at promise.then.hookObject (/srv/evergreen/node_modules/@feathersjs/feathers/node_modules/@feathersjs/commons/lib/hooks.js:142:73)
backend_1   |     at <anonymous>
backend_1   |     at process._tickCallback (internal/process/next_tick.js:182:7)
backend_1   |   type: 'FeathersError',
backend_1   |   name: 'NotAuthenticated',
backend_1   |   message: 'Invalid UUID',
backend_1   |   code: 401,
backend_1   |   className: 'not-authenticated',
backend_1   |   data: undefined,
backend_1   |   errors: {},
backend_1   |   hook:
backend_1   |    { type: 'before',
backend_1   |      arguments: [ null, [Object], [Object] ],
backend_1   |      service:
backend_1   |       { paginate: false,
backend_1   |         options: [Object],
backend_1   |         Model: instances,
backend_1   |         id: 'uuid',
backend_1   |         events: [Array],
backend_1   |         raw: false,
backend_1   |         docs: [Object],
backend_1   |         find: [Function: newMethod],
backend_1   |         get: [Function: newMethod],
backend_1   |         create: [Function: newMethod],
backend_1   |         patch: [Function: newMethod],
backend_1   |         update: [Function: newMethod],
backend_1   |         remove: [Function: newMethod],
backend_1   |         methods: [Object],
backend_1   |         hooks: [Function: hooks],
backend_1   |         _events: [Object],
backend_1   |         _eventsCount: 5,
backend_1   |         _maxListeners: undefined,
backend_1   |         setMaxListeners: [Function: setMaxListeners],
backend_1   |         getMaxListeners: [Function: getMaxListeners],
backend_1   |         emit: [Function: emit],
backend_1   |         addListener: [Function: addListener],
backend_1   |         on: [Function: addListener],
backend_1   |         prependListener: [Function: prependListener],
backend_1   |         once: [Function: once],
backend_1   |         prependOnceListener: [Function: prependOnceListener],
backend_1   |         removeListener: [Function: removeListener],
backend_1   |         removeAllListeners: [Function: removeAllListeners],
backend_1   |         listeners: [Function: listeners],
backend_1   |         rawListeners: [Function: rawListeners],
backend_1   |         listenerCount: [Function: listenerCount],
backend_1   |         eventNames: [Function: eventNames],
backend_1   |         publish: [Function: publish],
backend_1   |         _super: undefined,
backend_1   |         [Symbol(@feathersjs/transport-commons/publishers)]: [Object] },
backend_1   |      app:
backend_1   |       { [EventEmitter: app]
backend_1   |         _events: [Object],
backend_1   |         _eventsCount: 4,
backend_1   |         _maxListeners: undefined,
backend_1   |         setMaxListeners: [Function: setMaxListeners],
backend_1   |         getMaxListeners: [Function: getMaxListeners],
backend_1   |         emit: [Function: emit],
backend_1   |         addListener: [Function: addListener],
backend_1   |         on: [Function: addListener],
backend_1   |         prependListener: [Function: prependListener],
backend_1   |         once: [Function: once],
backend_1   |         prependOnceListener: [Function: prependOnceListener],
backend_1   |         removeListener: [Function: removeListener],
backend_1   |         removeAllListeners: [Function: removeAllListeners],
backend_1   |         listeners: [Function: listeners],
backend_1   |         rawListeners: [Function: rawListeners],
backend_1   |         listenerCount: [Function: listenerCount],
backend_1   |         eventNames: [Function: eventNames],
backend_1   |         init: [Function: init],
backend_1   |         defaultConfiguration: [Function: defaultConfiguration],
backend_1   |         lazyrouter: [Function: lazyrouter],
backend_1   |         handle: [Function: handle],
backend_1   |         use: [Function: newMethod],
backend_1   |         route: [Function: route],
instance_1  | error: Failed to update the Status record with the current level Invalid UUID
backend_1   |         engine: [Function: engine],
backend_1   |         param: [Function: param],
backend_1   |         set: [Function: set],
backend_1   |         path: [Function: path],
backend_1   |         enabled: [Function: enabled],
backend_1   |         disabled: [Function: disabled],
backend_1   |         enable: [Function: enable],
backend_1   |         disable: [Function: disable],
backend_1   |         acl: [Function],
backend_1   |         bind: [Function],
backend_1   |         checkout: [Function],
backend_1   |         connect: [Function],
backend_1   |         copy: [Function],
backend_1   |         delete: [Function],
backend_1   |         get: [Function],
backend_1   |         head: [Function],
backend_1   |         link: [Function],
backend_1   |         lock: [Function],
backend_1   |         'm-search': [Function],
backend_1   |         merge: [Function],
backend_1   |         mkactivity: [Function],
backend_1   |         mkcalendar: [Function],
backend_1   |         mkcol: [Function],
backend_1   |         move: [Function],
backend_1   |         notify: [Function],
backend_1   |         options: [Function],
backend_1   |         patch: [Function],
backend_1   |         post: [Function],
backend_1   |         propfind: [Function],
backend_1   |         proppatch: [Function],
backend_1   |         purge: [Function],
backend_1   |         put: [Function],
backend_1   |         rebind: [Function],
backend_1   |         report: [Function],
backend_1   |         search: [Function],
backend_1   |         source: [Function],
backend_1   |         subscribe: [Function],
backend_1   |         trace: [Function],
backend_1   |         unbind: [Function],
backend_1   |         unlink: [Function],
backend_1   |         unlock: [Function],
backend_1   |         unsubscribe: [Function],
backend_1   |         all: [Function: all],
backend_1   |         del: [Function],
backend_1   |         render: [Function: render],
backend_1   |         listen: [Function: newMethod],
backend_1   |         request: [IncomingMessage],
backend_1   |         response: [ServerResponse],
backend_1   |         cache: {},
backend_1   |         engines: {},
backend_1   |         settings: [Object],
backend_1   |         locals: [Object],
backend_1   |         mountpath: '/',
backend_1   |         configure: [Function: configure],
backend_1   |         service: [Function: service],
backend_1   |         setup: [Function],
backend_1   |         version: '3.2.3',
backend_1   |         methods: [Array],
backend_1   |         mixins: [Array],
backend_1   |         services: [Object],
backend_1   |         providers: [Array],
backend_1   |         _setup: false,
backend_1   |         hookTypes: [Array],
backend_1   |         hooks: [Function: hooks],
backend_1   |         eventMappings: [Object],
backend_1   |         _super: undefined,
backend_1   |         _router: [Function],
backend_1   |         rest: [Object],
backend_1   |         channel: [Function: channel],
backend_1   |         publish: [Function: publish],
backend_1   |         lookup: [Function: lookup],
backend_1   |         passport: [Authenticator],
backend_1   |         authenticate: [Function: bound ],
backend_1   |         docs: [Object],
backend_1   |         io: [Server],
backend_1   |         _isSetup: true,
backend_1   |         [Symbol(@feathersjs/transport-commons/channels)]: [Object],
backend_1   |         [Symbol(@feathersjs/transport-commons/publishers)]: [Object],
backend_1   |         [Symbol(@feathersjs/transport-commons/router)]: [Object] },
backend_1   |      method: 'patch',
backend_1   |      path: 'status',
backend_1   |      id: null,
backend_1   |      data: { uuid: '4557b0c1-6f0e-401c-8580-9cdf9300dbfcg', updateId: 2 },
backend_1   |      params:
backend_1   |       { query: [Object],
backend_1   |         route: {},
backend_1   |         connection: [Object],
backend_1   |         provider: 'socketio',
backend_1   |         payload: [Object],
backend_1   |         user: [Object],
backend_1   |         accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6ImFjY2VzcyJ9.eyJ1c2VySWQiOjEsImlhdCI6MTUzNzg4MDg3MiwiZXhwIjoxNTM3OTY3MjcyLCJhdWQiOiJodHRwczovL3lvdXJkb21haW4uY29tIiwiaXNzIjoiZmVhdGhlcnMiLCJzdWIiOiJhbm9ueW1vdXMiLCJqdGkiOiIyYzM1OTgwOC1jY2MwLTRlMDUtOWYzNi03NjA4MDQ4NjI0NGYifQ.h15cWycR67P6vM7979nj1GfATcQGQthKriaCURUPhmM',
backend_1   |         headers: [Object],
backend_1   |         authenticated: true } } }
```
2018-09-25 15:24:19 +02:00
Baptiste Mathus 942b9baf8d
Merge pull request #288 from rtyler/docs-reorganization-and-cleanup
Re-organize docs and fix message wrapping in the UI
2018-09-25 10:52:48 +02:00
Baptiste Mathus 5918aff701
Merge branch 'master' into docs-reorganization-and-cleanup 2018-09-25 09:36:36 +02:00
Baptiste Mathus de6be727a8
Merge pull request #289 from rtyler/idempotent-seeds
Instruct sequelize to store seeds information too
2018-09-25 09:36:25 +02:00
Baptiste Mathus ee3f4df1d2
Merge branch 'master' into idempotent-seeds 2018-09-25 07:32:37 +02:00
Baptiste Mathus 460563fe01
Merge pull request #287 from rtyler/upgrade-feathers
Upgrade feathers and some other key dependencies
2018-09-25 07:30:39 +02:00
Baptiste Mathus dc7ca3cdae
Merge branch 'master' into upgrade-feathers 2018-09-25 06:58:25 +02:00
Baptiste Mathus 77abb95e8a
Merge pull request #286 from rtyler/remove-base-container-tests
Remove the base-container check
2018-09-25 06:56:38 +02:00
R. Tyler Croy 8dc7d70cee
Instruct sequelize to store seeds information too
This ensures that the seeds are not infinitely re-played in development
environments

Fixes JENKINS-51059
2018-09-24 13:59:03 -07:00
Baptiste Mathus da7883d858
Merge branch 'master' into remove-base-container-tests 2018-09-24 22:26:00 +02:00
Baptiste Mathus 876803e2a9
Merge pull request #285 from batmat/deflake-a-bit
Deflake a bit
2018-09-24 22:25:40 +02:00
R. Tyler Croy 0d5a1b053d
Ensure that messages in the UI wrap properly
Fixes JENKINS-53628
2018-09-24 13:16:50 -07:00
R. Tyler Croy 0dc1874958
Ensure that `make run` for the client operates properly
I didn't check this after the data restructuring in the container, so `make run`
would fail to start up properly because it couldn't find a directory for
EVERGREEN_DATA
2018-09-24 13:12:57 -07:00
R. Tyler Croy a33547465b
Re-organize the user-documentation up into the root directory to make it easier to find
Hopefully this also means it will be easier to contribute to 😸
2018-09-24 13:03:02 -07:00
R. Tyler Croy f9a8268f0c
Upgrade feathers and some other key dependencies
Post-conference is a good time to upgrade dependencies :)
2018-09-24 12:36:07 -07:00
Baptiste Mathus 93f408a721 Explain where that duration comes from (see the options above) 2018-09-24 21:35:46 +02:00
Baptiste Mathus e34ab3bc39 Log main (and overridable) download options along with the url 2018-09-24 21:35:45 +02:00
Baptiste Mathus 4fd4944027 Clarify code intent 2018-09-24 21:35:45 +02:00
Baptiste Mathus 3f0024a7d0 *actually* pass overridden downloading options 🤦
The third param is the sha256, not the download options, so this override
was simply *not* in use.
2018-09-24 21:35:45 +02:00
Baptiste Mathus 60d2a6c3fa Download slightly smaller file to reduce flake probability
Go from a 5 to 1 MB plugin. Goal is to still have this code tested, but
avoid hitting download issues too often in CI.

If that still fails often, next step we'll probably need to just set up an
embedded test HTTP server.
2018-09-24 21:35:45 +02:00
Baptiste Mathus e6e80fb13b Make test timeout be used for all tests 2018-09-24 21:35:45 +02:00
Baptiste Mathus 8b2e7de51e
Merge branch 'master' into remove-base-container-tests 2018-09-24 21:32:12 +02:00
R. Tyler Croy 1e2ed584b6
Remove the base-container check
Based on my little bit of discussion with @batmat last week, I believe that if
we're not publishing the base container (which I've removed in this commit),
then we needn't spend the compute cycles
2018-09-24 11:56:38 -07:00
Baptiste Mathus e05c3b4d0d
Merge pull request #284 from batmat/checksum-docker-and-remove-wget
Checksum docker binaries download and remove wget
2018-09-24 18:25:12 +02:00
Baptiste Mathus 9c3c1cfea5 Checksum docker binaries download and remove wget
I added wget back in the days to add the shim for downloading plugins.
Now we have the client download, I do not think it's needed anymore and
we have `curl` that can download things too anyway.
2018-09-24 11:01:23 +02:00
Baptiste Mathus b4ad9ac4ac
Merge pull request #283 from batmat/JENKINS-53595-upgrade-to-jest-23.6.0
[JENKINS-53595] Upgrade to Jest 23.6.0
2018-09-21 13:12:54 -07:00
Baptiste Mathus 8e0dbded54 [JENKINS-53595] Upgrade to Jest 23.6.0
In Jest 23.x there has especially been improvements around "lost" async
calls and better stack traces.
As we are currently suffering sometimes from flaky tests, which I believe
is coming from this, I think that new --detectOpenHandles switch might
prove very useful to help us find and fix those kinds of leaks.

To upgrade here I did the following:
* remove package-lock.json
* run `./../tools/npm install --save jest@23.6.0` in both the client and
  the services directories.
2018-09-21 21:16:49 +02:00