[
https://issues.apache.org/jira/browse/TS-2344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13919467#comment-13919467
]
Ethan Lai commented on TS-2344:
-------------------------------
[~bcall]
1. Class URL(redirect_url) is not holding a NULL terminated string, just get
its reference might cause thereafter MIME_FIELD_LOCATION length,
strlen(s->remap_redirect), mis-counted.
2. s->hdr_info.client_response is not built till build_response() call, #8111,
inside build_error_response(). If set MIME_FIELD_LOCATION before calling
build_error_response(), it causes segfault.
3.
Current implementation will lookup with no mappings and build "Not Found on
Accelerator"(#915) error response first, then call handleIfRedirect(). This is
why there are 2 error logs which 404 first and 30x followed.
My patch will call handleIfRedirect() right after !s->url_remap_success. If
this is a redirect request, the "Not Found" case will not be reached. This
prevents producing 404 error log. Furthermore, since the error logs were
produced inside build_error_response(), I thought redirect responses were not
errors and error logs are not needed.
About the MIME_FIELD_LOCATION setting, this MIME field must be set before
calling body_factory->fabricate_with_old_api(), #8176. Or the %<{Location}psh>
field in response body will be empty. This is another reason I move setting
the location header into build_error_response().
Thanks,
-Ethan
> 404 error was logged while url redirect request was processed corrctly
> ----------------------------------------------------------------------
>
> Key: TS-2344
> URL: https://issues.apache.org/jira/browse/TS-2344
> Project: Traffic Server
> Issue Type: Bug
> Components: Logging
> Reporter: Eddie
> Assignee: Bryan Call
> Labels: Review
> Fix For: 5.2.0
>
>
> I am seeing a lot of entries in the error log for my url redirect request.
> The request was processed correctly and I could see the expected response in
> log as below:
> 2013-11-08 18:23:37 <IP> 301 FIN http://yahoo.com
> http://www.yahoo.com/
> But log messages like following were printed in the error log too, which
> generates a lot of error logs (log rotation configured) and filling up disk
> space pretty fast.
> 20131108.18h23m37s RESPONSE: sent <IP> status 404 (Not Found on
> Accelerator) for 'http:///'
> 20131108.18h23m37s RESPONSE: sent <IP> status 301 (Redirect)
> for 'http:///'
> I watched my tcpdump log and did not see that the 404 error was sent out at
> all. I am using ATS/3.2.4 (also checked with I am seeing a lot of entries in
> the error log for my url redirect request. The request was processed correctly
> I could see the expected response in log as well:
> 2013-11-08 18:23:37 <IP> 301 FIN http://yahoo.com
> http://www.yahoo.com/
> But log messages like following were printed too:
> 20131108.18h23m37s RESPONSE: sent <IP> status 404 (Not Found on
> Accelerator) for 'http:///'
> 20131108.18h23m37s RESPONSE: sent <IP> status 301 (Redirect)
> for 'http:///'
> I watched my tcpdump log and did not see that the 404 error was sent out at
> all. I am using ATS/3.2.4 and following
> is the log configuration.
> CONFIG proxy.config.log.logging_enabled INT 3
> CONFIG proxy.config.log.max_secs_per_buffer INT 1
> CONFIG proxy.config.log.max_space_mb_for_logs INT 25000
> CONFIG proxy.config.log.max_space_mb_for_orphan_logs INT 25
> CONFIG proxy.config.log.max_space_mb_headroom INT 1000
> CONFIG proxy.config.log.hostname STRING localhost
> CONFIG proxy.config.log.logfile_dir STRING var/log/trafficserver
> CONFIG proxy.config.log.logfile_perm STRING rw-r--r--
> CONFIG proxy.config.log.custom_logs_enabled INT 1
> CONFIG proxy.config.log.squid_log_enabled INT 0
> CONFIG proxy.config.log.squid_log_is_ascii INT 0
> CONFIG proxy.config.log.squid_log_name STRING squid
> CONFIG proxy.config.log.squid_log_header STRING NULL
> CONFIG proxy.config.log.common_log_enabled INT 0
> CONFIG proxy.config.log.common_log_is_ascii INT 1
> CONFIG proxy.config.log.common_log_name STRING common
> CONFIG proxy.config.log.common_log_header STRING NULL
> CONFIG proxy.config.log.extended_log_enabled INT 0
> CONFIG proxy.config.log.extended_log_is_ascii INT 0
> CONFIG proxy.config.log.extended_log_name STRING extended
> CONFIG proxy.config.log.extended_log_header STRING NULL
> CONFIG proxy.config.log.extended2_log_enabled INT 0
> CONFIG proxy.config.log.extended2_log_is_ascii INT 1
> CONFIG proxy.config.log.extended2_log_name STRING extended2
> CONFIG proxy.config.log.extended2_log_header STRING NULL
> CONFIG proxy.config.log.separate_icp_logs INT 0
> CONFIG proxy.config.log.separate_host_logs INT 0
> Is this a bug or is this a misconfiguration? Does anyone have any idea?) and
> following is the log configuration.
> CONFIG proxy.config.log.logging_enabled INT 3
> CONFIG proxy.config.log.max_secs_per_buffer INT 1
> CONFIG proxy.config.log.max_space_mb_for_logs INT 25000
> CONFIG proxy.config.log.max_space_mb_for_orphan_logs INT 25
> CONFIG proxy.config.log.max_space_mb_headroom INT 1000
> CONFIG proxy.config.log.hostname STRING localhost
> CONFIG proxy.config.log.logfile_dir STRING var/log/trafficserver
> CONFIG proxy.config.log.logfile_perm STRING rw-r--r--
> CONFIG proxy.config.log.custom_logs_enabled INT 1
> CONFIG proxy.config.log.squid_log_enabled INT 0
> CONFIG proxy.config.log.squid_log_is_ascii INT 0
> CONFIG proxy.config.log.squid_log_name STRING squid
> CONFIG proxy.config.log.squid_log_header STRING NULL
> CONFIG proxy.config.log.common_log_enabled INT 0
> CONFIG proxy.config.log.common_log_is_ascii INT 1
> CONFIG proxy.config.log.common_log_name STRING common
> CONFIG proxy.config.log.common_log_header STRING NULL
> CONFIG proxy.config.log.extended_log_enabled INT 0
> CONFIG proxy.config.log.extended_log_is_ascii INT 0
> CONFIG proxy.config.log.extended_log_name STRING extended
> CONFIG proxy.config.log.extended_log_header STRING NULL
> CONFIG proxy.config.log.extended2_log_enabled INT 0
> CONFIG proxy.config.log.extended2_log_is_ascii INT 1
> CONFIG proxy.config.log.extended2_log_name STRING extended2
> CONFIG proxy.config.log.extended2_log_header STRING NULL
> CONFIG proxy.config.log.separate_icp_logs INT 0
> CONFIG proxy.config.log.separate_host_logs INT 0
> Is this a bug or is this a misconfiguration? Does anyone have any idea?
> Also, I noticed that with ATS/4.0.1, if there is no URL redirect rule defined
> in remap.config, I will not see the following response back as ATS 3.2.4:
> HTTP/1.1 404 Not Found on Accelerator
> Date: Wed, 13 Nov 2013 14:18:19 GMT
> Connection: close
> Server: ATS/3.2.4
> Cache-Control: no-store
> Content-Type: text/html
> Content-Language: en
> Content-Length: 240
> Is this intentional?
--
This message was sent by Atlassian JIRA
(v6.2#6252)