[tor-bugs] #21312 [Obfuscation/Snowflake]: snowflake-client is pegged at 100% cpu

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Mar 15 04:21:46 UTC 2018


#21312: snowflake-client is pegged at 100% cpu
-----------------------------------+------------------------------
 Reporter:  arlolra                |          Owner:  arlolra
     Type:  defect                 |         Status:  needs_review
 Priority:  High                   |      Milestone:
Component:  Obfuscation/Snowflake  |        Version:
 Severity:  Major                  |     Resolution:
 Keywords:                         |  Actual Points:
Parent ID:                         |         Points:
 Reviewer:                         |        Sponsor:
-----------------------------------+------------------------------

Comment (by dcf):

 Replying to [comment:44 dcf]:
 > Replying to [comment:42 arlolra]:
 > > > Well, CGO_DestroyPeer doesn't appear to be thread-safe; so let's fix
 that.
 > >
 > > Attached a go-webrtc patch.  Can you try running that and seeing if
 you still get these aborts?
 >
 > Yeah I'll try it.

 With this patch I got another quick crash on my desktop. Also just after
 the first `OnClose`, this time a segmentation fault in `CGO_Close`. Here
 is the end of the log:
 {{{
 2018/03/15 04:18:21 OnClose channel
 INFO: peerconnection.go:503: fired OnIceConnectionStateChange:  1
 INFO: peerconnection.go:435: fired OnSignalingStateChange:  1 Closed
 [Thread 0x7fffd7fff700 (LWP 11244) exited]
 [Thread 0x7fffecff9700 (LWP 11243) exited]
 [Thread 0x7ffff4587700 (LWP 11239) exited]
 [Thread 0x7ffff4688700 (LWP 11238) exited]
 [Thread 0x7fffed7fa700 (LWP 11237) exited]
 [Thread 0x7fffedffb700 (LWP 11236) exited]
 2018/03/15 04:18:21 datachannelHandler ends

 Thread 7 "proxy-go" received signal SIGSEGV, Segmentation fault.
 [Switching to Thread 0x7fffeeffd700 (LWP 11229)]
 CGO_Close (peer=<optimized out>) at
 /home/david/go/src/github.com/keroserene/go-webrtc/peerconnection.cc:481
 481       cPeer->pc_->Close();
 (gdb) bt
 #0  CGO_Close (peer=<optimized out>) at
 /home/david/go/src/github.com/keroserene/go-webrtc/peerconnection.cc:481
 #1  0x0000555555726390 in runtime.asmcgocall () at
 /usr/lib/go-1.7/src/runtime/asm_amd64.s:590
 #2  0x000000c42016dd70 in ?? ()
 #3  0x00005555556d0e0d in runtime.cgocall (fn=0x0, arg=0xc420001860,
 ~r2=-285225288)
     at /usr/lib/go-1.7/src/runtime/cgocall.go:115
 #4  0x000000c4200018a0 in ?? ()
 #5  0x0000000000000000 in ?? ()
 }}}
 I verified with `go build -x` that peerconnection.cc was being recompiled
 when I built proxy-go.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/21312#comment:46>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list