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.

Reply via email to