Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nginx and event ports #292

Open
johngrasty opened this issue Sep 7, 2015 · 1 comment
Open

nginx and event ports #292

johngrasty opened this issue Sep 7, 2015 · 1 comment

Comments

@johngrasty
Copy link

So yesterday, I was alerted to an nginx process using 100% of a core. dtrace revealed that it was making tens of thousands of calls to ioctl. (Here's the output for anyone curious.) dtrace further revealed that the argument for ioctl was /dev/poll. I thought this strange since event ports is newer and well regarded. The nginx documents show this as a valid option ("Connection processing methods" page and the "use" directive doc). The latter specifically states that nginx will use the most efficient. A quick test revealed that adding the use eventports; to the config file does enable event ports:

events {
    worker_connections  1024;
    **use eventports;**
}

Further research indicates that the reason isn't selected automatically is that there are problems with the implementation—particularly when used with the proxy module.

Here is a short thread from 2013 where the developers mention (with no details) the problem.

Here's another thread where someone gives more detail on reproducing the issue.

Here is a proposed patch, but there was no discussion.

I thought I had a repeatable test to make this fail, but I'm not so sure now. Just in tests on my lan, I would occasionally see errors. I really don't know if this is related though. Here's an example:

2015/09/07 11:54:01 [alert] 76529#0: *34 port_dissociate() failed (2: No such file or directory) while reading upstream, client: 10.0.0.202, server: , request: "GET /download/100MB-newark.bin HTTP/1.1", upstream: "http://127.0.0.1:9000/download/100MB-newark.bin", host: "10.0.0.64"

There was a fairly recent commit that touched the event port module, but I have no idea what it did, and there weren't any details in the changelog. (changeset)

I'm willing to help any way possible, but I don't know that much! :-D

jperkin pushed a commit that referenced this issue Jan 23, 2017
This upgrade fixes compatibility with new lxml.

Upstream changelog
==================
2.3.1

_This is a micro release and I have very little time on my hands right now sorry_

    Fix crash with no values when the print_values_position param is set (thanks @cristen)

2.3.0

    New call API: chart = Line(fill=True); chart.add('title', [1, 3, 12]); chart.render() can now be replaced with Line(fill=True)(1, 3, 12, title='title').render()
    Drop python 2.6 support

2.2.3

    Fix bar static value positioning (#315)
    Add stroke_opacity style (#321)
    Remove useless js in sparklines. (#312)

2.2.2

    Add classes option.
    Handle ellipsis in list type configs to auto-extend parent. (Viva python3)

2.2.0

    Support interruptions in line charts (thanks @piotrmaslanka #300)
    Fix confidence interval reactiveness (thanks @chartique #296)
    Add horizontal line charts (thanks @chartique #301)
    There is now a formatter config option to format values as specified. The formatter callable may or may not take chart, serie and index as argument. The default value formatting is now chart dependent and is value_formatter for most graph but could be a combination of value_formatter and x_value_formatter for dual charts.
    The human_readable option has been removed. Now you have to use the pygal.formatters.human_readable formatter (value_formatter=human_readable instead of human_readable=True)
    New chart type: SolidGauge (thanks @chartique #295)
    Fix range option for some Charts (#297 #298)
    Fix timezones for DateTimeLine for python 2 (#306, #302)
    Set default uri protocol to https (should fix a lot of "no tooltips" bugs).

2.1.1

    Import scipy as a last resort in stats.py (should workaround bugs like #294 if scipy is installed but not used)

2.1.0

    Bar print value positioning with print_values_position. Can be top, center or bottom (thanks @chartique #291) ci doc
    Confidence intervals (thanks @chartique #292) data doc

2.0.12

    Use custom xml_declaration avoiding conflict with processing instructions

2.0.11

    lxml 3.5 compatibility (#282)

2.0.10

    Fix transposable_node in case all attributes are not there. (thanks @yobuntu).

2.0.9

    Add dynamic_print_values to show print_values on legend hover. (#279)
    Fix unparse_color for python 3.5+ compatibility (thanks @felixonmars, @sjourdois)
    Process major labels as labels. (#263)
    Fix labels rotation > 180 (#257)
    Fix secondary axis
    Don't forget secondary series in table rendering (#260)
    Add defs config option to allow adding gradients and patterns.

2.0.8

    Fix value overwrite in map. (#275)

2.0.7

    Fixing to checks breaking rendering of DateTimeLine and TimeDeltaLine (#264) (thanks @mmrose)
    Fix render_in_browser. (#266) (#268) (thanks @waixwong)

2.0.6

    Avoid x label formatting when label is a string

2.0.5

    Fix x label formatting

2.0.4

    Fix map coloration

2.0.3

    Fix label adaptation. (#256)
    Fix wrong radar truncation. (#255)

2.0.2

    Fix view box differently to avoid getting a null height on huge numbers. (#254)
    Fix broken font_family default
    Fix non namespaced svg (without embed) javascript by adding uuid in config object. (config is in window.pygal now).

2.0.1

    Fix the missing title on x_labels with labels.
    Auto cast to str x labels in non dual charts (#178)
    Add print_labels option to print label too. (#197)
    Add value_label_font_family and value_label_font_size style options for print_labels.
    Default print_zeroes to True
    (Re)Add xlink in desc to show on tooltip
    Activate element on tooltip hovering. (#106)
    Fix radar axis behaviour (#247)
    Add tooltip support in metadata to add a title (#249).
    Take config class options in account too.

2.0.0

    Rework the ghost mechanism to come back to a more object oriented behavior, storing all state in a state object which is created on every render. (#161)
    Refactor maps
    Add world continents
    Add swiss cantons map (thanks @sergedroz)
    Add inverse_y_axis options to reverse graph (#24)
    Fix DateTimeLine time data loss (#193)
    Fix no data for graphs with only zeroes (#148)
    Support value formatter for pie graphs (#218) (thanks @never-eat-yellow-snow)
    Add new Box plot modes and outliers and set extremes as default (#226 #121 #149) (thanks @djezar)
    Add secondary_range option to set range for secondary values. (#203)
    Maps are now plugins, they are removed from pygal core and moved to packages (pygal_maps_world, pygal_maps_fr, pygal_maps_ch, ...) (#225)
    Dot now supports negative values
    Fix dot with log scale (#201)
    Fix y_labels behaviour for lines
    Fix x_labels and y_labels behaviour for xy like
    Improve gauge a bit
    Finally allow call chains on add
    Transform min_scale and max_scale as options
    mode option has been renamed to a less generic name: box_mode
    fix stack_from_top for stacked lines
    Add flake8 test to py.test in tox
    Remove stroke style in style and set it as a global / serie configuration.
    Fix None values in tables
    Fix timezones in DateTimeLine
    Rename in Style foreground_light as foreground_strong
    Rename in Style foreground_dark as foreground_subtle
    Add a render_data_uri method (#237)
    Move font_size config to style
    Add font_family for various elements in style
    Add googlefont:font support for style fonts
    Add tooltip_fancy_mode to revert to old tooltips
    Add auto print_value color + a configurable value_colors list in style
    Add guide_stroke_dasharray and guide_stroke_dasharray in style to customize guides (#242) (thanks @cbergmiller)
    Refactor label processing in a _compute_x_labels and _compute_y_labels method. Handle both string and numbers for all charts. Create a Dual base chart for dual axis charts. (#236)
    Better js integration in maps. Use the normal tooltip.
@mamash
Copy link

mamash commented Apr 10, 2017

Erroneous auto-close.

@mamash mamash reopened this Apr 10, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants