fix(ServerUDPSocket): Delete() leaked detached CAsyncDNS on thread Create/Run failure - #878
Merged
mrjimenez merged 1 commit intoJun 6, 2026
Conversation
…eate/Run failure When the DNS resolver thread fails Create() or Run() before sending a queued UDP server packet, the dropped path released the packet without disposing of the detached wxThread object, leaking the CAsyncDNS heap allocation. Mirror the cleanup pattern already used in DownloadQueue.cpp (lines 1352, 1401). Closes amule-project#876.
got3nks
added a commit
to got3nks/amule
that referenced
this pull request
Jun 7, 2026
…ule-project#912) Extends existing categories (preferring extensions over new lines): - Performance/Upload: amule-project#898 SlotAllocation default raised. - Networking & Discovery: wire-parser hardening list extended with amule-project#879/amule-project#882/amule-project#890/amule-project#886; new amuleweb security hardening bullet consolidating ngosang's amule-project#869-amule-project#874 triage (all landed in amule-project#875); amulegui list extended with amule-project#857; shared-folder watcher extended with amule-project#858. - Packaging: Windows installer i18n line extended with amule-project#899. - Internals & Refactoring: new docs-polish + code-quality bullets covering amule-project#851/amule-project#855/amule-project#862/amule-project#888/amule-project#900/amule-project#866/amule-project#867/amule-project#895 and amule-project#909/amule-project#910/amule-project#912. - Translations: new pre-release final-wave bullet covering amule-project#847/amule-project#856/ amule-project#891/amule-project#908/amule-project#860/amule-project#904/amule-project#859/amule-project#863/amule-project#861/amule-project#880/amule-project#911/amule-project#901/amule-project#902/amule-project#889/amule-project#868/amule-project#853. - Bug Fixes & Stability: amule-project#850/amule-project#854/amule-project#878/amule-project#906. - CI: ccache wiring (amule-project#892, amule-project#903) + CodeQL binutils-dev (amule-project#907). Contributors footer gains mifritscher and nguyenhoangminhhieu2004-gif (both first-time contributors). PR index extended through amule-project#912.
mrjimenez
pushed a commit
that referenced
this pull request
Jun 8, 2026
Extends existing categories (preferring extensions over new lines): - Performance/Upload: #898 SlotAllocation default raised. - Networking & Discovery: wire-parser hardening list extended with #879/#882/#890/#886; new amuleweb security hardening bullet consolidating ngosang's #869-#874 triage (all landed in #875); amulegui list extended with #857; shared-folder watcher extended with #858. - Packaging: Windows installer i18n line extended with #899. - Internals & Refactoring: new docs-polish + code-quality bullets covering #851/#855/#862/#888/#900/#866/#867/#895 and #909/#910/#912. - Translations: new pre-release final-wave bullet covering #847/#856/ #891/#908/#860/#904/#859/#863/#861/#880/#911/#901/#902/#889/#868/#853. - Bug Fixes & Stability: #850/#854/#878/#906. - CI: ccache wiring (#892, #903) + CodeQL binutils-dev (#907). Contributors footer gains mifritscher and nguyenhoangminhhieu2004-gif (both first-time contributors). PR index extended through #912.
got3nks
added a commit
to got3nks/amule
that referenced
this pull request
Aug 9, 2026
The remote GUI feeds every list from the same poll whether or not its panel is on screen. A list sorted on a column whose values move -- speed, transferred, requests -- marks a re-sort pending on each update, so one reply re-sorts the downloads, shared-files, sources and peers lists in full, once or twice a second, of which at most one is visible. Measured with a probe on a modest setup (1228 shared files, 3 downloads): 150 polls produced 696 full sorts, 143 of the 156 shared-list sorts running while that list was hidden. Each is a std::sort over every row plus a row index rebuild and a selection round-trip, and the cost grows with the list, so a user with thousands of files pays it several times a second for lists they are not looking at (reported in issue amule-project#867). MaybeResortNow() now returns early when the control is not on screen. The work is deferred rather than dropped: m_resortPending stays set, so the next update after the panel comes back sorts it. The poll that marks rows dirty runs continuously while connected, so that is within a poll interval of becoming visible -- and a list only has a sort pending because something in it changed. This is not the whole of amule-project#867. It removes work that was never needed, but the reporter's hiccups follow the *visible* panel, and this makes no difference there. What the visible list costs is being measured separately.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #876.
When the DNS resolver thread fails
Create()orRun()before sending a queued UDP server packet, the dropped path released the packet without disposing of the detachedwxThreadobject, leaking theCAsyncDNSheap allocation. Mirror the cleanup pattern already used inDownloadQueue.cpp:1352and:1401.Tested: macOS local build (Apple Silicon, Homebrew) — clean.