Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1920461 - cheroot (cherrypy) indefinitely hangs under a moderate rate of requests and never recovers
Summary: cheroot (cherrypy) indefinitely hangs under a moderate rate of requests and n...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: python-cheroot
Version: epel8
Hardware: x86_64
OS: Linux
unspecified
urgent
Target Milestone: ---
Assignee: Dan Radez
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1920534
TreeView+ depends on / blocked
 
Reported: 2021-01-26 11:13 UTC by Ernesto Puerta
Modified: 2021-02-03 01:54 UTC (History)
9 users (show)

Fixed In Version: python-cheroot-8.5.2-1.el8
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-01-28 02:18:06 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Ceph Project Bug Tracker 48973 0 None None None 2021-01-26 11:13:35 UTC

Comment 1 Ken Dreyer (Red Hat) 2021-01-26 15:18:01 UTC
Dan and Justin, I've merged master into EPEL 8 here: https://src.fedoraproject.org/rpms/python-cheroot/pull-request/11

Would you please merge that?

Comment 2 Ken Dreyer (Red Hat) 2021-01-26 16:04:30 UTC
Steps to reproduce this bug:

1. Install python3-cherrypy and python3-cheroot-8.5.1 from EPEL

2. Generate HTTPS key and cert following the instructions at https://docs.cherrypy.org/en/latest/deploy.html#ssl-support
   openssl genrsa -out privkey.pem 2048
   openssl req -new -x509 -days 365 -key privkey.pem -out cert.pem

3. Create a "hello.py" app:

import cherrypy

cherrypy.server.ssl_certificate = "cert.pem"
cherrypy.server.ssl_private_key = "privkey.pem"

class HelloWorld(object):
    @cherrypy.expose
    def index(self):
        return "Hello World!"

cherrypy.quickstart(HelloWorld())

4. Run the app in a terminal

5. In another terminal, run "ab -c20 -n1000 https://localhost:8080/" until it hangs. In my experiments running this ab invocation three times was enough to get it to consistently hang. "-n10000" was less consistent in triggering this bug. Basically ab will report a hard timeout like "apr_pollset_poll: The timeout specified has expired (70007)", or an error like "SSL error".

I wonder how we could build this into Fedora CI (https://docs.fedoraproject.org/ar/ci/) so that we can run this kind of test on every CherryPy and Cheroot package build.

Comment 3 Ken Dreyer (Red Hat) 2021-01-26 16:07:49 UTC
I've built RPMs with https://src.fedoraproject.org/rpms/python-cheroot/pull-request/11 at https://fedorapeople.org/~ktdreyer/bz1920461/ . I've run the same test with this newer version and it passes.

Comment 4 Fedora Update System 2021-01-26 17:11:36 UTC
FEDORA-EPEL-2021-848a87b9dc has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-848a87b9dc

Comment 5 Fedora Update System 2021-01-27 01:31:34 UTC
FEDORA-EPEL-2021-848a87b9dc has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-848a87b9dc

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 6 Fedora Update System 2021-01-28 02:18:06 UTC
FEDORA-EPEL-2021-848a87b9dc has been pushed to the Fedora EPEL 8 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 7 Ken Dreyer (Red Hat) 2021-02-02 00:45:06 UTC
I took a stab at adding a CI test here: https://src.fedoraproject.org/fork/ktdreyer/rpms/python-cherrypy/blob/tests/f/tests

I have not tried running this at all yet. I've emailed ci.org for help.

Comment 10 Fedora Update System 2021-02-03 01:54:34 UTC
FEDORA-EPEL-2021-4b4520f49d has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-4b4520f49d

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.


Note You need to log in before you can comment on or make changes to this bug.