seecr / weightless-core

Weightless supports implementing complete Python programs as co-routines, including protocol stacks, such as the HTTP protocol.
GNU General Public License v2.0
7 stars 2 forks source link

"[Errno 9] Bad file descriptor" on testing with ab #1

Open mrkafk opened 10 years ago

mrkafk commented 10 years ago

In one console:

(w2)d7 192.168.56.101 ~/w2/tmp/weightless-core/weightless/examples % ./httpserver.py

In another console:

d7 192.168.56.101 ~ % curl http://127.0.0.1:8080/
Hello!d7 192.168.56.101 ~ %

It works. Then:

d7 192.168.56.101 ~ % ab -n 300 -c 50 http://127.0.0.1:8080/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)...apr_socket_recv: Connection refused (111)

Traceback:

(w2)d7 192.168.56.101 ~/w2/tmp/weightless-core/weightless/examples % ./httpserver.py
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 203, in _callbacks
    context.callback()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 63, in callback2generator
    message = yield context.read()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 158, in read
    message = os.read(self._fd, self.readBufSize)
OSError: [Errno 9] Bad file descriptor
Traceback (most recent call last):
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 167, in step
    rReady, wReady, ignored = self._select(self._readers.keys(), self._writers.keys(), [], timeout)
error: (9, 'Bad file descriptor')
Reactor shutdown: closing Context (most recent call last):<compose object at 0x27ab050>
Reactor shutdown: closing <socket._socketobject object at 0x253fa60>
Reactor shutdown: closing Context (most recent call last):<compose object at 0x27ab350>
Reactor shutdown: closing Context (most recent call last):<compose object at 0x27ab950>
Reactor shutdown: closing Context (most recent call last):<compose object at 0x27ab550>
Reactor shutdown: closing Context (most recent call last):<compose object at 0x27ab450>
Reactor shutdown: closing Context (most recent call last):<compose object at 0x27ab150>
Reactor shutdown: closing Context (most recent call last):<compose object at 0x27ab650>
Reactor shutdown: closing Context (most recent call last):<compose object at 0x27aba50>
Traceback (most recent call last):
  File "./httpserver.py", line 51, in <module>
    reactor.loop()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 152, in loop
    self.shutdown()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_reactor.py", line 143, in shutdown
    handle.close()
  File "/root/w2/local/lib/python2.7/site-packages/weightless/io/_gio.py", line 139, in close
    os.close(self._fd)
OSError: [Errno 9] Bad file descriptor

OS: Debian 7 / x64

(w2)d7 192.168.56.101 ~/w2/tmp/weightless-core/weightless/examples % uname -a
Linux d7 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 GNU/Linux

Python:

Python 2.7.3 (default, Jan  2 2013, 13:56:14)
[GCC 4.7.2] on linux2

packages installed in virtualenv:

(w2)d7 192.168.56.101 ~/w2/tmp/weightless-core/weightless/examples % pip freeze
Pygments==1.6
argparse==1.2.1
docutils==0.11
docutils-ext==0.2d
pdfrw==0.1
pyOpenSSL==0.13
pylibmc==1.2.3
reportlab==2.7
rst2pdf==0.93.dev
weightless-core==trunk
wsgiref==0.1.2
ejgroene commented 10 years ago

Hi,

Sorry for my late reply.

I looked into your problems and I'll reply to them separately.

For the problem below, I see you are using GCC 4.7 and Python 2.7 on Linux 3.2. The handling of sockets is usually a bit nifty and depends on the platform. Therefor I would need to these versions running. I haven't at the moment, as all my development work is on either Debian of RedHat, which both lag behind a bit.

However, we will be switching to Debian Wheezy shortly and at that point it becomes a necessity for us to work, so it will be fixed soon, although I regret that I cannot do it right-away.

Erik

Erik Groeneveld ♦ seecr.nl ♦ +31 624 584 029

On Wed, Aug 21, 2013 at 1:49 PM, mrkafk notifications@github.com wrote:

In one console:

(w2)d7 192.168.56.101 ~/w2/tmp/weightless-core/weightless/examples % ./httpserver.py

In another console:

d7 192.168.56.101 ~ % curl http://127.0.0.1:8080/ Hello!d7 192.168.56.101 ~ %

It works. Then:

d7 192.168.56.101 ~ % ab -n 100 http://127.0.0.1:8080/ This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)...apr_socket_recv: Connection refused (111)

Traceback:

(w2)d7 192.168.56.101 ~/w2/tmp/weightless-core/weightless/examples % ./htt