[
https://issues.apache.org/jira/browse/HBASE-29384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Junegunn Choi resolved HBASE-29384.
-----------------------------------
Fix Version/s: 2.7.0
3.0.0-beta-2
2.6.3
2.5.12
Resolution: Fixed
> Async Profiler occasionally fails to capture profiling data
> -----------------------------------------------------------
>
> Key: HBASE-29384
> URL: https://issues.apache.org/jira/browse/HBASE-29384
> Project: HBase
> Issue Type: Bug
> Components: master, regionserver
> Reporter: JinHyuk Kim
> Assignee: JinHyuk Kim
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.7.0, 3.0.0-beta-2, 2.6.3, 2.5.12
>
>
> h3. *Problem*
> When using the HBase Web UI to start async-profiler, the profiler works
> correctly on some RegionServers, but on others, the SVG result is never
> rendered and the page keeps refreshing indefinitely.
> h3. *Root Cause*
> Currently, the profiler output (SVG) is written to the
> {{/tmp/prof-output-hbase}} directory, which is created only once when the
> RegionServer starts. However, since {{/tmp}} is often subject to periodic
> cleanup by the OS (e.g., via {{systemd-tmpfiles-clean}} on Linux), this
> directory can be removed after some time.
> As a result, if async-profiler is not used for a while after the RegionServer
> starts, the output directory may no longer exist when profiling is requested.
> In that case, the profiler fails with an error message, and no SVG result is
> generated.
> The error message looks like
> {code:java}
> Could not open /tmp/prof-output-hbase/async-prof-pid-xxxxxx-cpu-1.svg{code}
> related code:
> https://github.com/async-profiler/async-profiler/blob/v1.8.8/src/profiler.cpp#L1246
> h3. *Solution*
> We can ensure that the profiler output directory exists every time profiling
> is requested.
> {{ProfilerServlet}} now checks for the existence of the output directory and
> creates it if it has been deleted.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)