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

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

                Author: ASF GitHub Bot
            Created on: 19/Sep/16 15:59
            Start Date: 19/Sep/16 15:59
    Worklog Time Spent: 10m 
      Work Description: Github user jpeach commented on a diff in the pull 
request:

    https://github.com/apache/trafficserver/pull/1028#discussion_r79424573
  
    --- Diff: iocore/cache/Cache.cc ---
    @@ -2000,6 +2000,12 @@ CacheProcessor::mark_storage_offline(CacheDisk *d 
///< Target disk
       uint64_t total_dir_delete   = 0;
       uint64_t used_dir_delete    = 0;
     
    +  /* Don't mark it again, it will invalidate the stats! */
    +  if (d->offline) {
    +    return this->has_online_storage();
    +  }
    +  d->offline = true;
    --- End diff --
    
    Why do yo introduce a new flag rather than making the code conditional on 
the ``DISK_BAD`` check? e.g.
    ```C
    if (!DISK_BAD(d)) {
      SET_DISK_BAD(d);
    
      // Do all the other stuff ...
    }
    ```


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

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

> Storage can be marked offline multiple times which breaks related metrics
> -------------------------------------------------------------------------
>
>                 Key: TS-4870
>                 URL: https://issues.apache.org/jira/browse/TS-4870
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Cache, Metrics
>            Reporter: Gancho Tenev
>            Assignee: Gancho Tenev
>             Fix For: 7.1.0
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> Let us say traffic server is running with 2 disks
> {code}
> $ cat etc/trafficserver/storage.config
> /dev/sdb
> /dev/sdc
> $ sudo fdisk -l|grep 'Disk /dev/sd[b|c]'
> Disk /dev/sdb: 134 MB, 134217728 bytes
> Disk /dev/sdc: 134 MB, 134217728 bytes
> {code}
> Let us see what happens when we mark the same disk 3 times in a raw 
> ({{/dev/sdb}}) and check the {{proxy.node.cache.bytes_total}}.
> {code}
> # Initial cache size (when using both disks).
> $ ./bin/traffic_ctl metric get proxy.node.cache.bytes_total
> proxy.node.cache.bytes_total 268025856
> # Take 1st disk offline. Cache size changes as expected.
> $ sudo ./bin/traffic_ctl storage offline /dev/sdb
> $ ./bin/traffic_ctl metric get proxy.node.cache.bytes_total
> proxy.node.cache.bytes_total 134012928
> # Take same disk offline again. Not good!
> $ sudo ./bin/traffic_ctl storage offline /dev/sdb
> $ ./bin/traffic_ctl metric get proxy.node.cache.bytes_total
> proxy.node.cache.bytes_total 0
> # Take same disk offline again. Negative value.
> $ sudo ./bin/traffic_ctl storage offline /dev/sdb
> $ ./bin/traffic_ctl metric get proxy.node.cache.bytes_total
> proxy.node.cache.bytes_total -134012928
> {code}



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

Reply via email to