[ 
https://issues.apache.org/jira/browse/TS-4399?focusedWorklogId=30904&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-30904
 ]

ASF GitHub Bot logged work on TS-4399:
--------------------------------------

                Author: ASF GitHub Bot
            Created on: 20/Oct/16 03:47
            Start Date: 20/Oct/16 03:47
    Worklog Time Spent: 10m 
      Work Description: Github user jpeach commented on a diff in the pull 
request:

    https://github.com/apache/trafficserver/pull/1073#discussion_r84208238
  
    --- Diff: cmd/traffic_manager/traffic_manager.cc ---
    @@ -611,31 +614,35 @@ main(int argc, const char **argv)
     
       /* Update cmd line overrides/environmental overrides/etc */
       if (tsArgs) { /* Passed command line args for proxy */
    +    char* new_proxy_opts = new char[strlen(lmgmt->proxy_options) + 
strlen(tsArgs) + 1];
    +    strcpy(new_proxy_opts, lmgmt->proxy_options);
    +    strcat(new_proxy_opts, tsArgs);
         ats_free(lmgmt->proxy_options);
    -    lmgmt->proxy_options = tsArgs;
    -    mgmt_log("[main] Traffic Server Args: '%s'\n", lmgmt->proxy_options);
    +    lmgmt->proxy_options = new_proxy_opts;
       }
     
    -  // we must pass in bind_stdout and bind_stderr values to TS
    -  // we do it so TS is able to create BaseLogFiles for each value
    +  // TS needs to be started up with the same outputlog bindings each time,
    +  // so we append the outputlog location to the persistent proxy options
    +  //
    +  // TS needs them to be able to create BaseLogFiles for each value
       if (*bind_stdout != 0) {
    -    size_t l = strlen(lmgmt->proxy_options);
    -    size_t n = 3                            /* " --" */
    -               + sizeof(TM_OPT_BIND_STDOUT) /* nul accounted for here */
    -               + 1                          /* space */
    -               + strlen(bind_stdout);
    -    lmgmt->proxy_options = static_cast<char 
*>(ats_realloc(lmgmt->proxy_options, n + l));
    -    snprintf(lmgmt->proxy_options + l, n, " --%s %s", TM_OPT_BIND_STDOUT, 
bind_stdout);
    +    const char *bind_stdout_opt = " --" TM_OPT_BIND_STDOUT " ";
    +    char *new_proxy_opts = new char[strlen(lmgmt->proxy_options) + 
strlen(bind_stdout_opt) + strlen(bind_stdout) + 1];
    +    strcpy(new_proxy_opts, lmgmt->proxy_options);
    +    strcat(new_proxy_opts, bind_stdout_opt);
    +    strcat(new_proxy_opts, bind_stdout);
    +    delete lmgmt->proxy_options;
    +    lmgmt->proxy_options = new_proxy_opts;
       }
     
       if (*bind_stderr != 0) {
    -    size_t l = strlen(lmgmt->proxy_options);
    -    size_t n = 3                            /* space dash dash */
    -               + sizeof(TM_OPT_BIND_STDERR) /* nul accounted for here */
    -               + 1                          /* space */
    -               + strlen(bind_stderr);
    -    lmgmt->proxy_options = static_cast<char 
*>(ats_realloc(lmgmt->proxy_options, n + l));
    -    snprintf(lmgmt->proxy_options + l, n, " --%s %s", TM_OPT_BIND_STDERR, 
bind_stderr);
    +    const char *bind_stderr_opt = " --" TM_OPT_BIND_STDERR " ";
    +    char *new_proxy_opts = new char[strlen(lmgmt->proxy_options) + 
strlen(bind_stderr_opt) + strlen(bind_stderr) + 1];
    +    strcpy(new_proxy_opts, lmgmt->proxy_options);
    +    strcat(new_proxy_opts, bind_stderr_opt);
    +    strcat(new_proxy_opts, bind_stderr);
    +    delete lmgmt->proxy_options;
    --- End diff --
    
    You should not mix new/delete and malloc/free here. But this problem goes 
away with the text buffer.


Issue Time Tracking
-------------------

    Worklog Id:     (was: 30904)
    Time Spent: 1h  (was: 50m)

> Management API breaks diagnostic log rotation
> ---------------------------------------------
>
>                 Key: TS-4399
>                 URL: https://issues.apache.org/jira/browse/TS-4399
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Logging, Management API
>            Reporter: James Peach
>            Assignee: Daniel Xu
>             Fix For: 7.1.0
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> Start up Traffic Server:
> {code}
>     0 26950     1   0 10:13AM ??         0:00.01 /opt/ats/bin/traffic_cop
>    -2 26951 26950   0 10:13AM ??         0:00.02 /opt/ats/bin/traffic_manager 
> --bind_stdout /opt/ats/var/log/trafficserver/traffic.out --bind_stderr 
> /opt/ats/var/log/trafficserver/traffic.out
>    -2 26952 26951   0 10:13AM ??         0:00.08 /opt/ats/bin/traffic_server 
> -M --bind_stdout /opt/ats/var/log/trafficserver/traffic.out --bind_stderr 
> /opt/ats/var/log/trafficserver/traffic.out --httpport 8080:fd=12
> {code}
> Now restart it using {{traffic_line -S}} followed by {{traffic_line -U}}:
> {code}
>     0 26950     1   0 10:13AM ??         0:00.01 /opt/ats/bin/traffic_cop
>    -2 26951 26950   0 10:13AM ??         0:00.05 /opt/ats/bin/traffic_manager 
> --bind_stdout /opt/ats/var/log/trafficserver/traffic.out --bind_stderr 
> /opt/ats/var/log/trafficserver/traffic.out
>    -2 26967 26951   0 10:13AM ??         0:00.12 /opt/ats/bin/traffic_server 
> -M --httpport 8080:fd=20
> {code}
> Note that we lost the {{\--bind_stdout}} and {{\--bind_stderr}} options.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to