1. 12 Jan, 2018 2 commits
  2. 11 Jan, 2018 2 commits
  3. 10 Jan, 2018 5 commits
  4. 09 Jan, 2018 6 commits
  5. 08 Jan, 2018 7 commits
  6. 02 Jan, 2018 1 commit
  7. 22 Dec, 2017 6 commits
  8. 15 Dec, 2017 4 commits
    • Jason Madden's avatar
      Changes for pylint 1.8 [skip appveyor] · fa3b489f
      Jason Madden authored
      fa3b489f
    • Jason Madden's avatar
      Merge pull request #1056 from gevent/libuv-py36-win · 01f5ccb7
      Jason Madden authored
      Support libuv under CPython 3.6 on Windows
      01f5ccb7
    • Jason Madden's avatar
      Fix an occasional crash in monkey patched 3.6/test_socket.py · b2e6142c
      Jason Madden authored
      First the crash report:
      
      ```
        testInterruptedRecvmsgTimeout (__main__.InterruptedRecvTimeoutTest) ... Traceback (most recent call last):
          File "/home/travis/build/gevent/gevent/src/gevent/_ffi/loop.py", line 83, in python_callback
            def python_callback(self, handle, revents):
          File "/home/travis/build/gevent/gevent/src/greentest/3.6/test_socket.py", line 3698, in <lambda>
            lambda signum, frame: 1 / 0)
        ZeroDivisionError: division by zero
        Fri Dec 15 16:09:36 2017
        ok
        testInterruptedSendTimeout (__main__.InterruptedSendTimeoutTest) ... Fatal Python error: ffi.from_handle() detected that the address passed points to garbage. If it is really the result of ffi.new_handle(), then the Python object has already been garbage collected
      
        Thread 0x00002b26d4c01700 (most recent call first):
          File "/home/travis/build/gevent/gevent/src/gevent/_threading.py", line 152 in wait
          File "/home/travis/build/gevent/gevent/src/gevent/_threading.py", line 436 in get
          File "/home/travis/build/gevent/gevent/src/gevent/threadpool.py", line 200 in _worker
      
        Thread 0x00002b26d4a00700 (most recent call first):
          File "/home/travis/build/gevent/gevent/src/gevent/_threading.py", line 152 in wait
          File "/home/travis/build/gevent/gevent/src/gevent/_threading.py", line 436 in get
          File "/home/travis/build/gevent/gevent/src/gevent/threadpool.py", line 200 in _worker
      
        Current thread 0x00002b26cc7b2a00 (most recent call first):
          File "/home/travis/build/gevent/gevent/src/gevent/_ffi/loop.py", line 178 in python_stop
          File "/home/travis/build/gevent/gevent/src/gevent/libuv/loop.py", line 289 in run
          File "/home/travis/build/gevent/gevent/src/gevent/hub.py", line 688 in run
      ```
      
      The main problem turned out to be the way in which libuv reports
      signals at random times, much worse than the way libev does. This led
      to callback functions unexpectedly returning 0, because that's the
      default for an unhandled exception or an onerror handler that returns
      None. That in turn led to calls to python_stop that we weren't
      expecting using a handle that had already been deallocated.
      
      The fix is to both be defensive about what handles we try to use, and
      to be more explicit about our error returns.
      b2e6142c
    • Jason Madden's avatar
      Disable pypy on appveyor again because it takes too long. I need to make sure... · a0bda58b
      Jason Madden authored
      Disable pypy on appveyor again because it takes too long. I need to make sure it runs on POSIX first.
      a0bda58b
  9. 14 Dec, 2017 3 commits
  10. 13 Dec, 2017 4 commits
    • Jason Madden's avatar
      Enable Py36+libuv+Appveyor · 3198560e
      Jason Madden authored
      All tests are passing locally after fixing a GC-cycle related issue in
      the io watcher that kept the wrong socket watchers alive. This should
      probably be generalized to all watchers on all FFI platforms.
      3198560e
    • Jason Madden's avatar
      Merge pull request #1055 from gevent/fix_test__socket · 54f8ecfe
      Jason Madden authored
      Attempt to fix (or workaround) test__socket.py on Windows
      54f8ecfe
    • Jason Madden's avatar
    • Jason Madden's avatar
      Attempt to fix (or workaround) test__socket.py on Windows. · 74e04b49
      Jason Madden authored
      It runs locally for me on Win10/Py3.6 with both libev and libuv.
      
      It had been sometimes failing since 2016-02 for 2.7 and 2016-04 for
      3.5.
      
      Here's the comment in the code indicating what I tracked down. Note
      that the changes are more of a workaround than a true fix:
      
      XXX: On Windows (at least with libev), if we have a cleanup/tearDown
      method that does 'del self.listener' AND we haven't sometime
      previously closed the listener (while the test body was executing) we
      tend to sometimes see hangs when tests run in succession; notably
      test_empty_send followed by test_makefile produces a hang in
      test_makefile when it tries to read from the client_file, because the
      accept() call in accept_once has not yet returned a new socket to
      write to.
      
      The cause *seems* to be that the listener socket in both tests gets
      the same fileno(); or, at least, if we don't del the listener object,
      we get a different fileno, and that scenario works.
      
      Perhaps our logic is wrong in libev_vfd in the way we use
      _open_osfhandle and determine we can close it?
      
      Additional note:
      
      Possibly libuv doesn't suffer from this since it takes the SOCKET
      object directly? I didn't fully test that situation, but libuv tests
      were failing and are now passing.
      74e04b49