aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/iomgr/tcp_client_posix.cc
Commit message (Collapse)AuthorAge
* Enable SO_REUSEADDR in client socketsGravatar Guantao Liu2018-11-09
|
* Merge branch 'master' into tcpusertimeoutGravatar Yash Tibrewal2018-09-12
|\
* | Add support for reading channel argsGravatar Yash Tibrewal2018-09-06
| |
| * Revert "Revert "Fathom tcp changes""Gravatar Yash Tibrewal2018-08-27
| |
| * Revert "Fathom tcp changes"Gravatar Jan Tattermusch2018-08-27
| |
* | remove extra blank lineGravatar Yash Tibrewal2018-08-22
| |
* | Set TCP_USER_TIMEOUT socket optionGravatar Yash Tibrewal2018-08-21
| |
| * Fathom TCP level changes. TracedBuffer for keeping track of all buffersGravatar Yash Tibrewal2018-07-16
|/ | | | | to be traced. Adding tests for Fathom and TracedBuffer. A lot more. Please read PR description.
* Revert "Add Type Checking On Channel Args"Gravatar Noah Eisen2018-06-14
|
* Reviewer feedbackGravatar ncteisen2018-06-13
|
* Remove all uses of raw GRPC_ARG_POINTERGravatar ncteisen2018-06-13
|
* Merge pull request #15648 from apolcyn/remove_fd_shutdown_already_closedGravatar apolcyn2018-06-12
|\ | | | | Remove already_closed param from fd_orphan
* \ Merge branch 'master' into epollerrGravatar Yash Tibrewal2018-06-11
|\ \
| | * Remove already_closed param from fd_orphanGravatar Alexander Polcyn2018-06-07
| |/
* | merge masterGravatar Yash Tibrewal2018-05-31
|\ \
| | * Merge branch 'master' into prototype-cfstreamGravatar Muxi Yan2018-05-22
| | |\ | | |/ | |/|
| * | Reviewer feedback and build fixesGravatar ncteisen2018-05-15
| | |
| | * Change existing build system for CFStreamGravatar Muxi Yan2018-05-15
| | |
| * | Stop using banned functionsGravatar ncteisen2018-05-15
| | |
| * | Change trace logging to use GPR_INFO instead of GPR_DEBUG.Gravatar Mark D. Roth2018-04-25
| |/
* / Make linux polling engines capable of tracking errors separately withGravatar Yash Tibrewal2018-04-20
|/ | | | backward compatibility.
* Remove unnecessary assert on size check of address length after conversion ↵Gravatar Yash Tibrewal2018-03-21
| | | | to socklen_t
* Merge master into yashykt:socklentGravatar Yash Tibrewal2018-03-14
|\
* | Remove unncessary castsGravatar Yash Tibrewal2018-03-13
| |
| * Abstract libuv implementationGravatar kpayson642018-03-13
|/ | | | | Structures the libuv implementation to allow for a plugable BSD style socket implementation to allow for other IO Managers
* Add a sanity check for inclusion of port_platform.hGravatar Alexander Polcyn2018-02-23
|
* Run clang fmtGravatar Noah Eisen2018-02-09
|
* Autofix c casts to c++ castsGravatar Noah Eisen2018-02-09
|
* Split lib/support into lib/gpr and lib/gpr++.Gravatar Mark D. Roth2018-01-18
|
* Fix wrong unreffing of sliceGravatar David Garcia Quintas2017-12-19
|
* Create copy of "ac" data instead of stretching the locked sectionGravatar David Garcia Quintas2017-12-19
|
* Fix use-after-free caused by unsync'd access in tcp_client_posix.Gravatar David Garcia Quintas2017-12-19
| | | | | | | | | | | | | | | | | | | tc_on_alarm() and on_writable() race, resulting in the following: ``` D1219 08:59:33.425951347 86323 tcp_client_posix.cc:143] CLIENT_CONNECT: ipv4:127.0.0.1:27465: on_writable: error="No Error" D1219 08:59:33.426032150 86342 tcp_client_posix.cc:104] CLIENT_CONNECT: ipv4:127.0.0.1:27465: on_alarm: error="No Error" // At this point, note that the callbacks are running on different threads. D1219 08:59:33.426063521 86323 tcp_client_posix.cc:218] XXX on_writable ac->addr_str 0x603000008dd0 before unlock. # refs 2->1. Done 0 // on_writable() unrefs while still holding the lock. Because refs > 0, it marks its "done" as false and unlocks. D1219 08:59:33.426125130 86342 tcp_client_posix.cc:113] XXX tc_on_alarm ac->addr_str 0x603000008dd0 before unlock. # refs 1->0. Done 1 // right after on_writable() unlocks, tc_on_alarm() acquires the lock and unrefs, this time getting to zero and marking its "done" as true. // It then proceeds to destroy "ac", and, in particular for this failure, "ac->addr_str". D1219 08:59:33.426139370 86323 tcp_client_posix.cc:234] XXX on_writable about to read from ac->addr_str 0x603000008dd0. Done 0, error=OS Error // When on_writable() tries to read ac->addr_str to assemble its error details, it causes a use-after-free. ``` The problem is the lock isn't held long enough by on_writable(). Alternatively, a copy of ac->addr_str could be made in on_writable() while still holding the lock, but that seems more fragile. It doesn't seem that holding the lock longer would be a performance issue, given we are in a failure scenario.
* Refactor POSIX TCP client connect.Gravatar Dan Born2017-12-12
|
* Revert "Revert "All instances of exec_ctx being passed around in src/core ↵Gravatar Yash Tibrewal2017-12-06
| | | | removed""
* Revert "All instances of exec_ctx being passed around in src/core removed"Gravatar Yash Tibrewal2017-12-06
|
* Merge master after no Extern C changesGravatar Yash Tibrewal2017-11-30
|\
* \ Merge masterGravatar Yash Tibrewal2017-11-21
|\ \
| | * Merge branch 'master' of https://github.com/grpc/grpc into no-more-extern-cGravatar ncteisen2017-11-20
| | |\ | | |/ | |/|
| | * Remove all extern CGravatar ncteisen2017-11-17
| | |
* | | Merge masterGravatar Yash Tibrewal2017-11-16
|\ \ \ | | |/ | |/|
| | * Merge branch 'master' of https://github.com/grpc/grpc into tracing++Gravatar Noah Eisen2017-11-13
| | |\ | | |/ | |/|
| * | clang-format after nullptr changesGravatar Craig Tiller2017-11-10
| | |
| | * Merge branch 'master' of https://github.com/grpc/grpc into tracing++Gravatar ncteisen2017-11-10
| | |\ | | | | | | | | | | | | Lot's of manual work to make this merge work
| * | | s/NULL/nullptrGravatar Craig Tiller2017-11-10
| | |/ | |/|
* | | Merge with masterGravatar Yash Tibrewal2017-11-09
|\| |
| * | Update clang-format to 5.0Gravatar Craig Tiller2017-11-03
| | |
* | | Removing instances of exec_ctx being passed around in functions inGravatar Yash Tibrewal2017-10-18
|/ / | | | | | | | | | | | | | | | | | | | | src/core. exec_ctx is now a thread_local pointer of type ExecCtx instead of grpc_exec_ctx which is initialized whenever ExecCtx is instantiated. ExecCtx also keeps track of the previous exec_ctx so that nesting of exec_ctx is allowed. This means that there is only one exec_ctx being used at any time. Also, grpc_exec_ctx_finish is called in the destructor of the object, and the previous exec_ctx is restored to avoid breaking current functionality. The code still explicitly calls grpc_exec_ctx_finish because removing all such instances causes the code to break.
| * Better nameGravatar Craig Tiller2017-10-18
| |
| * C++ize tracingGravatar Craig Tiller2017-10-16
|/
* Merge github.com:grpc/grpc into flowctl+millisGravatar Craig Tiller2017-10-05
|