[tor-bugs] #28390 [Obfuscation/Snowflake]: Snowflake stuck at "Loading relay information..."

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Nov 22 02:36:12 UTC 2018


#28390: Snowflake stuck at "Loading relay information..."
-----------------------------------+------------------------
 Reporter:  cypherpunks3           |          Owner:  (none)
     Type:  defect                 |         Status:  closed
 Priority:  Medium                 |      Milestone:
Component:  Obfuscation/Snowflake  |        Version:
 Severity:  Normal                 |     Resolution:  fixed
 Keywords:                         |  Actual Points:
Parent ID:                         |         Points:
 Reviewer:                         |        Sponsor:
-----------------------------------+------------------------
Changes (by dcf):

 * status:  reopened => closed
 * resolution:   => fixed


Comment:

 The problem was a full disk, just like in #26661. The bridge and the
 fallback proxies are currently hosted on the same machine, so when the
 proxies filled up the disk with logs, it stopped the bridge running as
 well. The end of one of the log files was (timestamps are UTC)
 {{{
 2018/11/16 15:10:27 broker returns: 504
 2018/11/16 15:10:38 broker returns: 504
 2018/11/16 15:10:48 broker returns: 504
 2018/11/16 15:10:58 broker returns: 504
 2018/11/16 15:11:08 broker returns: 504
 2018/11/16 15:11:18 broker returns: 504
 2018/11/16 15:11:28 broker returns: 504
 2018/11/16 15:11
 }}}

 I compressed the logs to make some space (they compress to around 1% of
 their original size, as they mostly contain those `broker returns: 504`
 lines). Then I did what I should have done after #26661, which is activate
 log rotation to prevent this from happening again. We're using runit to
 manage the proxies, which comes with a program
 [http://smarden.org/runit/svlogd.8.html svlogd] to manage log files. I
 added a `log/run` script to each service directory containing:
 {{{
 #!/bin/sh
 exec chpst -u snowflake-proxy svlogd snowflake-proxy-xxx.log.d
 }}}
 In each service `run` script, I removed the `-log` option from the
 snowflake-proxy command, so that it will log to stderr. Then, in each
 snowflake-proxy-xxx.log.d directory, I made a file `config` that contains:
 {{{
 # http://smarden.org/runit/svlogd.8.html
 # size of log file before rotation (10 MB)
 s10000000
 # don't delete old logs
 n0
 # unless the filesystem is full
 N1
 # compress old logs
 !xz
 }}}
 What this means is, when a log file reaches 10 MB, it will be compressed
 and archived. Keep archived log files, but delete the oldest ones if the
 disk is full.

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


More information about the tor-bugs mailing list