On Wed, Mar 19, 2025 at 8:46 PM Gavra <gav...@gmail.com> wrote: > Yes, I intend to open a bug for them. > I agree that one should not relay on the execution of finalizers. But, the > fact that the runtime just piles them up because one package did wrong is > outrageous. > > By the way, I am not sure why but I can see the mfinal routine only when > running my program from Goland; When I build it manually the routine is > invisible using pprof. >
The finalizer goroutine should appear in goroutine profiles if it is running finalizers (even if a finalizer makes the goroutine block). It is hidden if it is blocked because there are no finalizers to run. If that is not the behavior you are seeing, please file a bug. > > On Wednesday, 19 March 2025 at 13:38:04 UTC+2 Robert Engels wrote: > >> In fact the code you reference - the close() - does things the Go docs >> warn specifically not to do. >> >> You may be better off using runtime.AddCleanup() >> >> >> >> On Mar 19, 2025, at 6:32 AM, Robert Engels <ren...@ix.netcom.com> wrote: >> >> >> >> In principle, I would argue that there is a correctness problem. You >> should not rely on finalizers ever - they are catches and often optional - >> so the design relying on finalizers to run is what is broken. >> >> In the real world they can make solving certain problems much easier - >> especially with shared resources. I know Java has deprecated them in lieu >> of other technologies like Cleaners. >> >> >> On Mar 19, 2025, at 6:19 AM, Gavra <gav...@gmail.com> wrote: >> >> >> https://github.com/hirochachacha/go-smb2/blob/c8e61c7a5fa7bcd1143359f071f9425a9f4dda3f/client.go#L1063 >> We are looking for why exactly it blocked (probably incorrect ctx) but I >> think this close should run in a goroutine. >> >> On Wednesday, 19 March 2025 at 12:29:34 UTC+2 Brian Candler wrote: >> >>> On Wednesday, 19 March 2025 at 09:55:58 UTC Gavra wrote: >>> >>> This finalizer blocks the runtime's finalizer goroutine >>> >>> >>> Out of interest, what made it block? Was the finalizer doing some >>> channel communication, for example? >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts...@googlegroups.com. >> To view this discussion visit >> https://groups.google.com/d/msgid/golang-nuts/5c7c034d-3bc6-4fe5-82bb-a318310bd82fn%40googlegroups.com >> <https://groups.google.com/d/msgid/golang-nuts/5c7c034d-3bc6-4fe5-82bb-a318310bd82fn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts...@googlegroups.com. >> >> To view this discussion visit >> https://groups.google.com/d/msgid/golang-nuts/6AABBB52-5BC6-4874-900B-C423E37952C4%40ix.netcom.com >> <https://groups.google.com/d/msgid/golang-nuts/6AABBB52-5BC6-4874-900B-C423E37952C4%40ix.netcom.com?utm_medium=email&utm_source=footer> >> . >> >> -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion visit > https://groups.google.com/d/msgid/golang-nuts/75da8ea2-c099-483c-969a-ab99a91da2a4n%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/75da8ea2-c099-483c-969a-ab99a91da2a4n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CALoThU90F1ipyKui2aJp0iNqzs0VC9w89DaW1v5z5r9xSGnsZQ%40mail.gmail.com.