mozilla/fxa-auth-db-mysql

Failed at the fxa-auth-db-mysql@1.114.1 test-mysql script 'node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local'.

Closed this issue · 9 comments

Tried with NodeJS 6x & 8x. Credentials are fine.

0 info it worked if it ends with ok 1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'test-mysql' ] 2 info using npm@3.10.10 3 info using node@v6.14.3 4 verbose run-script [ 'pretest-mysql', 'test-mysql', 'posttest-mysql' ] 5 info lifecycle fxa-auth-db-mysql@1.114.1~pretest-mysql: fxa-auth-db-mysql@1.114.1 6 silly lifecycle fxa-auth-db-mysql@1.114.1~pretest-mysql: no script for pretest-mysql, continuing 7 info lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: fxa-auth-db-mysql@1.114.1 8 verbose lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: unsafe-perm in lifecycle true 9 verbose lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/opt/firefox/fxa-auth-db-mysql/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin 10 verbose lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: CWD: /opt/firefox/fxa-auth-db-mysql 11 silly lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: Args: [ '-c', 11 silly lifecycle 'node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local' ] 12 silly lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: Returned: code: 2 signal: null 13 info lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: Failed to exec test-mysql script 14 verbose stack Error: fxa-auth-db-mysql@1.114.1 test-mysql:node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local14 verbose stack Exit status 2 14 verbose stack at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:255:16) 14 verbose stack at emitTwo (events.js:106:13) 14 verbose stack at EventEmitter.emit (events.js:191:7) 14 verbose stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14) 14 verbose stack at emitTwo (events.js:106:13) 14 verbose stack at ChildProcess.emit (events.js:191:7) 14 verbose stack at maybeClose (internal/child_process.js:920:16) 14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5) 15 verbose pkgid fxa-auth-db-mysql@1.114.1 16 verbose cwd /opt/firefox/fxa-auth-db-mysql 17 error Linux 4.4.0-128-generic 18 error argv "/usr/bin/node" "/usr/bin/npm" "run" "test-mysql" 19 error node v6.14.3 20 error npm v3.10.10 21 error code ELIFECYCLE 22 error fxa-auth-db-mysql@1.114.1 test-mysql:node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local22 error Exit status 2 23 error Failed at the fxa-auth-db-mysql@1.114.1 test-mysql script 'node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local'. 23 error Make sure you have the latest version of node.js and npm installed.

info using npm@3.10.10 3 info using node@v6.14.3

Use latest node 8 and npm 6. Let me know what the error is after that

`
user@host:$ nodejs -v
v8.11.3
user@host:
$ npm -v
6.1.0

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'test-mysql' ]
2 info using npm@6.1.0
3 info using node@v8.11.3
4 verbose run-script [ 'pretest-mysql', 'test-mysql', 'posttest-mysql' ]
5 info lifecycle fxa-auth-db-mysql@1.114.1pretest-mysql: fxa-auth-db-mysql@1.114.1
6 info lifecycle fxa-auth-db-mysql@1.114.1
test-mysql: fxa-auth-db-mysql@1.114.1
7 verbose lifecycle fxa-auth-db-mysql@1.114.1test-mysql: unsafe-perm in lifecycle true
8 verbose lifecycle fxa-auth-db-mysql@1.114.1
test-mysql: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/opt/firefox/fxa-auth-db-mysql/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
9 verbose lifecycle fxa-auth-db-mysql@1.114.1test-mysql: CWD: /opt/firefox/fxa-auth-db-mysql
10 silly lifecycle fxa-auth-db-mysql@1.114.1
test-mysql: Args: [ '-c',
10 silly lifecycle 'node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local' ]
11 silly lifecycle fxa-auth-db-mysql@1.114.1test-mysql: Returned: code: 2 signal: null
12 info lifecycle fxa-auth-db-mysql@1.114.1
test-mysql: Failed to exec test-mysql script
13 verbose stack Error: fxa-auth-db-mysql@1.114.1 test-mysql: node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local
13 verbose stack Exit status 2
13 verbose stack at EventEmitter. (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:304:16)
13 verbose stack at emitTwo (events.js:126:13)
13 verbose stack at EventEmitter.emit (events.js:214:7)
13 verbose stack at ChildProcess. (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at emitTwo (events.js:126:13)
13 verbose stack at ChildProcess.emit (events.js:214:7)
13 verbose stack at maybeClose (internal/child_process.js:925:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
14 verbose pkgid fxa-auth-db-mysql@1.114.1
15 verbose cwd /opt/firefox/fxa-auth-db-mysql
16 verbose Linux 4.13.0-45-generic
17 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "test-mysql"
18 verbose node v8.11.3
19 verbose npm v6.1.0
20 error code ELIFECYCLE
21 error errno 2
22 error fxa-auth-db-mysql@1.114.1 test-mysql: node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local
22 error Exit status 2
23 error Failed at the fxa-auth-db-mysql@1.114.1 test-mysql script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 2, true ]
`

