[
https://issues.apache.org/jira/browse/TS-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15250040#comment-15250040
]
John Rushford edited comment on TS-3214 at 4/20/16 3:14 PM:
------------------------------------------------------------
Luca,
What version of ATS are you running? I'm testing with the latest version 6.2.x
on a reverse proxy and I have the following configuration:
{code:title=Config|borderStyle=solid}
records.config:
CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 0
CONFIG proxy.config.url_remap.remap_required INT 1
remap.config:
map http://john-atsmid-01.cdnlab.comcast.net/
http://john-atsmid-01.cdnlab.comcast.net:8080/
parent.config:
url_regex="^http://john-atsmid-01.cdnlab.comcast.net" port="8080"
parent="john-client-01.cdnlab.comcast.net:8080|1.0"
{code}
When I run the following curls, I have no problem. The parent is selected, and
I get back a proper response, HTTP 200 OK.
{code}
curl -Lv
http://john-atsmid-01.cdnlab.comcast.net/vod/t/prog_index.m3u8?app_id=2232&test_id=777
{code}
I notice that in your extended2.log that the first request is okay but the next
two requests have the port modifier of ':9090' and that those are failing to
connect. Can you describe your environment and what ATS version you are using?
Also, if you're able to, can you run with debug enabled and a debug string of
'parent_select' and send me the traffic.out log entries for your requests?
was (Author: jrushford):
Luca,
What version of ATS are you running? I'm testing with the latest version 6.2.x
on a reverse proxy and I have the following configuration:
{code:title=Config|borderStyle=solid}
records.config:
CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 0
CONFIG proxy.config.url_remap.remap_required INT 1
remap.config:
map http://john-atsmid-01.cdnlab.comcast.net/
http://john-atsmid-01.cdnlab.comcast.net:8080/
parent.config:
url_regex="^http://john-atsmid-01.cdnlab.comcast.net" port="8080"
parent="john-client-01.cdnlab.comcast.net:8080|1.0"
{code}
When I run the following curls, I have no problem. The parent is selected, and
I get back a proper response, HTTP 200 OK.
{code}
curl -Lv
http://john-atsmid-01.cdnlab.comcast.net/vod/t/prog_index.m3u8?app_id=2232&test_id=777
{code}
I notice that in your extended2.log that the first request is okay but the next
two requests have the port modifier of ':9090' and that those are failing to
connect. Can you describe your environment and what ATS version you are using?
> request is not forwarded to parent
> ----------------------------------
>
> Key: TS-3214
> URL: https://issues.apache.org/jira/browse/TS-3214
> Project: Traffic Server
> Issue Type: Bug
> Components: Core
> Reporter: Luca Rea
> Assignee: John Rushford
> Fix For: sometime
>
>
> Hi,
> I've added the directive "CONFIG
> proxy.config.http.cache.cache_urls_that_look_dynamic INT 0" because of
> TS-3212 but now some rules of parent.config don't work anymore:
> destination:
> {code}
> opmanager.tomatowin.local resolved as 172.20.5.250
> {code}
> the rule below worked fine
> {code}
> url_regex="^http://opmanager.tomatowin.local" port="8080"
> parent="192.168.242.250:8080"
> {code}
> now it returns errors:
> {code}
> 172.17.0.153 - - [26/Nov/2014:10:00:04 +0100] "GET
> http://opmanager.tomatowin.local/overview.do?selectedTab=Home&fromLogin=true
> HTTP/1.1" 502 0 000 0 0 0 2090 0 2090 0 0 DIRECT FIN INTR ERR_CONNECT_FAIL
> 172.17.0.153 - - [26/Nov/2014:10:00:04 +0100] "GET
> http://opmanager.tomatowin.local/overview.do?selectedTab=Home&fromLogin=true
> HTTP/1.1" 502 247 000 0 0 0 2090 209 2090 0 6 DIRECT FIN INTR ERR_CONNECT_FAIL
> {code}
> debug:
> {code}
> +++++++++ Incoming Request +++++++++
> -- State Machine Id: 1
> GET
> http://opmanager.tomatowin.local/overview.do?selectedTab=Home&fromLogin=true
> HTTP/1.1
> Host: opmanager.tomatowin.local
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101
> Firefox/33.0
> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
> Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
> Accept-Encoding: gzip
> Referer: http://opmanager/LoginPage.do
> Cookie: testcookie=; am_username=; am_check=;
> defaultSnapshotDetailsTab=DeviceDetails; defaultSnapshotMNITabs=monitorsList;
> MNIAtabs=monitorsList; SelectedMonitor=Performance;
> defaultReportDetails=true; encryptPassForAutomaticSignin=C70z
> 38bn081C7; userNameForAutomaticSignin=admlrea;
> domainNameForAutomaticSignin=TOMATOWIN; isADAuth=true;
> signInAutomatically=true;
> monitordnd=%5B%7Bbay%3A%27DRAG_APPEND_1%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_1%27%2Cstate%3A%27on%27%2Ccontent
> %3A%27show%27%7D%2C%7Btab%3A%27DRAG_9%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_2%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_7%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_11%27%2Cstat
> e%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_3%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_3%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_4%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%
> 3A%27DRAG_13%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_4%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_6%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_12%27%2Cstate%3A%27on%27%2Ccontent%3A
> %27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_5%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_8%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_10%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%5D;
> allResourceTable_sortdi
> r=down; defaultIntfSnapshotDetailsTab=IntfNotes;
> flashversionInstalled=15.0.0; JSESSIONID=AD1C5525F00C724FF561D205CA54D4FE;
> OPUTILSTICKET=e8ed98176f600c28ce7ec4fdd489ef53;
> NPMTICKET=345ddb60eba824cd3dac253197a73e90
> Connection: keep-alive
> Cache-Control: max-age=0
> [Nov 26 10:02:27.216] Server {0x2ac9a1e0c700} DEBUG: (http_trans) Next action
> SM_ACTION_DNS_LOOKUP; OSDNSLookup
> [Nov 26 10:02:27.216] Server {0x2ac9a1e0c700} DEBUG: (http) [1] State
> Transition: SM_ACTION_API_POST_REMAP -> SM_ACTION_DNS_LOOKUP
> [Nov 26 10:02:27.216] Server {0x2ac9a1e0c700} DEBUG: (http_seq)
> [HttpSM::do_hostdb_lookup] Doing DNS Lookup
> [Nov 26 10:02:27.236] Server {0x2ac9a1e0c700} DEBUG: (dns) received query
> opmanager.tomatowin.local type = 1, timeout = 0
> [Nov 26 10:02:27.236] Server {0x2ac9a0c6ff00} DEBUG: (dns) enqueing query
> opmanager.tomatowin.local
> [Nov 26 10:02:27.236] Server {0x2ac9a0c6ff00} DEBUG: (dns) adding first to
> collapsing queue
> [Nov 26 10:02:27.236] Server {0x2ac9a0c6ff00} DEBUG: (dns) send query
> (qtype=1) for opmanager.tomatowin.local to fd 49
> [Nov 26 10:02:27.236] Server {0x2ac9a0c6ff00} DEBUG: (dns) sent qname =
> opmanager.tomatowin.local, id = 947, nameserver = 0
> [Nov 26 10:02:27.236] Server {0x2ac9a0c6ff00} DEBUG: (dns) sent_one:
> failover_number for resolver 0 is 1
> [Nov 26 10:02:27.237] Server {0x2ac9a0c6ff00} DEBUG: (dns) received packet
> size = 506
> [Nov 26 10:02:27.237] Server {0x2ac9a0c6ff00} DEBUG: (dns) round-robin:
> nameserver 0 DNS response code = 0
> [Nov 26 10:02:27.237] Server {0x2ac9a0c6ff00} DEBUG: (dns) received A name =
> opmanager.tomatowin.local
> [Nov 26 10:02:27.237] Server {0x2ac9a0c6ff00} DEBUG: (dns) received A =
> 172.20.5.250
> [Nov 26 10:02:27.237] Server {0x2ac9a0c6ff00} DEBUG: (dns) SUCCESS result for
> opmanager.tomatowin.local = 172.20.5.250 retry 0
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (dns) called back
> continuation for opmanager.tomatowin.local
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1]
> [HttpSM::main_handler, EVENT_HOST_DB_LOOKUP]
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1]
> [&HttpSM::state_hostdb_lookup, EVENT_HOST_DB_LOOKUP]
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [ink_cluster_time] local: 1416992547, highest_delta: 0, cluster: 1416992547
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [HttpTransact::OSDNSLookup] This was attempt 1
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_seq)
> [HttpTransact::OSDNSLookup] DNS Lookup successful
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [OSDNSLookup] DNS lookup for O.S. successful IP: 172.20.5.250
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans) Next action
> SM_ACTION_API_OS_DNS; HttpTransact::DecideCacheLookup
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1] State
> Transition: SM_ACTION_DNS_LOOKUP -> SM_ACTION_API_OS_DNS
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [DecideCacheLookup] Will NOT do cache lookup.
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_seq)
> [DecideCacheLookup] Will NOT do cache lookup
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans) Next action
> SM_ACTION_API_CACHE_LOOKUP_COMPLETE; LookupSkipOpenServer
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1] State
> Transition: SM_ACTION_API_OS_DNS -> SM_ACTION_API_CACHE_LOOKUP_COMPLETE
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans) request not
> cacheable, so bypass parent
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> client_ip_set = 0
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans) inserted
> request header 'Client-ip: 172.17.0.153'
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [add_client_ip_to_outgoing_request] Appended connecting client's
> (172.17.0.153) to the X-Forwards header
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [build_request] removing host name from url
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [ink_cluster_time] local: 1416992547, highest_delta: 0, cluster: 1416992547
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [build_request] request_sent_time: 1416992547
> +++++++++ Proxy's Request +++++++++
> -- State Machine Id: 1
> GET /overview.do?selectedTab=Home&fromLogin=true HTTP/1.1
> Host: opmanager.tomatowin.local
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101
> Firefox/33.0
> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
> Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
> Accept-Encoding: gzip
> Referer: http://opmanager/LoginPage.do
> Cookie: testcookie=; am_username=; am_check=;
> defaultSnapshotDetailsTab=DeviceDetails; defaultSnapshotMNITabs=monitorsList;
> MNIAtabs=monitorsList; SelectedMonitor=Performance;
> defaultReportDetails=true; encryptPassForAutomaticSignin=C70z38bn081C7;
> userNameForAutomaticSignin=admlrea; domainNameForAutomaticSignin=TOMATOWIN;
> isADAuth=true; signInAutomatically=true;
> monitordnd=%5B%7Bbay%3A%27DRAG_APPEND_1%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_1%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_9%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_2%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_7%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_11%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_3%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_3%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_4%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_13%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_4%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_6%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_12%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_5%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_8%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_10%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%5D;
> allResourceTable_sortdir=down; defaultIntfSnapshotDetailsTab=IntfNotes;
> flashversionInstalled=15.0.0; JSESSIONID=AD1C5525F00C724FF561D205CA54D4FE;
> OPUTILSTICKET=e8ed98176f600c28ce7ec4fdd489ef53;
> NPMTICKET=345ddb60eba824cd3dac253197a73e90
> Cache-Control: max-age=0
> Client-ip: 172.17.0.153
> X-Forwarded-For: 172.17.0.153
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans) Next action
> next; HttpTransact::HandleResponse
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1] State
> Transition: SM_ACTION_API_CACHE_LOOKUP_COMPLETE ->
> SM_ACTION_ORIGIN_SERVER_OPEN
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_track) entered
> inside do_http_server_open ][IPv4]
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1] open
> connection to opmanager.tomatowin.local: 172.20.5.250:80
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_seq)
> [HttpSM::do_http_server_open] Sending request to server
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http) calling
> netProcessor.connect_re
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1]
> [HttpSM::main_handler, NET_EVENT_OPEN]
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_track) entered
> inside state_http_server_open
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1]
> [&HttpSM::state_http_server_open, NET_EVENT_OPEN]
> [Nov 26 10:02:27.237] Server {0x2ac9a1e0c700} DEBUG: (http_ss) [1] session
> born, netvc 0x2ac9c00158b0
> +++++++++ Proxy's Request after hooks +++++++++
> -- State Machine Id: 1
> GET /overview.do?selectedTab=Home&fromLogin=true HTTP/1.1
> Host: opmanager.tomatowin.local
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101
> Firefox/33.0
> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
> Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
> Accept-Encoding: gzip
> Referer: http://opmanager/LoginPage.do
> Cookie: testcookie=; am_username=; am_check=;
> defaultSnapshotDetailsTab=DeviceDetails; defaultSnapshotMNITabs=monitorsList;
> MNIAtabs=monitorsList; SelectedMonitor=Performance;
> defaultReportDetails=true; encryptPassForAutomaticSignin=C70z38bn081C7;
> userNameForAutomaticSignin=admlrea; domainNameForAutomaticSignin=TOMATOWIN;
> isADAuth=true; signInAutomatically=true;
> monitordnd=%5B%7Bbay%3A%27DRAG_APPEND_1%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_1%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_9%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_2%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_7%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_11%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_3%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_3%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_4%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_13%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_4%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_6%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_12%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%2C%7Bbay%3A%27DRAG_APPEND_5%27%2Cchildren%3A%5B%7Btab%3A%27DRAG_8%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%2C%7Btab%3A%27DRAG_10%27%2Cstate%3A%27on%27%2Ccontent%3A%27show%27%7D%5D%7D%5D;
> allResourceTable_sortdir=down; defaultIntfSnapshotDetailsTab=IntfNotes;
> flashversionInstalled=15.0.0; JSESSIONID=AD1C5525F00C724FF561D205CA54D4FE;
> OPUTILSTICKET=e8ed98176f600c28ce7ec4fdd489ef53;
> NPMTICKET=345ddb60eba824cd3dac253197a73e90
> Cache-Control: max-age=0
> Client-ip: 172.17.0.153
> X-Forwarded-For: 172.17.0.153
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1]
> [HttpSM::main_handler, VC_EVENT_ERROR]
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1]
> [&HttpSM::state_send_server_request_header, VC_EVENT_ERROR]
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http) [1]
> [&HttpSM::handle_server_setup_error, VC_EVENT_ERROR]
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http_ss) [1] session
> closing, netvc 0x2ac9c00158b0
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [HttpTransact::HandleResponse]
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http_seq)
> [HttpTransact::HandleResponse] Response received
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [ink_cluster_time] local: 1416992548, highest_delta: 0, cluster: 1416992548
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [HandleResponse] response_received_time: 1416992548
> +++++++++ Incoming O.S. Response +++++++++
> -- State Machine Id: 1
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http_seq)
> [HttpTransact::HandleResponse] Response not valid
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [handle_response_from_server] (hrfs)
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans) [1] failed
> to connect [5] to 172.20.5.250
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [retry_server_connection_not_open] attempts now: 2, max: 6
> [Nov 26 10:02:28.237] Server {0x2ac9a1e0c700} DEBUG: (http_trans)
> [handle_response_from_server] Error. Retrying...
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)