1. 26 Jul, 2022 6 commits
  2. 08 May, 2020 1 commit
  3. 06 Apr, 2020 2 commits
  4. 31 Mar, 2020 1 commit
  5. 27 Mar, 2020 6 commits
    • Louis Taylor's avatar
      Merge pull request #971 from ahmedbilal/patch-1 · bdb45703
      Louis Taylor authored
      Added string message in few exceptions
      bdb45703
    • Louis Taylor's avatar
      Merge branch 'master' into patch-1 · 0f0f4472
      Louis Taylor authored
      0f0f4472
    • Louis Taylor's avatar
      Merge pull request #978 from ahmedbilal/patch-2 · ed2f758e
      Louis Taylor authored
      Don't close grpcio channel when it don't exist
      ed2f758e
    • Louis Taylor's avatar
      Merge branch 'master' into patch-2 · 9c3d8da5
      Louis Taylor authored
      9c3d8da5
    • Louis Taylor's avatar
      Merge pull request #1096 from jeckersb/avoid-gc-deadlock · 491a7098
      Louis Taylor authored
      Don't close grpc channel during Etcd3Client.__del__
      491a7098
    • John Eckersberg's avatar
      Don't close grpc channel during Etcd3Client.__del__ · cd1171a2
      John Eckersberg authored
      Closing the channel requires the underlying channel object to obtain a
      lock, and if the lock is locked when the garbage collect runs it will
      deadlock, with a stack like:
      
      Traceback (most recent call first):
        File "/usr/lib/python3.7/threading.py", line 296, in wait
          waiter.acquire()
        File "/root/tooz/.tox/py37-etcd3/lib/python3.7/site-packages/grpc/_channel.py", line 1420, in _close
          self._channel.close(cygrpc.StatusCode.cancelled, 'Channel closed!')
        File "/root/tooz/.tox/py37-etcd3/lib/python3.7/site-packages/grpc/_channel.py", line 1436, in close
          self._close()
        File "/root/tooz/.tox/py37-etcd3/lib/python3.7/site-packages/etcd3/client.py", line 173, in close
          self.channel.close()
        File "/root/tooz/.tox/py37-etcd3/lib/python3.7/site-packages/etcd3/client.py", line 182, in __del__
          self.close()
      
      It is generally advised to avoid taking locks while in a __del__
      method.
      
      Currently the underlying channel object does *not* close itself during
      its __del__, although from this comment that may change in the future:
      
        # TODO(https://github.com/grpc/grpc/issues/12531): Several releases
        # after 1.12 (1.16 or thereabouts?) add a "self._channel.close" call
        # here (or more likely, call self._close() here). We don't do this
        # today because many valid use cases today allow the channel to be
        # deleted immediately after stubs are created. After a sufficient
        # period of time has passed for all users to be trusted to hang out
        # to their channels for as long as they are in use and to close them
        # after using them, then deletion of this grpc._channel.Channel
        # instance can be made to effect closure of the underlying
        # cygrpc.Channel instance.
      
      (https://github.com/grpc/grpc/blob/ee3952f72b5b80828e9828d5170eee3f9f2c2108/src/python/grpcio/grpc/_channel.py#L1439)
      
      We are seeing this problem manifest in the tooz project with its etcd3
      backend, as the interpreter finalizes after running the test suite and
      cleans up some lingering etcd3 client objects:
      
      https://review.opendev.org/#/c/710539/
      cd1171a2
  6. 23 Mar, 2020 2 commits
  7. 19 Mar, 2020 4 commits
  8. 18 Mar, 2020 2 commits
  9. 14 Mar, 2020 2 commits
  10. 10 Mar, 2020 2 commits
  11. 09 Mar, 2020 2 commits
  12. 08 Mar, 2020 2 commits
  13. 05 Mar, 2020 2 commits
  14. 04 Mar, 2020 2 commits
  15. 27 Feb, 2020 2 commits
  16. 26 Feb, 2020 2 commits