Code Monkey home page Code Monkey logo

apache / trafficcontrol Goto Github PK

View Code? Open in Web Editor NEW
1.0K 72.0 339.0 127.17 MB

Apache Traffic Control is an Open Source implementation of a Content Delivery Network

Home Page: https://trafficcontrol.apache.org/

License: Apache License 2.0

Shell 2.14% Go 58.20% Perl 0.80% Python 2.66% CSS 0.07% HTML 5.81% JavaScript 9.41% Java 7.38% Makefile 0.09% C 0.15% PLpgSQL 0.78% Roff 0.02% Dockerfile 0.71% TypeScript 9.91% PowerShell 0.02% SCSS 1.08% Jinja 0.76%
trafficcontrol apache cdn contentdelivery hacktoberfest

trafficcontrol's Introduction

Apache Traffic Control

Traffic Control Logo

Apache Traffic Control allows you to build a large scale content delivery network using open source. Built around Apache Traffic Server as the caching software, Traffic Control implements all the core functions of a modern CDN.

Slack Twitter Follow Youtube Subscribe

GitHub release (latest SemVer) Github commits since release

Build Status 1

Build Status Documentation Status

Code Status 1

Weasel License Checks Go Formatting Go Vet
CodeQL - C++ CodeQL - Go CodeQL - Java CodeQL - Javascript CodeQL - Python

Test Status 1

Component Unit Tests Integration Tests
Go Libraries Go Lib Unit Tests Codecov -
Traffic Ops Traffic Ops Unit Tests Codecov Traffic Ops API Contract Tests TO Go Client Integration Tests Codecov
Traffic Router Traffic Router Tests Codecov TR Ultimate Test Harness
Traffic Monitor Traffic Monitor Unit Tests Codecov TM Integration Tests
T3C T3C Unit Tests Codecov T3C Integration Tests
Traffic Stats Traffic Stats Unit Tests Codecov -
Grove Grove Unit Tests Codecov -
Traffic Portal - TP Integration Tests
TCHC - TC Health Client Integration Tests

Documentation 2

Components 2

  • Traffic Ops is the RESTful API service for management and monitoring of all servers in the CDN.
  • Traffic Portal is the web GUI for managing and monitoring the CDN via the Traffic Ops API.
  • Traffic Router uses DNS and HTTP302 to redirect clients to the closest available cache on the CDN.
  • Traffic Monitor uses HTTP to poll the health of caches and provide this information to Traffic Router.
  • Traffic Stats acquires and stores real-time metrics and statistics into an InfluxDB for charting and alerting.

Releases

Downloads

Questions, Comments, Bugs and More

Footnotes

  1. *Status links point to the unreleased master branch 2 3

  2. Documentation links point to the latest which is the unreleased master branch and are neither stable nor necessarily accurate for any given supported release. 2

trafficcontrol's People

Contributors

alficles avatar dangogh avatar dependabot[bot] avatar dewrich avatar dg4prez avatar dneuman64 avatar elsloo avatar ericholguin avatar ezelkow1 avatar hbeatty avatar jheitz200 avatar jrushford avatar knutsel avatar limited avatar mattjackson220 avatar mhoppa avatar mitchell852 avatar moltzaum avatar nir-sopher avatar ocket8888 avatar peterryder avatar psudaemon avatar rawlinp avatar rimashah25 avatar rivasj avatar rob05c avatar shamrickus avatar srijeet0406 avatar trevorackerman avatar zrhoffman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

trafficcontrol's Issues

[TC-230] Cache Health Monitor - Add IPv6 Checks

We had access to several caches go down over IPv6 but not IPv4 due to a routing issue. Since the current health check only uses IPv4, these caches were kept in rotation when they should have either been admin downed or at least stopped advertising IPv6.

We are looking for a health monitor check that detects issues on both IPv4 and IPv6.

Author: Ryan Durfey
JIRA Link: https://issues.apache.org/jira/browse/TC-230

[TC-537] Update TO routing APIs to use Traffic Stats data (InfluxDB)

