Trigger a core dump then use gdb on the core file. 

> On Oct 26, 2022, at 8:33 AM, Steven Sokol <st...@stevensokol.com> wrote:
> 
> 
> I've tried using strace and it just locks up (and requires SIGKILL to break 
> out). What's the best way to get a native sampling, gdb? (Delve won't run on 
> this platform.)
> 
> 
> 
>> On Tuesday, October 25, 2022 at 8:10:12 PM UTC-5 ren...@ix.netcom.com wrote:
>> I would try an external sampling. The stack trace you are looking at is 
>> somewhat artificial. A native sampling will help pin down what exactly is 
>> consuming the cpu (switching to thread mode in htop can be a substitute). 
>> You might also run strace on the pid when it gets in this state to give 
>> additional clues.
>> 
>>>> On Oct 25, 2022, at 7:28 PM, Steven Sokol <st...@stevensokol.com> wrote:
>>>> 
>>> I don't think so. I don't have it capped in the systemd configuration and 
>>> it's not using very much memory even in the runaway state. Here's a 
>>> screenshot of htop - check out the fvUnisocket process at the top of the 
>>> list:
>>> 
>>> https://user-images.githubusercontent.com/350268/197785991-a8a9691b-4499-4e7a-b0c5-557ef2924514.png
>>> 
>>> 
>>>> On Tuesday, October 25, 2022 at 6:42:14 PM UTC-5 ren...@ix.netcom.com 
>>>> wrote:
>>>> Are you certain you haven’t capped the memory and all of the GC threads 
>>>> are spinning trying to claim/allocate memory?
>>>> 
>>>>>> On Oct 25, 2022, at 4:49 PM, Steven Sokol <st...@stevensokol.com> wrote:
>>>>>> 
>>>>> Weird one. I have a go application that, on occasion, will suddenly jump 
>>>>> from some very low CPU usage (1% - 10%) to 400% (4 core system). I run 
>>>>> this app at a heightened priority and it can nearly lock the machine (Pi 
>>>>> CM4) up.
>>>>> 
>>>>> I can kill it with SIGKILL and I'm able to get a stack trace by sending 
>>>>> SIGQUIT. (Here's a gist of the stack trace.)
>>>>> 
>>>>> The trace would seem to indicate that everything is idle - virtually all 
>>>>> the goroutines are in runtime.gopark. None of them ever get out of it. 
>>>>> I've tried adding a watchdog timer and it locks up along with all the 
>>>>> other goroutines, so it never fires once the runaway event starts.
>>>>> 
>>>>> The app itself isn't anything special. It listens for data on a set of 
>>>>> about  16 Redis pubsub channels and forwards any data it receives to a 
>>>>> very limited number of clients over UDP. Throughput ranges from 34 - 38 
>>>>> KB/sec, and the message counts are in the hundreds. Most of the time it 
>>>>> eats about 5% of one core on the CM4.
>>>>> 
>>>>> I guess this could be an error on my part, but there's nothing in my code 
>>>>> that seems likely to cause this - no obvious place for a multi-threaded 
>>>>> tight loop. I thought for a while that it might be some sort of an issue 
>>>>> in Redigo (golang redis client) but from what that stack trace shows, it 
>>>>> looks like all the redis listeners are happy and healthy and stuck 
>>>>> waiting in gopark along with all the other goroutines.
>>>>> 
>>>>> Has anyone seen this kind of weird before?
>>>>> 
>>>>> Thanks,
>>>>> 
>>>>> -S
>>>>> 
>>>>> 
>>>> 
>>>>> -- 
>>>>> 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 on the web visit 
>>>>> https://groups.google.com/d/msgid/golang-nuts/5465198d-9a48-4db1-98d5-498922b1ac39n%40googlegroups.com.
>>>> 
>>> 
>>> 
>>> -- 
>>> 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 on the web visit 
>>> https://groups.google.com/d/msgid/golang-nuts/382df009-cd81-4f62-ae67-03dfc1bb338en%40googlegroups.com.
>> 
> 
> -- 
> 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 on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/3199aecd-6a25-4d77-a103-d5dd6e96c64dn%40googlegroups.com.

-- 
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 on the web visit 
https://groups.google.com/d/msgid/golang-nuts/B6DB14C7-EBA8-469D-BA91-F8BD56D23B0B%40ix.netcom.com.

Reply via email to