I saw this happen this morning when I did not have the mysql daemon running.

MySQL Daemon is up & running.
Credentials are fine.
Permissions in MySQL are also fine.
tcpdump shows me MySQL related (port 3306) traffic.

@moerkey change this:

node ./bin/db_patcher.js >/dev/null

and remove the >/dev/null , you should see some errors

firefox@host:/opt/firefox/fxa-auth-db-mysql$ node ./bin/db_patcher.js {"Timestamp":1529994070307000000,"Logger":"fxa-auth-db-server","Type":"bin.db_patcher.patch-error","Severity":2,"Pid":27590,"EnvVersion":"2.0","Fields":{"err":"Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: NO)"}}

root@host:~# tcpdump -i any -nn -s 1024 -l -A port 3306 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 1024 bytes 08:21:10.299661 IP 127.0.0.1.39392 > 127.0.0.1.3306: Flags [S], seq 4243785751, win 43690, options [mss 65495,sackOK,TS val 40301816 ecr 0,nop,wscale 7], length 0 E..<..@.@.?..........................0......... .f.......... 08:21:10.299688 IP 127.0.0.1.3306 > 127.0.0.1.39392: Flags [S.], seq 3415264361, ack 4243785752, win 43690, options [mss 65495,sackOK,TS val 40301816 ecr 40301816,nop,wscale 7], length 0 E..<..@.@.<................i.........0......... .f...f...... 08:21:10.299700 IP 127.0.0.1.39392 > 127.0.0.1.3306: Flags [.], ack 1, win 342, options [nop,nop,TS val 40301816 ecr 40301816], length 0 E..4..@.@.?....................j...V.(..... .f...f.. 08:21:10.299884 IP 127.0.0.1.3306 > 127.0.0.1.39392: Flags [P.], seq 1:96, ack 1, win 342, options [nop,nop,TS val 40301816 ecr 40301816], length 95 E...8.@.@..................j.......V....... .f...f..[... 5.5.60-0ubuntu0.14.04.1.E...F8'Yj-<'...................M0EL/CDkppby.mysql_native_password. 08:21:10.299915 IP 127.0.0.1.39392 > 127.0.0.1.3306: Flags [.], ack 96, win 342, options [nop,nop,TS val 40301816 ecr 40301816], length 0 E..4..@.@.?........................V.(..... .f...f.. 08:21:10.304392 IP 127.0.0.1.39392 > 127.0.0.1.3306: Flags [P.], seq 1:44, ack 96, win 342, options [nop,nop,TS val 40301817 ecr 40301816], length 43 E.._..@.@.?........................V.S..... .f...f..'...........!.......................root... 08:21:10.304436 IP 127.0.0.1.3306 > 127.0.0.1.39392: Flags [.], ack 44, win 342, options [nop,nop,TS val 40301817 ecr 40301817], length 0 E..48.@.@..'...................C...V.(..... .f...f.. 08:21:10.304468 IP 127.0.0.1.3306 > 127.0.0.1.39392: Flags [P.], seq 96:171, ack 44, win 342, options [nop,nop,TS val 40301817 ecr 40301817], length 75 E...8.@.@......................C...V.s..... .f...f..G......#28000Access denied for user 'root'@'localhost' (using password: NO) 08:21:10.304485 IP 127.0.0.1.3306 > 127.0.0.1.39392: Flags [F.], seq 171, ack 44, win 342, options [nop,nop,TS val 40301817 ecr 40301817], length 0 E..48.@.@..%...................C...V.(..... .f...f.. 08:21:10.311600 IP 127.0.0.1.39392 > 127.0.0.1.3306: Flags [F.], seq 44, ack 172, win 342, options [nop,nop,TS val 40301819 ecr 40301817], length 0 E..4..@.@.?................C.......V.(..... .f...f.. 08:21:10.311692 IP 127.0.0.1.3306 > 127.0.0.1.39392: Flags [.], ack 45, win 342, options [nop,nop,TS val 40301819 ecr 40301819], length 0 E..48.@.@..$...................D...V.(..... .f...f.. ^C 11 packets captured 22 packets received by filter 0 packets dropped by kernel

