[ https://issues.apache.org/jira/browse/TS-2156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13750260#comment-13750260 ]
Yunkai Zhang commented on TS-2156: ---------------------------------- No negative impact, since the value will be memset to zero in spawn_event_threads()/spawn_threads(), if one thread doesn't use stats, the value will be zero always. > Stats trap in threads created by spawn_event_threads() and spawn_thread() > ------------------------------------------------------------------------- > > Key: TS-2156 > URL: https://issues.apache.org/jira/browse/TS-2156 > Project: Traffic Server > Issue Type: Improvement > Components: Stats > Reporter: Yunkai Zhang > Fix For: 4.1.0 > > Attachments: > 0001-TS-2156-Fix-stats-trap-in-different-type-of-threads.patch > > > There are two ways to create threads in ATS: > 1) By EventProcessor::spawn_event_threads(), such as ET_NET threads. > 2) By EventProcessor::spawn_thread(), such as flush thread. > But I found that we can't stats the same things across these two type of > threads. > For example, I used the following statement in _checkout_write() to do stats > before add to flusher queue: > {code} > LogBuffer * > LogObject::_checkout_write(size_t * write_offset, size_t bytes_needed) { > ... > LOG_SUM_DYN_STAT(log_stat_bytes_add_to_flush_queue, > buffer->header()->byte_count); > m_buffer_manager[idx].add_to_flush_queue(buffer); > Log::preproc_notify[idx].signal(); > ... > } > {code} > As _checkout_write() function will be executed at ET_NET threads and flush > thread, the stats value will be incomplete -- the value collected in flush > thread will not be merged into the final result. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira