[tor-bugs] #33211 [Circumvention/Snowflake]: proxy-go sometimes gets into a 100+% CPU state
Tor Bug Tracker & Wiki
blackhole at torproject.org
Sun Feb 23 00:18:53 UTC 2020
#33211: proxy-go sometimes gets into a 100+% CPU state
-------------------------------------+-----------------------------
Reporter: dcf | Owner: cohosh
Type: defect | Status: merge_ready
Priority: Medium | Milestone:
Component: Circumvention/Snowflake | Version:
Severity: Normal | Resolution:
Keywords: | Actual Points:
Parent ID: | Points:
Reviewer: | Sponsor:
-------------------------------------+-----------------------------
Comment (by cohosh):
Replying to [comment:17 dcf]:
> I reproduced the symptoms I was thinking of and got a profile. Files are
at https://people.torproject.org/~dcf/bug33211/. I had to let proxy-go run
for an hour (details below) until it happened. Then I let it run for 30
minutes at high CPU so that whatever was going wrong would dominate the
profile. The [https://people.torproject.org/~dcf/bug33211/proxy-
go.profile.2020-02-22T20:32:32Z.png graph] tells the story.
`pion/dtls/internal/crypto/ccm.(*ccm).cbcRound` and
`crypto/aes.encryptBlockAsm` are major contributors, but I believe they
are a separate issue that is fixed by your comment:16. The culprit for
what I was describing of is
`pion/sctp.(*payloadQueue).markAllToRetrasmit`, called by
`sctp.(*Association).onRetransmissionTimeout`. It looks to me like a timer
somewhere is becoming negative and becoming a busy-loop (similar to the
bug in quic-go from #33401).
>
> During the time of high CPU usage, proxy-go wasn't producing an abnormal
amount of log output (probably about 1 line per second on average), nor
was it sending an abnormal amount of packets.
Ah interesting. Nice work with this! I can take a closer look at the SCTP
code next week.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33211#comment:19>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list