My understanding as well is that async-profiler collects samples with the thread ID, then does the lookup of thread ID to name when the JFR output is produced, so there could be misleading profile results if a thread is renamed between execution sample and output generation. I haven’t noticed a case of this before, but it does seem like an existing issue.
So I’m supportive of defaulting thread renaming in SEPExecutor to off, and we can always support a toggle via JMX hot-prop so names can be available during profile collection.
