aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/iomgr
Commit message (Collapse)AuthorAge
* Merge pull request #14076 from grpc/execctx_remfinishGravatar Yash Tibrewal2018-01-18
|\ | | | | Remove extraneous Finish in ExecCtx
* \ Merge pull request #14051 from markdroth/reorganize_supportGravatar Mark D. Roth2018-01-18
|\ \ | | | | | | Split lib/support into lib/gpr and lib/gpr++.
| | * Remove extraneous Finish in ExecCtxGravatar Yash Tibrewal2018-01-18
| |/ |/|
| * Split lib/support into lib/gpr and lib/gpr++.Gravatar Mark D. Roth2018-01-18
| |
* | Fixed typo in documentation.Gravatar Carlos O'Ryan2018-01-18
|/ | | s/opitons/options/
* Eliminate GRPC_LINUX_LEGACY_EPOLLGravatar Mehrdad Afshari2018-01-17
| | | | | | | Rename: GRPC_LINUX_LEGACY_EPOLL to GRPC_LINUX_EPOLL, and GRPC_LINUX_EPOLL to GRPC_LINUX_EPOLL_CREATE1
* Explicitly enable epoll on manylinux1Gravatar Mehrdad Afshari2018-01-17
| | | | | | | | | | | | For some reason, the glibc version check does not enable GRPC_LINUX_EPOLL on manylinux1. This commit: * Explicitly enables GRPC_LINUX_LEGACY_EPOLL on MANYLINUX1 * Switches the flag to enable epoll1 IO manager to GRPC_LINUX_LEGACY_EPOLL instead of GRPC_LINUX_EPOLL. This is to ensure epollex and epollsig that are not yet compatible with epoll_create (not epoll_create1) do not get activated unintentionally.
* Enable epoll on Python manylinux1Gravatar Mehrdad Afshari2018-01-16
| | | | | | | | | | | | | | The Python packages built for Linux and uploaded to PyPI are required to target a standardized platform specification dubbed `manylinux1`, which tries to cover a vast array of Linux distributions, thereby emulating a legacy lowest-common-denominator distribution, with an old `glibc` that does not support `epoll_create1`, but provides the `epoll_create` interface. While there are race condition risks associated with utilizing the latter interface and setting the `O_CLOEXEC` flag immediately on the file descriptor returned by `epoll_create`, the payoff is well worth the risks for our Python users, who currently end up falling back on `poll` polling engine when downloading our Linux binary packages.
* Merge pull request #13975 from danzh2010/adjustrcvbufGravatar Yang Gao2018-01-12
|\ | | | | change udp_server receive/send buffer size and set SO_RXQ_OVFL
| * formatGravatar Dan Zhang2018-01-11
| |
| * %zd->%dGravatar Dan Zhang2018-01-11
| |
| * change to int typeGravatar Dan Zhang2018-01-11
| |
| * fix portability errorsGravatar Dan Zhang2018-01-11
| |
* | exec_ctx_fwd.h should never have been in public headersGravatar Vijay Pai2018-01-10
| |
| * change to pass in valueGravatar Dan Zhang2018-01-10
| |
| * Adjust receiv buffer via setsockopt for udp_server's listening socket.Gravatar Dan Zhang2018-01-10
|/ | | | | Since this socket is used for all incoming traffic, its current buffer 1MB is appearantly too small. Change it to 10 MB for now.
* Merge pull request #13912 from ncteisen/nullptrGravatar David G. Quintas2018-01-09
|\ | | | | Missing s/NULL/nullptr
* \ Merge pull request #13933 from kpayson64/avoid_stallGravatar kpayson642018-01-08
|\ \ | | | | | | Avoid stall
| * | Fix bug with pollhup workaroundGravatar Ken Payson2018-01-05
| | |
* | | Merge pull request #13931 from apolcyn/merge_18xGravatar apolcyn2018-01-05
|\ \ \ | | | | | | | | Merge 1.8.x into master
| * | | Manual merge conflict resolve: remove exec_ctx param from tcp_freeGravatar Alexander Polcyn2018-01-05
| | | |
| | * | Fix a Python spinlock bugGravatar Ken Payson2018-01-05
| | | |
* | | | Merge pull request #13900 from vjpai/odrGravatar Vijay Pai2018-01-05
|\ \ \ \ | | | | | | | | | | Wrap duplicated-name definitions in anonymous namespace (except for iomgr)
| | * | | Merge remote-tracking branch 'upstream/v1.8.x' into merge_18xGravatar Alexander Polcyn2018-01-05
| |/| | | |/| | | |
| | * | | Mark tcp errors as UNAVAILABLE in UV tcp codeGravatar murgatroid992018-01-04
| | | | |
| | | | * Missing s/NULL/nullptrGravatar ncteisen2018-01-03
| |_|_|/ |/| | |
| * | | Wrap duplicated-name definitions in anonymous namespaceGravatar Vijay Pai2018-01-02
| | | |
* | | | Revert "Fix a Python spinlock bug"Gravatar Mehrdad Afshari2018-01-02
|/ / / | | | | | | | | | This reverts commit 2df509fc0e8628d6d4431139ce953c70796a21eb.
* | | Fix struct namesGravatar Vijay Pai2018-01-01
| | |
* | | Merge branch v1.8.x into masterGravatar Mehrdad Afshari2017-12-31
|\| | | | | | | | | | | Upmerge v1.8.3 into master
| * | Relax log-level when polling engines are undefinedGravatar Mehrdad Afshari2017-12-29
| | |
* | | Add a start_cb to grpc_udp_listener to be called when listener isGravatar Dan Zhang2017-12-20
| | | | | | | | | | | | created.
* | | Merge pull request #13811 from ita9naiwa/masterGravatar Noah Eisen2017-12-19
|\ \ \ | | | | | | | | Typo fix
* \ \ \ Merge pull request #13831 from dgquintas/fix_wrong_slice_unrefGravatar David G. Quintas2017-12-19
|\ \ \ \ | | | | | | | | | | Fix wrong unreffing of slice
* \ \ \ \ Merge pull request #13833 from ncteisen/commentsGravatar Noah Eisen2017-12-19
|\ \ \ \ \ | | | | | | | | | | | | Add ownership semantic comments to error.h
| | | | * \ Merge pull request #13665 from kpayson64/poll_spin_bugGravatar kpayson642017-12-19
| | | | |\ \ | | | | | | | | | | | | | | Fix a Python spinlock bug
| * | | | | | Add ownership semantic comments to error.hGravatar ncteisen2017-12-19
| | | | | | |
| | * | | | | Fix wrong unreffing of sliceGravatar David Garcia Quintas2017-12-19
| |/ / / / / |/| | | | |
| | | | * | Fix a Python spinlock bugGravatar Ken Payson2017-12-19
| | | | | |
* | | | | | Merge pull request #13494 from dgquintas/backoff_cppGravatar David G. Quintas2017-12-19
|\ \ \ \ \ \ | | | | | | | | | | | | | | C++-ize backoff
| * | | | | | 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.
* | | | | | | Fix internal TSAN bugGravatar Noah Eisen2017-12-19
| |/ / / / / |/| | | | |
| | * | | | minor typo : becuase -> becauseGravatar ita9naiwa2017-12-19
| |/ / / / |/| | | |
* | | | | Merge pull request #13776 from ncteisen/executor-tsanGravatar Noah Eisen2017-12-15
|\ \ \ \ \ | | | | | | | | | | | | Fix shutdown executor tsan bug
* \ \ \ \ \ Merge pull request #13771 from yang-g/deleteGravatar Yang Gao2017-12-15
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Mark tcp errors as UNAVAILABLE
| | * | | | Fix executor tsan bugGravatar ncteisen2017-12-14
| |/ / / / |/| | | |
* | | | | Fix tsan in bad_client testsGravatar Noah Eisen2017-12-13
| | | | |
| * | | | Mark tcp errors as UNAVAILABLEGravatar yang-g2017-12-13
| | |_|/ | |/| |
* | | | Merge pull request #13450 from daniel-j-born/tcp_clientGravatar Mark D. Roth2017-12-13
|\ \ \ \ | | | | | | | | | | Refactor POSIX TCP client connect.