But MySQL connect works:
mysql -u root -p -hlocalhost

So, I am sorry upfront. One problem was that the variable NODE_ENV wasn´t set. I did that but I am getting now the following error.

firefox@host:/opt/firefox/fxa-auth-db-mysql$ node ./bin/db_patcher.js {"Timestamp":1530004151442000000,"Logger":"fxa-auth-db-server","Type":"bin.db_patcher.patch-error","Severity":2,"Pid":15408,"EnvVersion":"2.0","Fields":{"err":"Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ALGORITHM = INPLACE, LOCK = NONE;\n\nALTER TABLE devices\nDROP COLUMN oldCallbackPu' at line 15"}}

@moerkey - are you using MySQL 5.6? We have seen that problem with MariaDB, right now we only support MySQL.

Hihi, I just installed it. Thx for the hint. Now I am getting this.
`firefox@host:/opt/firefox/fxa-auth-db-mysql$ npm run test-mysql

fxa-auth-db-mysql@1.114.1 test-mysql /opt/firefox/fxa-auth-db-mysql
node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local

(node:22274) Warning: process.on(SIGPROF) is reserved while debugging

db_tests
✓ should verify account email with legacy db.verifyEmail
✓ should change account locale
✓ emailBounces
✓ should keep account emails and emails in sync
db.account
✓ should create account
✓ should fail with duplicate account
✓ should return account
✓ should return email record
db.checkPassword
✓ should fail with incorrect password
✓ should be successful with correct password
session token handling
✓ should get sessions
✓ should create session
✓ should get session token
✓ should update token
✓ should update mustVerify to true, but not to false
✓ should get verification state
✓ should fail session verification for invalid tokenId
✓ should fail session verification for invalid uid
✓ should verify session token
db.accountDevices
✓ should get device count
✓ db.sessions should contain device data
✓ db.deleteSessionToken should delete device
db.deleteSessionToken
✓ should delete session
✓ should fail to verify deleted session
key fetch token handling
✓ should have created unverified keyfetch token
✓ should have created verified key fetch token
✓ should get keyfetch token verification status
✓ should fail keyfetch token verficiation for invalid tokenVerficationId
✓ should fail keyfetch token verficiation for invalid uid
✓ should verify keyfetch token
✓ should delete key fetch token
forgot password token handling
✓ should have created password forgot token
✓ should update password forgot token tries
✓ should delete password forgot token
change password token handling
✓ should have created password change token
✓ should override change password token when creating with same uid
✓ should have deleted token
account reset token handling
✓ db.accountResetToken should create token
✓ db.deleteAccountResetToken should delete token
db.forgotPasswordVerified
✓ should override accountResetToken when calling db.forgotPasswordVerified
db.deviceFromTokenVerificationId
✓ should fail for non-existing session
✓ should fail for session with no device
✓ should return device
db.accountDevices
✓ should have created device
✓ should have linked device to session token
✓ should get all devices
✓ should update device
✓ should fail to return zombie session
✓ should fail add multiple device to session
✓ should fail to update non-existent device
✓ availableCommands are not cleared if not specified
✓ availableCommands are overwritten on update
✓ availableCommands can update metadata on an existing command
✓ should fail to delete non-existent device
✓ should correctly handle multiple devices with different availableCommands maps (40ms)
✓ should correctly handle multiple sessions with different availableCommands maps
✓ should delete session when device is deleted
db.resetAccount
✓ should verify account upon forgot token creation
✓ should remove devices after account reset
✓ should remove session after account reset
✓ should still retrieve account after account reset
db.securityEvents
✓ should get security event
✓ should get event after session verified
✓ should get second address
✓ should get second addr after deleting unverified session
✓ should get with IPv6
✓ should fail with unknown uid
db.deleteAccount
✓ should have delete account
✓ should fail to verify session
✓ should fail to fetch session
reminders
✓ create and delete (60ms)
✓ multiple accounts (74ms)
✓ multi fetch (205ms)
unblockCodes
✓ should fail to consume unknown code
✓ should fail to consume old unblock code
✓ should consume unblock code
✓ should fail to consume code twice
✓ should delete all code when successfully consumed code
emails
✓ should return only account email if no secondary email
✓ should return secondary emails
✓ should get secondary email
✓ should verify secondary email
✓ should delete email
✓ should free secondary email on account deletion
✓ should fail to add secondary email that exists on account table
✓ should fail to add duplicate secondary email
✓ should fail to delete primary email
✓ should fail to create account that used a secondary email as primary
✓ should fail to get non-existent secondary email
sign-in codes
✓ should fail to create duplicate sign-in code
✓ should consume sign-in code
✓ should fail consume sign-in code twice
✓ should fail consume expired sign-in code
✓ should fail to use sign-in code from deleted account
db.resetAccountTokens
✓ should remove account reset tokens
✓ should remove password change tokens
✓ should remove password forgot tokens
db.setPrimaryEmail
✓ should change a user's email
db.verifyTokenCode
✓ should verify tokenVerificationCode
✓ shouldn't verify expired tokenVerificationCode
✓ shouldn't verify unknown tokenVerificationCode
✓ shouldn't verify tokenVerificationCode and uid mismatch
Totp handling
✓ should create totp token
✓ should fail to get unknown totp token
✓ should fail to create second token for same user
✓ should delete totp token
✓ should update totp token
✓ should fail to update unknown totp token
db.verifyTokensWithMethod
✓ should fail to verify with unknown sessionId
✓ should update session verificationMethod
✓ should fail to verify unknown verification method
✓ should verify with verification method
recovery codes
✓ should fail to generate for unknown user
✓ should generate 0 recovery codes
✓ should generate 4 recovery codes (313ms)
✓ should generate 8 recovery codes (578ms)
✓ should replace recovery codes (488ms)
should consume recovery codes
✓ should fail to consume recovery code with unknown uid
✓ should fail to consume recovery code with unknown code (537ms)
✓ should fail to consume code twice (374ms)
✓ should consume code (453ms)
account recovery key
✓ should fail to create for unknown user
✓ should fail to create multiple keys
✓ should get account recovery key
✓ should fail to get key for incorrect user
✓ should fail to get unknown key
✓ should delete account recovery key

remote
✓ heartbeat
✓ version
✓ version
✓ account not found
✓ add account, add email, get secondary email, get emails, delete email (63ms)
✓ add account, check password, retrieve it, delete it
✓ session token handling (139ms)
✓ device handling (112ms)
✓ key fetch token handling (87ms)
✓ account reset token handling (43ms)
✓ password change token handling
✓ password forgot token handling (40ms)
✓ password forgot token verified (41ms)
✓ locale
✓ unblock codes
✓ email bounces
✓ sign-in codes (40ms)
✓ GET an unknown path
✓ PUT an unknown path
✓ POST an unknown path
✓ DELETE an unknown path
✓ HEAD an unknown path
✓ rejection of invalid hex data
reset account tokens
✓ should remove password forgot token
✓ should remove password change token
✓ should remove account reset token
add account, add email, change email
✓ should change email
add account, verify session and keyfetch with tokenVerificationCode
✓ should verify session and keyfetch with tokenVerificationCode
totp tokens
✓ should get totp token
✓ should delete totp token
✓ should update totp token
should set session verification method
✓ set session verification method - totp-2fa
✓ set session verification method - recovery-code
recovery codes
✓ should generate new recovery codes (617ms)
✓ should fail to consume unknown recovery code
✓ should consume recovery code (1242ms)
recovery keys
✓ should create a recovery key
✓ should get a recovery key
✓ should delete a recovery key

constants
✓ constants exports DATABASE_NAME fxa

DB patch
✓ should error with incorrect patchVersion

DB statInterval
✓ should log stats periodically (98ms)

DB metrics
1) queries, with no mocking
✓ run, with mocked queries (69ms)

MySQL
✓ validates REQUIRED_CHARSET for connections
✓ accepts REQUIRED_SQL_MODES from config
✓ rejects unrecognized REQUIRED_SQL_MODES values from config
✓ rejects badly-formed REQUIRED_SQL_MODES from config, for safety
✓ a select on an unknown table should result in an error
✓ an update to an unknown table should result in an error
✓ an transaction to update an unknown table should result in an error
✓ retryable does retry when the errno is matched
✓ check that an error in a stored procedure (with transaction) is propagated back
✓ readMultiple with valid queries
✓ readMultiple with final query
✓ readMultiple with error in query
✓ readMultiple with error in final query
✓ _connectionConfig returns a plausible config object
✓ _showVariables returns a plausible set of values
✓ create account and read email record
✓ writes and reads non-BMP characters

prune tokens
✓ prune tokens (119ms)

188 passing (13s)
1 failing

  1. DB metrics queries, with no mocking:
    Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
    at tryCatcher (node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromise0 (node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (node_modules/bluebird/js/release/promise.js:693:18)
    at Async._drainQueue (node_modules/bluebird/js/release/async.js:133:16)
    at Async._drainQueues (node_modules/bluebird/js/release/async.js:143:10)
    at Immediate.Async.drainQueues (node_modules/bluebird/js/release/async.js:17:14)

------------------------|----------|----------|----------|----------|----------------|

File % Stmts % Branch % Funcs % Lines Uncovered Lines
All files 79.26 32.84 83.47 79.25
bin 54.05 32 58.33 54.05
metrics.js 54.05 32 58.33 54.05 ... 179,184,188
config 100 100 100 100
config.js 100 100 100 100
index.js 100 100 100 100
db-server 97.69 68.75 94.59 97.66
index.js 97.69 68.75 94.59 97.66 123,287,313
db-server/lib 98.39 79.17 93.33 98.28
bufferize.js 100 77.78 100 100 20,28,41,44
error.js 96.3 100 88.89 96.15 17
safeJsonFormatter.js 100 50 100 100 6
db-server/test 100 100 100 100
client-then.js 100 100 100 100
fake.js 100 100 100 100
db-server/test/backend 97.94 100 94.72 97.92
db_tests.js 99.42 100 98.57 99.41 ... 0,1990,2172
index.js 100 100 100 100
remote.js 95.77 100 88.52 95.75 ... 9,1453,1468
lib 100 100 100 100
constants.js 100 100 100 100
logging.js 100 100 100 100
promise.js 100 100 100 100
lib/db 46.53 27.17 55.46 46.58
mem.js 3.92 0 0 3.94 ... 8,1439,1442
mysql.js 94.93 81.25 96.77 95.24 ... 5,1528,1558
patch.js 100 100 100 100
util.js 94.44 80.77 100 94.44 48,56,64
------------------------ ---------- ---------- ---------- ---------- ----------------
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! fxa-auth-db-mysql@1.114.1 test-mysql: node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the fxa-auth-db-mysql@1.114.1 test-mysql script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /opt/firefox/.npm/_logs/2018-06-26T15_29_00_579Z-debug.log`