Dependent on TC-536

Currently the routing endpoint in Traffic Ops (apis/1.2/cdns/routing, api/1.2/deliveryservices/:id/routing.json) reach out to the crs/stats API on one Traffic Router to get the information. Traffic Routers are stateless therefore the crs/stats API data from one traffic router is not a full picture. Once TC-536 is complete the routing APIs in Traffic Ops should be updated to use the data that is stored by Traffic Stats in InfluxDB.

Author: David Neuman
JIRA Link: https://issues.apache.org/jira/browse/TC-537

[TC-368] api/1.2/deliveryservices/:id/routing.json hangs when Traffic Router is unreachable

I was testing this API "/api/1.2/deliveryservices/:id/routing.json" and found that it would hang and the perl worker had to be killled. This caused 500 Errors back from TO API.

The root cause is Traffic Router not responding to API Port.

We should not poll Traffic Router that are status=OFFLINE and there should be some sort of timeouts in place to make sure it doesn't take more than x seconds to return information from API

There is some comments in the code that seems to indication prior issues.

`# TODO: what happens when the request to CCR times out?`

Author: Steve Malenfant
JIRA Link: https://issues.apache.org/jira/browse/TC-368
Found Version: 1.8.0

[TC-363] cacheurl_qstring.conf file is not generated when qstringIgnore=1 and location profile parameter is missing for edge/mid cache

cacheurl_qstring.conf file is not generated when qstringIgnore=1 and location profile parameter for config file cacheurl_qstring.config is missing for edge/mid cache profile. This is a issue because remap.config references this non-existent file.

e.g. map http://edge-cache.http-ds.mycdn.somedomain.com/ http://origin-server.somedomain.com/ @plugin=header_rewrite.so @pparam=dscp/set_dscp_0.config @plugin=cacheurl.so @pparam=cacheurl_qstring.config

The workaround is to add location parameter for cacheurl_qstring.config config file to the edge/mid cache profile.

Author: Robert Scrimo
JIRA Link: https://issues.apache.org/jira/browse/TC-363
Found Version: 2.1.0

[TC-293] traffic_ops_ort.pl exposes password

When one runs traffic_ops_ort.pl you must provide a username and password for the TO instance on the commandline.

This exposes the password during the ort process via the process table and (on many version of Linux) will store that command in the .bash_history file.

traffic_ops_ort.pl should be modified such that when a username is provided without a password one is requested.

moving this from Comcast/traffic_control#188

Author: David Neuman
JIRA Link: https://issues.apache.org/jira/browse/TC-293

TO API - should not be able to create / update a user with a higher role than your role

Currently, to create or update a user thru the TO API, you have to have the admin or operations role, however, going forward your role will not dictate your ability to create/update users but rather the capabilities attached to your role.

Going forward roles can be arbitrarily created and attached to whatever capabilities the administration of the system desires.

For example, roles could look like this:

  • admin (all capabilities)
  • operations (whatever capabilities make sense for this role)
  • foo (whatever capabilities make sense for this role)
  • bar (whatever capabilities make sense for this role)
  • read-only (whatever capabilities make sense for this role)
  • disallowed (no capabilities)

In this example, if the foo role has the user-write capability, anyone with the foo role can create or update users which means they could create a user and give them the admin role and thus sidestepping roles/capabilities altogether.

When creating / updating users, you should never be able to assign a role with a higher priv level than your role's priv level.

[TC-489] Multi Site Origin - Invalid default values for multiple config params

Several of the multi site origin parameters default to 0 (including mso.algorithm, possibly others ), which is an invalid argument.
valid values: true, strict, proxy1, false, consistent_hash

https://github.com/apache/incubator-trafficcontrol/blob/master/traffic_ops/app/lib/API/Configs/ApacheTrafficServer.pm#L2051

   L2051: $text .= "$parents round_robin=$mso_algorithm qstring=$parent_qstring go_direct=false parent_is_proxy=false";
   parent.config: dest_domain=google.com port=443 ... round_robin=0 ...
   [Jul 12 02:25:45.987] Server {0x2b54fb7db940} ERROR: [ParentSelection] invalid argument to round_robin directive at line 2

