| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes:
* patching more tests to pass
* removing few unit tests which I think are redundant
* repeating SSL socket reads in a loop to read all data (I suspect this
is related to the fact that writelines is used in the server code
there and Python 3 writelines calls write/send repeatedly while on
Python 2 it calls it once; on one hand there's no guarantee that
single recv/read will return all data sent by the server, on the other
hand it's quite suspicious that the number of required reads seems to
be connected to the number of sends on the other side of the
connection)
* working through Python 2/Python 3 threading and thread differences;
the lock code I used is the simplest way I could make the tests
pass but will likely need to be modified in order to match the
original
This commit includes 6bcb1dc3686f72b0f1af803b46883ce4f5e4b8df and closes
GH #153
|
| |
|
|
|
|
|
|
|
| |
This patch:
* exposes eventlet.greenthread.kill function so Sphinx generates
its documentation and fixes broken links to :func:`kill`
* adds warning about wsgi.server waiting for active connections to
finish before returning
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Closes #137
Closes #148
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Currently, if the listening socket is closed the
wsgi.server will go into an infinite loop.
Add an 'is_accepting' flag which can be set to False
to tell the server to exit. This allows, for example,
a signal handler to initiate a gracefull shutdown
(complete existing requests then exit).
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This is connected to GH #135 and BitBucket #165
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes changes to WSGI, websocket, bytes/str/unicode handling,
SSL, backdoor, greenio and tests.
Some comments and conditionals (PY2/PY3) were added for clarity
GH issues:
Closes #106
Closes #111
Closes #118
Closes #141
Incidentally should also close #135 (reopen if didn't)
cc #6
|
| | |
|
| |
|
|
| |
Closes GH #144
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Fixes https://github.com/eventlet/eventlet/issues/123
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
https://github.com/eventlet/eventlet/pull/125
|
| |
|
|
| |
Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
https://github.com/eventlet/eventlet/issues/122
After a long running job that highlighted a previous known issue with
Second Simultaneous Read issue I used http://mg.pov.lt/objgraph/ to print
out all the types and counts still referenced by the GC.
Before this patch I was seeing GreenSocket and _socketobject types been
referenced. Depending on how long I ran the test job for I saw more references
to these objects. After this patch I see no reference no matter how long I
run my test for.
|
| | |
|
| |
|
|
| |
Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since WSGI is all about a single response to a single
request, in order for servers to process a PUT as a
single HTTP request and at the same time pass **hints**
back to the client (for example, a payload type that the
server can accept, or to inform the client that the server
expects to receive payload metadata at the end of the
payload transfer, etc), "100 Continue" response headers
is pretty much only place to add these hints.
This is consistent with **RFC2616, section 10.1**:
10.1 Informational 1xx
This class of status code indicates a provisional response,
consisting only of the **Status-Line** and **optional
headers**, and is terminated by an empty line.
Openstack Swift has an immediate use case for this feature
where the object server will use an
"Accept-Payload-Footer: 1" like header to hint the proxy
server to send a payload footer after it has finished
transmitting the payload (for sending metadata for an
erasure coded or encrypted payload, enforcing end-to-end
Etag checks, etc).
Addresses eventlet issue/enhancement #126
Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://github.com/eventlet/eventlet/issues/94
We have to defang the listener after removing it from the hub
Otherwise we never actaully remove it from the hub and get a return of the
second simultanous read.
This should fix this issue.
Turn off __builtin__ monkey patching by default
The reason is that eventlet.greenio.GreenPipe tries to
adapt an original file f, and performs the following check
isinstance(f, file) f is an original file object with file
is now our file method. This fails causing TypeError
nova-api exercises this
Fix up zmq to use the extended add signature
Having heard no problems relating eventlet and zmq,
I'm not going to dive in and drop random pataches against
it. If the 'Second simultaneous *er' crops up against
zmw then we at least now have the machinery to
address it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://github.com/eventlet/eventlet/issues/94
Because of the way paramiko utilises a client thread to manage its
communication, it's not been compatible with eventlet when run in
parallel.
It's not the only place these problems would arise.
This stemmed from the reuse of a fileno by the underlying OS.
Because listeners are registered against this descriptor, it would
be possible for old listeners to receive events destined for newer
descriptors; occasionally code would attempt to utilise the new
descriptor from a different greenlet, giving rise to the 'second
simultaneous read' problem.
Whenever a Python object is created to wrap one of these filenos,
we now signal the hub in order that it can correctly obsolete
extant listeners against that fileno. This is a fairly tricky
operation, due to the way that listeners' threads are interleaved
with the hub's operation - there are a number of small fixes here
to defend against one listener from effectively obsoleting another
when an event is pending against it.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Closes GH-102
Closes GH-103
Closes GH-104
|
| |
|
|
|
|
|
| |
Also:
- PEP-8
- check both EAGAIN/EWOULDBLOCK
- use system implementation of GreenPipe.readinto()
|
| |
|
|
| |
https://github.com/eventlet/eventlet/issues/101
|
| |
|
|
|
|
|
|
|
| |
https://github.com/eventlet/eventlet/pull/64
Also:
- PEP8
- except Exception
- .put() must not catch SystemExit
|
| | |
|
| | |
|
| |
|
|
|
|
| |
In PyPy 2.3 socket.socket has no _sock property which causes eventlet
failures.
https://github.com/eventlet/eventlet/pull/97
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- __next__ for iterator interface
- six.next() to get next item
- list(dict.keys())
- popen2.popen4 -> subprocess
- s2b -> b"..." literals
- deprecated assertEquals -> assertEqual
- hub_test test_fork using run_python
- 1L -> 1 long literal
- many PEP-8 fixes
|