Skip to content

Conversation

@SirYwell
Copy link
Contributor

@SirYwell SirYwell commented Feb 8, 2024

In essence, this PR updates async-profiler to the recently version 3.0.

One main change is that we now don't pull the API from jitpack anymore, but from maven central using the official coordinates (hard to find tbh, but see async-profiler/async-profiler#93 (comment)).

Notable changes:

  • This dependency already contains the .so files, so we don't need to include them manually anymore. However, the path changed, but I guess that's fine.
  • For amd64, glibc and musl are now supported with one file (since 3.0).
  • JfrReader was outdated/not able to parse new profiles anymore. I copied the current changes, only keeping the changes with a // spark comment

There are a few things that could be considered following this PR:

I tested the changes on linux amd64 and linux arm64.

@lucko
Copy link
Owner

lucko commented Feb 28, 2024

Happy to merge this, but I think I will wait for v3.1 to drop as there are some commits / bug fixes that have been made since the 3.0 release which I think would be good to have.

@lucko
Copy link
Owner

lucko commented Oct 20, 2024

Test builds

These are using the latest nightly build from async-profiler (currently 6bd9dfa) - https://github.com/async-profiler/async-profiler/releases/tag/nightly

spark-1.10.113-bukkit.jar.zip
spark-1.10.113-bungeecord.jar.zip
spark-1.10.113-fabric.jar.zip
spark-1.10.113-forge.jar.zip
spark-1.10.113-neoforge.jar.zip
spark-1.10.113-velocity.jar.zip
spark-1.10.113-sponge.jar.zip

Especially interested to hear feedback from anyone using "special" installations, e.g. musl Linux (usually in Alpine docker containers) or OpenJ9 JVMs.

@Teslicek
Copy link

spark-1.10.113-bukkit.jar.zip
Especially interested to hear feedback from anyone using "special" installations, e.g. musl Linux (usually in Alpine docker containers) or OpenJ9 JVMs.

Tested with Java Oracle GraalVM 23 in a pterodactyl container using Debian 12.
Minecraft server version was 1.21.1.

No crashes or issues during local testing. Will proceed to upload it to the production server and see what happens.

@flerouwu
Copy link

flerouwu commented Oct 21, 2024

The test builds appear to be working as intended for Velocity and a Paper 1.21.1 server with GraalVM Java 23.

The servers are running as Pterodactyl servers using images found at https://github.com/ProtobitMC/pterodactyl-graalvm.

Thanks for working on a fix!

@Teslicek
Copy link

Been running this on the production server for a few days now, no issues, would consider stable.

@rafi67000
Copy link

rafi67000 commented Nov 14, 2024

I tested it with GraalVM23, custom paper fork 1.8.9 and everything works fine.
Ubuntu 22.04 aarch64 (Debian 12 container)

@lucko lucko merged commit 368ba2f into lucko:master Nov 21, 2024
3 checks passed
@SirYwell SirYwell deleted the chore/ap-3.0 branch November 21, 2024 13:29
@Georggi
Copy link

Georggi commented Jan 27, 2025

Can forge-1.7.10 branch be updated for this as well? Would be greatly appreciated.

@Bristopher
Copy link

Bristopher commented Feb 7, 2025

Any planned async 3.0 nightly support for forge-1.20.1? Keep getting crashes on my server using async. If it's a similar release to 1.21.3 maybe I can help.

fonnymunkey pushed a commit to fonnymunkey/SparkUnforged that referenced this pull request Jul 9, 2025
Fixed typo in Configuration.getInteger (lucko#353)

Fix parsing null async profiler segments (lucko#354)

Use a different websocket library

Clarify command timeout warning msg

Don't try to send statistics to a closed socket (lucko#357)

Bump adventure versions

Add note to /spark profiler open about expiry time

Bump common dependency versions

Tweak formatting of /spark profiler open note

Include server brand in viewer payloads

Add caveat to warning msg about Java agents

Ignore trailing sleeping samples for duration estimation (lucko#413)

Use WeakReference for command senders (lucko#417)

Refactor ClassFinder into interface

Add JVM information to viewer metadata

Redact username from vm args (lucko#423)

Add placeholder resolver API

Include gamerule settings in metadata (lucko#425)

Add some unit tests

Check for async command completion before sleeping (lucko#431)

Cleanup spark tmp dir on startup

Add more automated tests

Add missing license headers

Relocate net.kyori.option package (lucko#432)

Add uploadable health report (lucko#436)

Allow mod/plugin author field to be null (lucko#442)

Improve unit tests

Refactor sampler node export process

Include engine type in sampler proto

Include datapacks info in sampler proto

Include memory stats in ws updates

Fix activity log unit test

Improve error logging in various places

Tidy up NeoForge/Forge mod init

Support --ignore-sleeping with async-profiler (lucko#467)

Upgrade async-profiler to v3 (lucko#386)

Implement standalone profiling agent (lucko#480)

Fix standalone attach on Windows (lucko#484)

Add extra package relocations for standlone agent (lucko#488)

Support --only-ticks-over with async-profiler (lucko#470)

Upgrade async-profiler to v4

Fix name of temp directory (lucko#502)

Optimise WorldStatisticsProvider regionising (lucko#506)

Fix division by zero error in TPS calculation (lucko#507)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants