Closed Bug 1395283 Opened 7 years ago Closed 7 years ago

Please deploy autopush 1.35.1 to PRODUCTION

Categories

(Cloud Services Graveyard :: Operations: Autopush, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: grumpy, Assigned: oremj)

References

Details

Please deploy autopush 1.35.1 to PRODUCTION on September 5th starting at 9AM Eastern time.

RELEASE NOTES


1.35.1

Bug Fixes

    change "enable_simplepush" flag to "disable_simplepush" (f2cdbf0e, closes [#994](https://github.com/mozilla-services/autopush#994))
    Add missing metric for notification encoding (74fbf58d, closes [#992](https://github.com/mozilla-services/autopush/issues/992))
-----------------------------------------------
SIMPLEPUSH TEST (PRE-PROD)
-----------------------------------------------

NOTE:
simplepush will be disabled with this production release.


CONFIG SETTINGS: 

the following config settings will be used:
"disable_simplepush" to the .autopush_shared.ini file.

test tool:  https://github.com/jrconlin/simplepush_test


.............................
SIMPLEPUSH - CURRENTLY ENABLED
.............................

--- request header ---


GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: push.services.mozilla.com
Origin: http://push.services.mozilla.com
Sec-WebSocket-Key: TWJWncXUXp/Wwq1avXebiA==
Sec-WebSocket-Version: 13


-----------------------
--- response header ---
HTTP/1.1 101 Switching Protocols
Server: AutobahnPython/17.6.2
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Accept: s3px4OyowKnwpT+hE/4U8lAd0oQ=
-----------------------
initialize
>>> Sending 'Hello'
send: '\x81\xda\xdf\xee\xc0V\xa4\xcc\xb57\xb6\x8a\xe2l\xff\xcc\xa43\xbc\x8f\xa64\xbe\x8a\xedf\xef\xde\xf0{\xef\xde\xf0f\xf2\xde\xf0f\xef\xc3\xf0f\xef\xde\xf0f\xef\xde\xf0f\xef\xde\xe2z\xff\xcc\xad3\xac\x9d\xa11\xba\xba\xb9&\xba\xcc\xfav\xfd\x86\xa5:\xb3\x81\xe2z\xff\xcc\xa3>\xbe\x80\xae3\xb3\xa7\x84%\xfd\xd4\xe0\r\x82\x93'
<<< Recv'd:: hello>> {"messageType": "hello", "uaid": "0818ec0236c148f29a96df230d11bb7a", "status": 200, "ping": 300.0, "env": "prod"}
<<< {u'env': u'prod',
 u'messageType': u'hello',
 u'ping': 300.0,
 u'status': 200,
 u'uaid': u'0818ec0236c148f29a96df230d11bb7a'}
send: '\x81\xd0\t\x18_\x1er:<vhv1{eQ\x1b<38}zly;|l}939(o.$(o.95o.9(r.9(o.9(o.9(o<%8}slk,\x7fn}\x0bgy}}$):-{nq,jlj}c'
<<< Recv'd:: register>> {"messageType": "register", "channelID": "deadbeef-0000-0000-0000-000000000000", "pushEndpoint": "https://updates.push.services.mozilla.com/spush/v1/gAAAAABZp0X_ALSsrT_BrvtgrrRNs7TpXHMMFgk1-G7Q-DU0S57YH9tpssGj3l5eZWpkadZ2NyEl1vDKLi1ylUXfa5ikRrEv0h2oyS0eZftgPBn9uUAfMdDRynvK-IPIC1rVBxzY1p5S", "status": 200}
<<< {u'channelID': u'deadbeef-0000-0000-0000-000000000000',
 u'messageType': u'register',
 u'pushEndpoint': u'https://updates.push.services.mozilla.com/spush/v1/gAAAAABZp0X_ALSsrT_BrvtgrrRNs7TpXHMMFgk1-G7Q-DU0S57YH9tpssGj3l5eZWpkadZ2NyEl1vDKLi1ylUXfa5ikRrEv0h2oyS0eZftgPBn9uUAfMdDRynvK-IPIC1rVBxzY1p5S',
 u'status': 200}
>>> Sending REST update
send: u'PUT /spush/v1/gAAAAABZp0X_ALSsrT_BrvtgrrRNs7TpXHMMFgk1-G7Q-DU0S57YH9tpssGj3l5eZWpkadZ2NyEl1vDKLi1ylUXfa5ikRrEv0h2oyS0eZftgPBn9uUAfMdDRynvK-IPIC1rVBxzY1p5S HTTP/1.1\r\nHost: updates.push.services.mozilla.com\r\nAccept-Encoding: identity\r\nContent-Length: 8\r\n\r\nversion='
#>>
reply: 'HTTP/1.1 200 OK\r\n'
header: Access-Control-Allow-Headers:
header: Access-Control-Allow-Methods: PUT
header: Access-Control-Allow-Origin: *
header: Access-Control-Expose-Headers:
header: Content-Type: text/html; charset=UTF-8
header: Date: Wed, 30 Aug 2017 23:10:55 GMT
header: Server: nginx
header: Content-Length: 9
header: Connection: keep-alive
#<< 'Delivered'
<<< Recv'd:: update>> {"messageType": "notification", "updates": [{"channelID": "deadbeef-0000-0000-0000-000000000000", "version": 1504134655, "data": null}]}
<<< {u'messageType': u'notification',
 u'updates': [{u'channelID': u'deadbeef-0000-0000-0000-000000000000',
               u'data': None,
               u'version': 1504134655}]}
### Update pass, shutting down....
>>> Sending Unreg
send: '\x81\xd2\xbf\x8c\xec\x12\xc4\xae\x8fz\xde\xe2\x82w\xd3\xc5\xa80\x85\xac\xcev\xda\xed\x88p\xda\xe9\x8a?\x8f\xbc\xdc"\x92\xbc\xdc"\x8f\xa1\xdc"\x8f\xbc\xc1"\x8f\xbc\xdc"\x8f\xbc\xdc"\x8f\xbc\xdc0\x93\xac\xce\x7f\xda\xff\x9fs\xd8\xe9\xb8k\xcf\xe9\xce(\x9f\xae\x99|\xcd\xe9\x8b{\xcc\xf8\x89`\x9d\xf1'
>>> send ack{"updates": [{"channelID": "deadbeef-0000-0000-0000-000000000000", "data": null, "version": 1504134655}], "messageType": "ack"}
send: '\x81\xfe\x00\x7f\x86=E(\xfd\x1f0X\xe2\\1M\xf5\x1f\x7f\x08\xddFgK\xee\\+F\xe3Q\x0cl\xa4\x07e\n\xe2X$L\xe4X N\xab\ru\x18\xb6\x10u\x18\xb6\rh\x18\xb6\ru\x05\xb6\ru\x18\xb6\ru\x18\xb6\ru\x18\xa4\x11e\n\xe2\\1I\xa4\x07eF\xf3Q)\x04\xa6\x1f3M\xf4N,G\xe8\x1f\x7f\x08\xb7\x08u\x1c\xb7\x0eq\x1e\xb3\x088u\xaa\x1dgE\xe3N6I\xe1X\x11Q\xf6Xg\x12\xa6\x1f$K\xed\x1f8'
<<< Recv'd:: shutdown>> {"channelID": "deadbeef-0000-0000-0000-000000000000", "messageType": "unregister", "status": 200}
<<< {u'channelID': u'deadbeef-0000-0000-0000-000000000000',
 u'messageType': u'unregister',
 u'status': 200}
### SUCCESS!!! Exiting...
send: '\x88\x82\xec\x9f\x84\xab\xefw'
## Closed
leaving
==============
Smoke test was successful
==============
Status: NEW → ASSIGNED
Depends on: 1394876
-----------------------------------------------
URL CHECKS (PROD PRE-DEPLOY)
-----------------------------------------------

(venv) ╭─chartjes@grumpiermbp ~/mozilla-services/autopush-deployment-tests  ‹ch-port-shell-scripts*›
╰─$ py.test -v --api-version=1.35.0 --env=production tests/test_urls.py                                                          1 ↵
======================================================== test session starts ========================================================
platform darwin -- Python 3.6.1, pytest-3.1.2, py-1.4.34, pluggy-0.4.0 -- /Users/chartjes/mozilla-services/autopush-deployment-tests/venv/bin/python3.6
cachedir: .cache
rootdir: /Users/chartjes/mozilla-services/autopush-deployment-tests, inifile:
collected 2 items

tests/test_urls.py::test_health PASSED
tests/test_urls.py::test_status PASSED
-----------------------------------------------
SENTRY TEST
-----------------------------------------------

My IP address: 108.160.83.49

╰─$ py.test -v --api-version=1.35.0 --env=production tests/test_sentry.py
======================================================== test session starts ========================================================
platform darwin -- Python 3.6.1, pytest-3.1.2, py-1.4.34, pluggy-0.4.0 -- /Users/chartjes/mozilla-services/autopush-deployment-tests/venv/bin/python3.6
cachedir: .cache
rootdir: /Users/chartjes/mozilla-services/autopush-deployment-tests, inifile:
collected 1 items

tests/test_sentry.py::test_generate_logcheck_error PASSED

{'ami_id': 'ami-cc4ba4b4', 'authorization': [Filtered], 'message_ttl': None, 'python_version': '2.7.13 (c925e7381036, Jun 05 2017, 21:20:51)
[PyPy 5.8.0 with GCC 6.2.0 20160901]', 'remote_ip': '108.160.83.49, 172.31.2.175', 'request_id': '5b19de17-85fa-42d2-b808-c392ea5eae47', 'uri': '/v1/err/crit', 'user_agent': 'python-requests/2.18.1'}

Passes
-----------------------------------------------
E2E-TESTS: VAPID (+Android PRE-DEPLOY)
-----------------------------------------------

Additional E2E-test which includes VAPID, encryption:
https://jrconlin.github.io/Webpush_QA/

FF Android (Nightly, Release) -- OK
-----------------------------------------------
TOPIC SERVER
-----------------------------------------------
 
Follow directions at https://github.com/jrconlin/topics using new profile in Firefox desktop release.

Passed
----------------------------
SCENARIO TESTING 
see: https://github.com/mozilla-services/ap-loadtester/
----------------------------

MULTI-SCENARIO (SOAK) TESTS

[0]. basic
[1]. api_test
[2]. loadtest

All passed
----------------------------
E2E-TESTS
----------------------------

DESKTOP E2E PUSH TEST

Install Docker, grab the image firefoxtesteng/autopush-e2e-test and then start the container using the command:

docker run -p 8201:8201 firefoxtesteng/autopush-e2e-test

Using a fresh profile for Firefox, go to to http://localhost:8201

* go to about:config and set dom.push.serverURL = wss://autopush.stage.mozaws.net

* with 'service-worker.js' selected click on 'Register Service Worker' and see the messages:

registering service worker
registered service worker. scope: http://localhost:8201/

* alter the 'Title' and 'Body' fields in the Notifications Property form to unique values
* click on 'pop Notification' and verify the notification contains your expected Title and Body
* click on 'close Notification' and verify the notification is closed

Passes on PROD prior to deployment
-------------------------------------
iOS: SYNC + FxA + PUSH TEST
-------------------------------------

SETUP 

- Get account for buddybuild (from: njpark)
- Download “TestFlight” app
- Receive invite to use, enter code
- Get latest Beta Build (“click Update, if needed”)

- Create new FxA accounts (agains PROD FxA server)
   https://accounts.stage.mozaws.net
- Login to desktop STAGE FxA account with a fresh firefox profile
- Save some bookmarks and create some navigation history

TEST STEPS (STR)

- Go to settings in new download of Firefox iOS app
- Login to new FxA (PROD) account
- wait or force sync activity
- Observe bookmarks and history appear in Firefox browser

RESULTS

- bookmark sync - OK
- history sync - OK

Passes on PROD prior to deployment
Everything passes, clear for PROD deployment on September 5, 2017 at 9AM Pacific time
-----------------------------------------------
URL CHECKS (PROD POST-DEPLOY)
-----------------------------------------------

(venv) ╭─chartjes@grumpiermbp ~/mozilla-services/autopush-deployment-tests  ‹ch-port-shell-scripts*›
╰─$ py.test -v --env=production --api-version=1.35.1 tests/test_urls.py                                                          1 ↵
======================================================== test session starts ========================================================
platform darwin -- Python 3.6.1, pytest-3.1.2, py-1.4.34, pluggy-0.4.0 -- /Users/chartjes/mozilla-services/autopush-deployment-tests/venv/bin/python3.6
cachedir: .cache
rootdir: /Users/chartjes/mozilla-services/autopush-deployment-tests, inifile:
collected 2 items

tests/test_urls.py::test_health PASSED
tests/test_urls.py::test_status PASSED
-----------------------------------------------
SENTRY TEST
-----------------------------------------------

My IP address: 108.160.90.26

(venv) ╭─chartjes@grumpiermbp ~/mozilla-services/autopush-deployment-tests  ‹ch-port-shell-scripts*›
╰─$ py.test -v --env=production --api-version=1.35.1 tests/test_sentry.py                                                        4 ↵
======================================================== test session starts ========================================================
platform darwin -- Python 3.6.1, pytest-3.1.2, py-1.4.34, pluggy-0.4.0 -- /Users/chartjes/mozilla-services/autopush-deployment-tests/venv/bin/python3.6
cachedir: .cache
rootdir: /Users/chartjes/mozilla-services/autopush-deployment-tests, inifile:
collected 1 items

tests/test_sentry.py::test_generate_logcheck_error PASSED

{'ami_id': 'ami-6803e810', 'authorization': [Filtered], 'message_ttl': None, 'python_version': '2.7.13 (c925e7381036, Jun 05 2017, 21:20:51)
[PyPy 5.8.0 with GCC 6.2.0 20160901]', 'remote_ip': '108.160.90.26, 172.31.38.204', 'request_id': '6184023c-a74c-4250-aba4-3297539e6dfa', 'uri': '/v1/err/crit', 'user_agent': 'python-requests/2.18.1'}

Sentry error correctly triggered and acknowledged.
-----------------------------------------------
E2E-TESTS: VAPID (+Android POST-DEPLOY)
-----------------------------------------------

Additional E2E-test which includes VAPID, encryption:
https://jrconlin.github.io/Webpush_QA/

FF Android (Nightly, Release) -- OK
-----------------------------------------------
TOPIC SERVER
-----------------------------------------------
 
Follow directions at https://github.com/jrconlin/topics using new profile in Firefox desktop release.

Passed
----------------------------
SCENARIO TESTING 
see: https://github.com/mozilla-services/ap-loadtester/
----------------------------

MULTI-SCENARIO (SOAK) TESTS

[0]. basic
[1]. api_test
[2]. loadtest

They all pass
----------------------------
E2E-TESTS
----------------------------

DESKTOP E2E PUSH TEST

Install Docker, grab the image firefoxtesteng/autopush-e2e-test and then start the container using the command:

docker run -p 8201:8201 firefoxtesteng/autopush-e2e-test

Using a fresh profile for Firefox, go to to http://localhost:8201

* with 'service-worker.js' selected click on 'Register Service Worker' and see the messages:

registering service worker
registered service worker. scope: http://localhost:8201/

* click on "Subscribe to push"

* alter the 'Title' and 'Body' fields in the Notifications Property form to unique values
* click on 'pop Notification' and verify the notification contains your expected Title and Body
* click on 'close Notification' and verify the notification is closed

Passes on PROD
-------------------------------------
iOS: SYNC + FxA + PUSH TEST
-------------------------------------

SETUP 

- Get account for buddybuild (from: njpark)
- Download “TestFlight” app
- Receive invite to use, enter code
- Get latest Beta Build (“click Update, if needed”)

- Create new FxA accounts (agains PROD FxA server)
   https://accounts.stage.mozaws.net
- Login to desktop STAGE FxA account with a fresh firefox profile
- Save some bookmarks and create some navigation history

TEST STEPS (STR)

- Go to settings in new download of Firefox iOS app
- Login to new FxA (PROD) account
- wait or force sync activity
- Observe bookmarks and history appear in Firefox browser

RESULTS

- bookmark sync - OK
- history sync - OK

Passes on PROD after deployment
-----------------------------------------------
SIMPLEPUSH TEST (PROD)
-----------------------------------------------

simplepush has been disabled - OK

$ ./bin/python ./smoke_test.py
--- request header ---
GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: push.services.mozilla.com
Origin: http://push.services.mozilla.com
Sec-WebSocket-Key: lOvj2Ln3wSuUk1kgQ7p4CA==
Sec-WebSocket-Version: 13


-----------------------
--- response header ---
HTTP/1.1 101 Switching Protocols
Server: AutobahnPython/17.6.2
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Accept: WGCzlGkeu3wLY7CPZRijNGvThl4=
-----------------------
initialize
>>> Sending 'Hello'
send: '\x81\xda\xd2\xa4\xb5}\xa9\x86\xc0\x1c\xbb\xc0\x97G\xf2\x86\xd1\x18\xb1\xc5\xd3\x1f\xb3\xc0\x98M\xe2\x94\x85P\xe2\x94\x85M\xff\x94\x85M\xe2\x89\x85M\xe2\x94\x85M\xe2\x94\x85M\xe2\x94\x97Q\xf2\x86\xd8\x18\xa1\xd7\xd4\x1a\xb7\xf0\xcc\r\xb7\x86\x8f]\xf0\xcc\xd0\x11\xbe\xcb\x97Q\xf2\x86\xd6\x15\xb3\xca\xdb\x18\xbe\xed\xf1\x0e\xf0\x9e\x95&\x8f\xd9'
<<< Recv'd:: hello>> {"messageType": "hello", "reason": "Simplepush not supported", "status": 401, "more_info": "http://autopush.readthedocs.io/en/latest/api/websocket.html#private-http-endpoint"}
<<< {u'messageType': u'hello',
 u'more_info': u'http://autopush.readthedocs.io/en/latest/api/websocket.html#private-http-endpoint',
 u'reason': u'Simplepush not supported',
 u'status': 401}

## Error:: Hello failed check
send: '\x88\x82\xfa\xeb*\xde\xf9\x03'
## Closed
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Product: Cloud Services → Cloud Services Graveyard
You need to log in before you can comment on or make changes to this bug.