Author: Matt Mills
JIRA Link: https://issues.apache.org/jira/browse/TC-489
Found Version: 2.1.0

[TC-318] Chart creation for non-cache servers such as Traffic Routers, Traffic Monitors, Influxdb

copied from Comcast/traffic_control#1736

On the servers page in TO there is a graph icon which leads to graphs for caches. This icon is currently not present for other types of servers such as Traffic Routers, Traffic Monitors, Influxdb servers, etc. We should create some scripted dashboards and update Traffic Ops so that all server types have graphs with at least grafana data.

Author: Derek Gelinas
JIRA Link: https://issues.apache.org/jira/browse/TC-318

[TC-548] Determine how to handle hostname/routing name change for ssl keys

Now when a DS's hostname changes on an update, via UI or API, it changes the hostname field on the record stored in riak, but it does not regenerate the certificate or CSR so there will be a mismatch between the ssl certificate and the hostname it is being used for.

We need to decide what the proper way to handle this is, we can regenerate the certificate and CSR in the manner we currently do from the api or ui but they will still be unsigned without human interaction at this point.

Author: Dylan Volz
JIRA Link: https://issues.apache.org/jira/browse/TC-548

[TC-490] mso.qstring_handling parameter is checked but not documented

mso.qstring_handling not listed in docs, seems to be defined elsewhere as psel.qstring_handling
but MID parent selection code checks if mso.qstring_handling is not defined

   my $qsh            = $ds->{'param'}->{'parent.config'}->{'mso.qstring_handling'};
   my $parent_qstring = "ignore";                                                      # default is ignore, unless for alg consistent_hash
   if ( !defined($qsh) && $mso_algorithm eq 'consistent_hash' && $ds->{qstring_ignore} == 0 ) {
      $parent_qstring = 'consider';
   }

The parameter is unlikely to ever exist, since it's not documented anywhere, but either way either the code should be corrected or the documentation should be.

Author: Matt Mills
JIRA Link: https://issues.apache.org/jira/browse/TC-490
Found Version: 2.1.0

[TC-287] Add support for per-Delivery Service routing/name

A default routing name/entry point should be added as a profile parameter, and this parameter should be used by default as the value of the "routing name" or "entry point" on the delivery service in the CRConfig. This value should be overridable on a per-delivery service level, which means that the delivery service UIs should be enhanced to provide this capability and to display the default value.

Once above is implemented, consume the new delivery service parameter and configure accordingly within Traffic Router.

From:
Comcast/traffic_control#61
Comcast/traffic_control#62

Author: Eric Friedrich
JIRA Link: https://issues.apache.org/jira/browse/TC-287

[TC-169] TR download the RGB file continuously when the same RGB file on server

If the RGB file on server is:
1. completely the same with the RGB file on TR
2. last modified time is later than the RGB file on TR
TR will download the RGB file from server at every polling interval.

Expected behavior is that TR should not download the RGB file any longer when the RGB file on server has been downloaded to TR and it was unmodified since then.

Author: Zhilin Huang
JIRA Link: https://issues.apache.org/jira/browse/TC-169
Found Version: 2.1.0

[TC-317] ORT syncds bug - Parent holds up child running syncds if TO has multiple CDNs

Based on: Comcast/traffic_control#1380

By: jpappa200
A parent from a different CDN can hold up a child from running syncds if Traffic Ops has multiple CDN's configured.

https://<to_host>/update/ looks at all parents associated with the cache group and doesn't check which CDN it's associated with.

Comment by jeffmart:
Is this hold up indefinite?
or
does syncds complete on the child after all parents for all CDNs in that cache group are updated?
I am assuming Comcast/traffic_control#2 but want to make sure

knutsel :
so we have a issue somewhere to take regex_revalidate out of the ort/syncds distribution mechanism, and scp (or ansible dist) it directly on update; this would remove the "mids have to complete ort syncds before edges" requirement, and things should get a lot better when we do that...

Author: Nir Sopher
JIRA Link: https://issues.apache.org/jira/browse/TC-317

[TC-298] Health params.json updated with certain Profile names Github Issue #896

Create Profile names in the Traffic_OPs with names such as Edge and Mid for Edge and Mid cache profiles, these don't get updated in the heath_params.json on the Traffic monitor.

In the current implementation of traffic ops, there is no "type" for a profile. When generating the health-params.json for traffic monitor, ops do not know which profile is for edge or middle or router, etc. So in traffic ops code, it use the convention that:
profile starting with "RASCAL" is a traffic monitor profile
profile starting with "CCR" is a traffic router profile
profile starting with "EDGE" is an edge server profile
profile starting with "MID" is a middle server profile

It is better to add a type for each profile, or make a restriction for the profile name.

Author: Dewayne Richardson
JIRA Link: https://issues.apache.org/jira/browse/TC-298
Found Version: 2.1.0

Manage roles/capabilities

This view should be found at tp.com/#!/roles and should include the ability to see all roles and the attributes of each role (name, description, privLevel) as well as the ability to CRUD roles.

[TC-322] Traffic Router requires at least one cache assigned to at least one DS for TLD zone generation

In order for the CDN TLD's zone file to be generated, at least one cache must be assigned to one delivery service. This is due to the way the super domains are created; the current algorithm generates the super domains based on a loop through cache assignments. If no caches are assigned, the super domains list is empty, and the TLD zone is never created.

The impact is that people standing up new Traffic Control CDNs will have a non-functioning Traffic Router in terms of domain delegation and resolution due to the missing TLD.

moved from Comcast/traffic_control#1745

Author: Dan Kirkwood
JIRA Link: https://issues.apache.org/jira/browse/TC-322

[TC-547] Fix regression issues caused by TC-187

Fix for TC-187 introduced change to use "ds_<ds-id>" instead of xml_id as the key to put SSL certificate to riak server.

This may cause regression issues when doing migration. And as xml_id becomes immutable now, this change is not needed anymore.

Also the change for get ssl certificate in API may cause regression issue. Will revert it as well.

Author: Zhilin Huang
JIRA Link: https://issues.apache.org/jira/browse/TC-547
Found Version: 3.0.0

[TC-501] TPv2 installation - better defaults are required

After basic install of traffic-portal based on the documentation, traffic portal failed to launch. this is due to relative pathes to the logs and static files appear in the default configuration.
Note that the working directory of the server is "/"

First, the log path (./server/log) does not exists. A possible fix is to change the dir to /opt/traffic_portal/server/log and create the log dir if needed.

Second. the files static path should be set to "opt/traffic_portal/public"

Author: Nir Sopher
JIRA Link: https://issues.apache.org/jira/browse/TC-501
Found Version: 2.1.0

[TC-488] Docs - Multi Site Origin not up to date

Current documentation for multi site origin is confusing/wrong/out of date:

https://github.com/apache/incubator-trafficcontrol/blob/master/docs/source/admin/quick_howto/multi_site.rst
Bottom has steps that references configuration that I think has been replaced with delivery service profiles.
https://github.com/apache/incubator-trafficcontrol/blob/master/docs/source/admin/traffic_ops/using.rst
mentions the new delivery service profile pieces, but not the cachegroup side of multi-site configuration.

Author: Matt Mills
JIRA Link: https://issues.apache.org/jira/browse/TC-488
Found Version: 2.1.0

[TC-550] TO API - fetch deliveryservices for a user should have tenancy hooked in

The following api route does not take into consideration the tenancy of the specified user:

get( "/api/$version/users/:id/deliveryservices

it currently does the following:

1. it checks the tenancy of the specified user vs. the tenancy of the current user to ensure the current user can see the specified user <-- this is good
2. it queries the deliveryservice_tmuser table to find the delivery services associated to the tm_user and then if finally filters the results based on the current user's tenancy <-- it should not query this table if use_tenancy = 1

if use_tenancy = 0, it should work the way it does now

if use_tenancy = 1, it should not query the deliveryservice_tmuser table but instead query the deliveryservice table and filter the results against the specified user's tenant AND the current user's tenant.

Author: Jeremy Mitchell
JIRA Link: https://issues.apache.org/jira/browse/TC-550
Found Version: 2.1.0

[TC-367] Download page must not link to dist.apache.org

The dist.apache.org SVN area is only intended as the staging area for the ASF mirror service.

Please do not link to files on it from download pages.

Sigs and hashes should link to:

https://www.apache.org/dist/incubator/trafficcontrol/
instead. And later to
https://www.apache.org/dist/trafficcontrol/

Also the download page needs an https link to the KEYS file

https://www.apache.org/dist/incubator/trafficcontrol/KEYS

and some instructions on how to check sigs or hashes.

Please see:

http://www.apache.org/dev/release-publishing.html#distribution_dist

Author: Sebb
JIRA Link: https://issues.apache.org/jira/browse/TC-367
Found Version: 2.1.0

[TC-295] Invalid DS regex causes nasty exception and unexpected results Github Issue #514

If a host regex (probably others) is specified as a plain string, rather than a real regex (e.g.: test vs ..mydeliveryservice..), the following exception occurs in Traffic Router, and the user would have to be watching the logs to see that something went wrong. Additionally, it is not clear why the failure occurred.

Improve TO in general such that the regex is clearly defined (documented?) and potentially checked so that it doesn't get added to the CRConfig until it is what we expect to see. Additionally, discuss whether we want to support specific strings (e.g.: test) instead of a full regex. Doing so seems to be counter to the intent of the regex in the first place, so I do not think that this is a viable option at this time.

WARN 2015-09-01T14:25:07.237 New I/O worker #1 com.comcast.cdn.traffic_control.traffic_router.core.util.PeriodicResourceUpdater - 1 java.lang.ArrayIndexOutOfBoundsException: 1 at com.comcast.cdn.traffic_control.traffic_router.core.dns.ZoneManager.populateZoneMap(ZoneManager.java:311) at com.comcast.cdn.traffic_control.traffic_router.core.dns.ZoneManager.generateZones(ZoneManager.java:132)

Author: Dewayne Richardson
JIRA Link: https://issues.apache.org/jira/browse/TC-295

[TC-301] creating https delivery service and not setting to active still looks for cert. Github Issue #1086

Original GH issue Comcast/traffic_control#1086

Que'ed and snapshotted - delivery service was not set to active. On syncds it err's looking for DS cert.
ERROR Received error code 400 for https://trafficops/api/1.1/deliveryservices/hostname/deliveryservicename/sslkeys.json from Traffic Ops!
FATAL SSL URL: https://trafficops/api/1.1/deliveryservices/hostname/deliveryservicename/sslkeys.json returned 400. Exiting.

Just generating a ssl key and error goes away.
Copying /tmp/ort/123/trafficserver/config_trops deliveryservicename .cer to /opt/trafficserver/etc/trafficserver/ssl//deliveryservicename_cert.cer
ERROR Copying /tmp/ort/123/trafficserver/config_trops/deliveryservicename.key to /opt/trafficserver/etc/trafficserver/ssl//deliveryservicename.key

Author: Dewayne Richardson
JIRA Link: https://issues.apache.org/jira/browse/TC-301

[TC-536] Update Traffic Stats to collect and store /crs/stats data from Traffic Routers

Traffic Router has an API endpoint (:3333/crs/stats) that has lots of really good information. Traffic Stats should poll this API endpoint and store the data in InfluxDB.

TODO:

  • Update create_ts_database to create new traffic_router table
  • Update create_ts_database to create retention policies on traffic_router table
  • Update create_ts_database to add continuous queries for traffic_router data (downsample to 1 min is a good start)
  • Add a poller to poll Traffic Router /crs/stats endpoint, collect stats, and write to BPS chan.
  • whatever else I forgot

Author: David Neuman
JIRA Link: https://issues.apache.org/jira/browse/TC-536

[TC-546] error_url required in the url_sig file

The error_url parameter in the URL signature file is required, if not present trafficserver doesn't start.

Seems like TO handles generating the proper location of for the url_sig in the the database to all servers assigned, although the error_url is not.

  • I tried to put the parameter in the DS profile parameter, but it didn't get generated on disk.
  • Thinking that a default of `error_url = 403` should be dynamic generated if not present to prevent trafficserver from starting. This could have other implication.
  • Other suggestions?

Author: Steve Malenfant
JIRA Link: https://issues.apache.org/jira/browse/TC-546
Found Version: 2.1.0

[TC-373] Traffic Stats Has Connection Leak

Happens when TO not response 200 OK to traffic stats:
[ERROR] 2017-06-08 09:54:40 500 Internal Server Error[500] - Error requesting Traffic Ops https://coffee-ops-a.coffee.com/api/1.2/stats_summary/create

$ sudo netstat -tunp|grep traffic_stats|head
tcp 32 0 10.63.115.225:39667 10.63.115.224:443 CLOSE_WAIT 795/traffic_stats
tcp 32 0 10.63.115.225:50388 10.63.115.224:443 CLOSE_WAIT 795/traffic_stats
tcp 32 0 10.63.115.225:46896 10.63.115.224:443 CLOSE_WAIT 795/traffic_stats
tcp 32 0 10.63.115.225:38896 10.63.115.224:443 CLOSE_WAIT 795/traffic_stats
tcp 1 0 10.63.115.225:53682 10.63.115.224:443 CLOSE_WAIT 795/traffic_stats
tcp 32 0 10.63.115.225:42324 10.63.115.224:443 CLOSE_WAIT 795/traffic_stats
tcp 32 0 10.63.115.225:39618 10.63.115.224:443 CLOSE_WAIT 795/traffic_stats
tcp 32 0 10.63.115.225:36613 10.63.115.224:443 CLOSE_WAIT 795/traffic_stats
tcp 32 0 10.63.115.225:51851 10.63.115.224:443 CLOSE_WAIT 795/traffic_stats
tcp 32 0 10.63.115.225:52842 10.63.115.224:443 CLOSE_WAIT 795/traffic_stats

Author: Zhilin Huang
JIRA Link: https://issues.apache.org/jira/browse/TC-373

[TC-291] GenIso can't handle concurrent requests

Because GenIso always changes the same files (no temporary directories created), it can't handle concurrent requests. We sometimes send commands to create 10 Edge Caches at the same time and we found out that the wrong IP address shows up on servers.

I've got the code to fix it up (but need to sign our paperwork). But our GenIso.pm now deviates from what's in Traffic Ops because we wanted to keep the 1.0.0 functionality (don't use the install_cfg directory, keep using the simple network line).

Suggestion: We should have a parameter to call different ISO generator scripts. Seems like this is implementation specific and not really a core function of Traffic Ops.

Basic changes :

use File::Temp;
use File::Copy::Recursive;

my $tmpdir = File::Temp::tempdir(CLEANUP => 1);
...
GenIso.pm: my $tmp = File::Copy::Recursive::dircopy($dir,$tmpdir);
GenIso.pm: my $cfg_dir = "$tmpdir/$install_cfg";
GenIso.pm: print STUF "Dir== $tmpdir\n";
GenIso.pm: my $cmd = "mkisofs -joliet-long -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T $tmpdir";
GenIso.pm: open(IN, "<$tmpdir/ks.src") || die("$tmpdir/ks.src:$!");
GenIso.pm: open (OUT, ">$tmpdir/ks.cfg") || die("$tmpdir/ks.cfg:$!");
GenIso.pm: File::Path::rmtree $tmpdir;

Author: Dewayne Richardson
JIRA Link: https://issues.apache.org/jira/browse/TC-291
Found Version: 2.1.0

[TC-197] File descriptor leak caused by NIO protocol connector

The new default configuration for Traffic Router and Tomcat is to use the Http11NioProtocol adapter over the previous Http11Protocol adapter. This is accomplished via the LanguidNioProtocol connectors specified in Tomcat's server.xml.

We observed a file descriptor leak with connections, but have not dug into the cause. We observed roughly 30-40k connections in CLOSE_WAIT which caused the machine to exhaust its file descriptors based upon configured limits. We also observed a similar growth curve on total threads, so something is not behaving and being cleaned up appropriately.

The cause could range from a bug in the Http11NioProtocol connector due to the ancient version of Tomcat we're using, tuning within the connector itself (max threads, intervals, etc), tuning within the JVM (memory, GC, etc), or at the OS level (kernel params around TCP connections, etc).

Author: Jeff Elsloo
JIRA Link: https://issues.apache.org/jira/browse/TC-197
Found Version: 2.1.0

[TC-510] cannot apply ipv6 on delivery services

attempt to change ipv6 flag from ipv4 to ipv6 results in a / unable to update delivery service.

on trafficops, 2.1.0-6566.3980b417.el7 Also receive following error:

Traffic Ops fatal error occurred while processing your request. 
Error at line 50 (    %= field('ds.cdn_id')->select( \@{$cdns} );) 
Global symbol "$cdns" requires explicit package name at template delivery_service/_form.html.ep line 50. Global symbol "$profiles" requires explicit package name at template delivery_service/_form.html.ep line 375.

Author: Sean Aoyagi
JIRA Link: https://issues.apache.org/jira/browse/TC-510
Found Version: 2.1.0

[TC-534] Traffic Router statistics are not aggregated

Looks like some of the stats APIs related to Traffic Router don't return proper data when there is more than 1 instance of Traffic Router (or will return data for OFFLINE TR).

This would affect statistics for Traffic Portal as an example.

Looking at the code, it doesn't seem to cycle through all the request routers available to get statistics from a Delivery Service as an example.

Known affected APIs :
/api/1.2/deliveryservices/:id/routing.json

Few things to take in consideration

  • Skip OFFLINE traffic routers (I believe it does skip them today)
  • Skip unreachable traffic routers
  • Need to aggregate data? Numbers from `/api/1.2/deliveryservices/:id/routing.json` seems to be percentages. Does it matter to get an average from all request routers?

Note: I don't have full knowledge of what was intended by this API.

Author: Steve Malenfant
JIRA Link: https://issues.apache.org/jira/browse/TC-534
Found Version: 2.1.0

[TC-157] Failed to restart tomcat in Traffic Router when failed to get SSL keys

Stopping tomcat failed with the following log:

WARN 2017-02-17T09:00:05.939 [main] com.comcast.cdn.traffic_control.traffic_router.core.secure.CertificatesPublisher - Detected destroy setting running to false
INFO 2017-02-17T09:00:05.943 [pool-2-thread-1] com.comcast.cdn.traffic_control.traffic_router.core.secure.CertificatesClient - Interrupted while pausing for check of traffic ops config
INFO 2017-02-17T09:00:05.943 [pool-2-thread-1] com.comcast.cdn.traffic_control.traffic_router.core.util.Fetcher - POSTing: https://192.168.122.181/api/1.1/user/login; timeout is 15000
INFO 2017-02-17T09:00:06.005 [pool-2-thread-1] com.comcast.cdn.traffic_control.traffic_router.core.util.Fetcher - GETing: https://192.168.122.181/api/1.2/cdns/name/kabletown_cdn/sslkeys.jso
n; timeout is 15000
WARN 2017-02-17T09:00:06.040 [pool-2-thread-1] com.comcast.cdn.traffic_control.traffic_router.core.util.Fetcher - Failed Http Request to https://192.168.122.181/api/1.2/cdns/name/kabletown_
cdn/sslkeys.json Status 400

Author: Zhilin Huang
JIRA Link: https://issues.apache.org/jira/browse/TC-157
Found Version: 2.1.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.