0 info it worked if it ends with ok 1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'test-mysql' ] 2 info using npm@6.1.0 3 info using node@v8.11.3 4 verbose run-script [ 'pretest-mysql', 'test-mysql', 'posttest-mysql' ] 5 info lifecycle fxa-auth-db-mysql@1.114.1~pretest-mysql: fxa-auth-db-mysql@1.114.1 6 info lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: fxa-auth-db-mysql@1.114.1 7 verbose lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: unsafe-perm in lifecycle true 8 verbose lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/opt/firefox/fxa-auth-db-mysql/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games 9 verbose lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: CWD: /opt/firefox/fxa-auth-db-mysql 10 silly lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: Args: [ '-c', 10 silly lifecycle 'node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local' ] 11 silly lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: Returned: code: 1 signal: null 12 info lifecycle fxa-auth-db-mysql@1.114.1~test-mysql: Failed to exec test-mysql script 13 verbose stack Error: fxa-auth-db-mysql@1.114.1 test-mysql: node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local13 verbose stack Exit status 1 13 verbose stack at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:304:16) 13 verbose stack at emitTwo (events.js:126:13) 13 verbose stack at EventEmitter.emit (events.js:214:7) 13 verbose stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14) 13 verbose stack at emitTwo (events.js:126:13) 13 verbose stack at ChildProcess.emit (events.js:214:7) 13 verbose stack at maybeClose (internal/child_process.js:925:16) 13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5) 14 verbose pkgid fxa-auth-db-mysql@1.114.1 15 verbose cwd /opt/firefox/fxa-auth-db-mysql 16 verbose Linux 3.13.0-151-generic 17 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "test-mysql" 18 verbose node v8.11.3 19 verbose npm v6.1.0 20 error code ELIFECYCLE 21 error errno 1 22 error fxa-auth-db-mysql@1.114.1 test-mysql:node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local 22 error Exit status 1 23 error Failed at the fxa-auth-db-mysql@1.114.1 test-mysql script. 23 error This is probably not a problem with npm. There is likely additional logging output above. 24 verbose exit [ 1, true ]

firefox@host:/opt/firefox/fxa-auth-db-mysql$ node ./bin/db_patcher.js {"Timestamp":1530027124063000000,"Logger":"fxa-auth-db-server","Type":"bin.db_patcher.patched","Severity":6,"Pid":23779,"EnvVersion":"2.0","Fields":{"level":82}}