Merge lp:~brandontschaefer/libertine/rlist-race into lp:libertine
Proposed by
Brandon Schaefer
Status: | Merged |
---|---|
Approved by: | Christopher Townsend |
Approved revision: | 287 |
Merged at revision: | 288 |
Proposed branch: | lp:~brandontschaefer/libertine/rlist-race |
Merge into: | lp:libertine |
Diff against target: |
51 lines (+8/-6) 1 file modified
python/libertine/Libertine.py (+8/-6) |
To merge this branch: | bzr merge lp:~brandontschaefer/libertine/rlist-race |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Christopher Townsend | Approve | ||
Libertine CI Bot | continuous-integration | Approve | |
Review via email: mp+303058@code.launchpad.net |
Commit message
Fix a race when two sockets in the read list from select were pairs and the first one closed its connection.
Description of the change
How this happens:
1) We get two sockets in the read list from select
2) Both those sockets are pairs (ie. read from 1 send to 2)
3) The first socket has its connection closed (ie. recv gave us 0 data)
4) Then when the second socket reads data to send to the first socket that was closed
it is not found since it was just cleaned up.
The current fix:
Check if our socket is not in the session sockets or in the pairs. If thats true we stopped watching this socket so skip to the next read!
To post a comment you must log in.
PASSED: Continuous integration, rev:287 /jenkins. canonical. com/libertine/ job/lp- libertine- ci/100/ /jenkins. canonical. com/libertine/ job/build/ 286 /jenkins. canonical. com/libertine/ job/test- 0-autopkgtest/ label=amd64, release= vivid+overlay, testname= default/ 236 /jenkins. canonical. com/libertine/ job/test- 0-autopkgtest/ label=amd64, release= xenial+ overlay, testname= default/ 236 /jenkins. canonical. com/libertine/ job/test- 0-autopkgtest/ label=amd64, release= yakkety, testname= default/ 236 /jenkins. canonical. com/libertine/ job/test- 0-autopkgtest/ label=i386, release= vivid+overlay, testname= default/ 236 /jenkins. canonical. com/libertine/ job/test- 0-autopkgtest/ label=i386, release= xenial+ overlay, testname= default/ 236 /jenkins. canonical. com/libertine/ job/test- 0-autopkgtest/ label=i386, release= yakkety, testname= default/ 236 /jenkins. canonical. com/libertine/ job/lp- generic- update- mp/217/ console /jenkins. canonical. com/libertine/ job/build- 0-fetch/ 288 /jenkins. canonical. com/libertine/ job/build- 1-sourcepkg/ release= vivid+overlay/ 272 /jenkins. canonical. com/libertine/ job/build- 1-sourcepkg/ release= xenial+ overlay/ 272 /jenkins. canonical. com/libertine/ job/build- 1-sourcepkg/ release= yakkety/ 272 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=amd64, release= vivid+overlay/ 265 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=amd64, release= vivid+overlay/ 265/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=amd64, release= xenial+ overlay/ 265 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=amd64, release= xenial+ overlay/ 265/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=amd64, release= yakkety/ 265 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=amd64, release= yakkety/ 265/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=i386, release= vivid+overlay/ 265 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=i386, release= vivid+overlay/ 265/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=i386, release= xenial+ overlay/ 265 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=i386, release= xenial+ overlay/ 265/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=i386, release= yakkety/ 265 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=i386, release= yakkety/ 265/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
None: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /jenkins. canonical. com/libertine/ job/lp- libertine- ci/100/ rebuild
https:/