Deployment progress bar doesn't appear, user must press F5
Bug #1803422 reported by
Dan Trainor
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tripleo |
Fix Released
|
High
|
Dan Trainor |
Bug Description
The progress bar in the UI used to indicate deployment progress occasionally does not update, and the user is forced to refresh the page with F5.
This is likely caused by some transient Zaqar WebSocket issues we've been seeing with some other actions as well, where progress update messages never make it to the client (browser).
Changed in tripleo: | |
status: | New → In Progress |
To post a comment you must log in.
The Zaqar request originates from the client (browser), which then passes through haproxy (443/tcp for SSL connections), then to Apache's mod_proxy for the appropriate endpoint, in this case, /zaqar. The request is then passed to the Proxy backend from Apache.
The Zaqar WebSocket server is quick to close connections on a completed request. Apache assumes this connection is still open, and on subsequent requests attempts to reuse this connection that's already closed. Doing so results in random Zaqar 502 messages:
192.168.24.1 - - [12/Nov/ 2018:16: 20:56 -0500] "GET /zaqar HTTP/1.1" 502 232 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ 68.0.3440. 106 Safari/537.36"
mod_dumpio information about the request:
[...] r\nConnection: Upgrade\r\n\r\n
[Mon Nov 12 16:20:56.623698 2018] [dumpio:trace7] [pid 523] mod_dumpio.c(103): [remote 192.168.24.3:9000] mod_dumpio: dumpio_out (data-POOL): Upgrade: WebSocket\
[Mon Nov 12 16:20:56.623703 2018] [dumpio:trace7] [pid 523] mod_dumpio.c(63): [remote 192.168.24.3:9000] mod_dumpio: dumpio_out (metadata-FLUSH): 0 bytes
[Mon Nov 12 16:20:56.623808 2018] [proxy:error] [pid 523] (32)Broken pipe: [client 192.168.24.1:47986] AH01084: pass request body failed to 192.168.24.3:9000 (192.168.24.3)
Using mod_proxy's 'enablereuse=off' forces Apache to close those connections after data has been transmitted, and reopens a connection with subsequent requests. Testing has shown no performance impact.