[tor-bugs] #10461 [Tor]: tor seems to ignore "DirServer" option

Tor Bug Tracker & Wiki blackhole at torproject.org
Sun Dec 22 12:25:08 UTC 2013


#10461: tor seems to ignore "DirServer" option
------------------------+------------------------------
     Reporter:  mr-4    |      Owner:
         Type:  defect  |     Status:  new
     Priority:  normal  |  Milestone:
    Component:  Tor     |    Version:  Tor: 0.2.4.18-rc
   Resolution:          |   Keywords:
Actual Points:          |  Parent ID:
       Points:          |
------------------------+------------------------------

Comment (by mr-4):

 Also: when I don't have any "DirAuthority" statements in my torrc, I get
 the following sequence:

 [info] {DIR} microdesc_cache_reload(): Reloaded microdescriptor cache.
 Found 0 descriptors.
 [info] {FS} tor_mmap_file(): Could not open "/var/lib/tor/tor/cached-
 descriptors" for mmap(): No such file or directory
 [info] {FS} tor_mmap_file(): Could not open "/var/lib/tor/tor/cached-
 extrainfo" for mmap(): No such file or directory
 [info] {DIR} I learned some more directory information, but not enough to
 build a circuit: We have no usable consensus.
 [info] {DIR} update_consensus_networkstatus_downloads(): Launching
 microdesc networkstatus consensus download.
 [info] {CIRC} entry_guards_set_from_config(): Adding configured EntryNodes
 '{EU},{AT},{HR},{CH},{CZ},{DK},{FI},{FR},{DE},{HU},{IT},{LU},{MT},{NL},{NO},{SK},{SI},{ES},{SE},{BE},{IS}'.
 [notice] {GENERAL} 0 entries in guards
 [info] {CIRC} compute_weighted_bandwidths(): Empty routerlist passed in to
 consensus weight node selection for rule weight as guard
 [info] {CIRC} smartlist_choose_node_by_bandwidth(): Empty routerlist
 passed in to old node selection for rule weight as guard
 [info] {DIR} directory_pick_generic_dirserver(): No router found for
 consensus network-status fetch; falling back to dirserver list.
 [debug] {DIR} directory_initiate_command_rend(): anonymized 0,
 use_begindir 1.
 [debug] {DIR} directory_initiate_command_rend(): Initiating consensus
 network-status fetch
 [info] {APP} connection_ap_make_link(): Making internal direct tunnel to
 [scrubbed]:443 ...
 [debug] {NET} connection_add_impl(): new conn type Socks, socket -1,
 address (Tor_internal), n_conns 2.
 [debug] {DIR} circuit_get_open_circ_or_launch(): considering 1,
 $7BE683E65D48141321C5ED92F075C55364AC7123
 [debug] {CIRC} onion_pick_cpath_exit(): Launching a one-hop circuit for
 dir tunnel.
 [info] {CIRC} onion_pick_cpath_exit(): Using requested exit node
 '$7BE683E65D48141321C5ED92F075C55364AC7123~7BE683E65D48141321C at
 193.23.244.244'
 [debug] {CIRC} onion_extend_cpath(): Path is 0 long; we want 1
 [debug] {CIRC} onion_extend_cpath(): Chose router
 $7BE683E65D48141321C5ED92F075C55364AC7123~7BE683E65D48141321C at
 193.23.244.244 for hop 1 (exit is
 7BE683E65D48141321C5ED92F075C55364AC7123)
 [debug] {CIRC} onion_extend_cpath(): Path is complete: 1 steps long
 [debug] {CIRC} circuit_handle_first_hop(): Looking for firsthop
 '193.23.244.244:443'
 [info] {CIRC} circuit_handle_first_hop(): Next router is [scrubbed]: Not
 connected. Connecting.
 [notice] {CONTROL} Bootstrapped 5%: Connecting to directory server.
 [debug] {CHANNEL} channel_tls_connect(): In channel_tls_connect() for
 channel 0xb79ea130 (global id 0)
 [debug] {CHANNEL} channel_set_identity_digest(): Setting remote endpoint
 digest on channel 0xb79ea130 with global ID 0 to digest
 7BE683E65D48141321C5ED92F075C55364AC7123
 [debug] {NET} connection_connect(): Connecting to [scrubbed]:443.
 [debug] {NET} connection_connect(): Connection to [scrubbed]:443 in
 progress (sock 4).
 [debug] {NET} connection_add_impl(): new conn type OR, socket 4, address
 193.23.244.244, n_conns 3.
 [debug] {CHANNEL} channel_tls_connect(): Got orconn 0xb79ea208 for channel
 with global id 0
 [debug] {CHANNEL} channel_register(): Registering channel 0xb79ea130 (ID
 0) in state opening (1) with digest
 7BE683E65D48141321C5ED92F075C55364AC7123
 [debug] {CHANNEL} channel_add_to_digest_map(): Added channel 0xb79ea130
 (global ID 0) to identity map in state opening (1) with digest
 7BE683E65D48141321C5ED92F075C55364AC7123
 [debug] {CHANNEL} channel_set_cell_handlers(): Setting cell_handler
 callback for channel 0xb79ea130 to 0xb76d6500
 [debug] {CHANNEL} channel_set_cell_handlers(): Setting var_cell_handler
 callback for channel 0xb79ea130 to 0xb76d5340
 [debug] {CIRC} circuit_handle_first_hop(): connecting in progress (or
 finished). Good.
 [info] {APP} connection_ap_make_link(): ... application connection created
 and linked.
 [debug] {NET} connection_add_impl(): new conn type Directory, socket -1,
 address 193.23.244.244, n_conns 4.
 [info] {DIR} directory_send_command(): Downloading consensus from
 193.23.244.244:443 using /tor/status-vote/current/consensus-
 microdesc/14C131+27B6B5+49015F+585769+805509+D586D1+E8A9C4+ED03BB+EFCBE7.z
 [info] {GENERAL} or_state_save(): Saved state to "/var/lib/tor/tor/state"
 [debug] {NET} conn_read_callback(): socket -1 wants to read.
 [info] {EDGE} connection_edge_process_inbuf(): data from edge while in
 'waiting for circuit' state. Leaving it on buffer.
 [info] {EDGE} connection_edge_process_inbuf(): data from edge while in
 'waiting for circuit' state. Leaving it on buffer.
 [debug] {DIR} connection_dir_finished_flushing(): client finished sending
 command.
 [debug] {NET} conn_read_callback(): socket 4 wants to read.
 [info] {CONTROL} control_event_bootstrap_problem(): Problem bootstrapping.
 Stuck at 5%: Connecting to directory server. (Connection refused;
 CONNECTREFUSED; count 1; recommendation ignore)
 [debug] {CHANNEL} channel_close_for_error(): Closing channel 0xb79ea130
 due to lower-layer error
 [debug] {CHANNEL} channel_change_state(): Changing state of channel
 0xb79ea130 (global ID 0) from "opening" to "closing"
 [debug] {CHANNEL} channel_remove_from_digest_map(): Removed channel
 0xb79ea130 (global ID 0) from identity map in state closing (4) with
 digest 7BE683E65D48141321C5ED92F075C55364AC7123
 [debug] {CHANNEL} connection_mark_for_close_internal_(): Calling
 connection_mark_for_close_internal_() on an OR conn at
 src/or/connection.c:2828
 [debug] {NET} conn_close_if_marked(): Cleaning up connection (fd -1).
 [debug] {CIRC} circuit_n_chan_done(): chan to NULL/193.23.244.244:443,
 status=0
 [info] {CIRC} circuit_n_chan_done(): Channel failed; closing circ.
 [info] {OR} circuit_build_failed(): Our circuit died before the first hop
 with no connection
 [info] {APP} connection_ap_fail_onehop(): Closing one-hop stream to
 '$7BE683E65D48141321C5ED92F075C55364AC7123/193.23.244.244' because the OR
 conn just failed.
 [debug] {CIRC} circuit_increment_failure_count(): n_circuit_failures now
 1.
 [debug] {CHANNEL} channel_change_state(): Changing state of channel
 0xb79ea130 (global ID 0) from "closing" to "channel error"
 [info] {HANDSHAKE} connection_or_note_state_when_broken(): Connection died
 in state 'connect()ing with SSL state (No SSL object)'
 [debug] {NET} connection_remove(): removing socket -1 (type OR), n_conns
 now 4
 [debug] {NET} conn_close_if_marked(): Cleaning up connection (fd -1).
 [debug] {NET} connection_remove(): removing socket -1 (type Socks),
 n_conns now 3
 [info] {GENERAL} connection_free_(): Freeing linked Socks connection
 [waiting for circuit] with 152 bytes on inbuf, 0 on outbuf.
 [debug] {NET} conn_read_callback(): socket -1 wants to read.
 [info] {HTTP} connection_dir_client_reached_eof(): 'fetch' response not
 all here, but we're at eof. Closing.
 [debug] {NET} conn_close_if_marked(): Cleaning up connection (fd -1).
 [info] {DIR} update_consensus_networkstatus_downloads(): Launching
 microdesc networkstatus consensus download.
 [info] {CIRC} compute_weighted_bandwidths(): Empty routerlist passed in to
 consensus weight node selection for rule weight as guard
 [info] {CIRC} smartlist_choose_node_by_bandwidth(): Empty routerlist
 passed in to old node selection for rule weight as guard
 [info] {DIR} directory_pick_generic_dirserver(): No router found for
 consensus network-status fetch; falling back to dirserver list.
 [debug] {DIR} directory_initiate_command_rend(): anonymized 0,
 use_begindir 1.
 [debug] {DIR} directory_initiate_command_rend(): Initiating consensus
 network-status fetch
 [info] {APP} connection_ap_make_link(): Making internal direct tunnel to
 [scrubbed]:443 ...
 [debug] {NET} connection_add_impl(): new conn type Socks, socket -1,
 address (Tor_internal), n_conns 3.
 [debug] {DIR} circuit_get_open_circ_or_launch(): considering 1,
 $7BE683E65D48141321C5ED92F075C55364AC7123
 [debug] {CIRC} onion_pick_cpath_exit(): Launching a one-hop circuit for
 dir tunnel.
 [info] {CIRC} onion_pick_cpath_exit(): Using requested exit node
 '$7BE683E65D48141321C5ED92F075C55364AC7123~7BE683E65D48141321C at
 193.23.244.244'
 [debug] {CIRC} onion_extend_cpath(): Path is 0 long; we want 1
 [debug] {CIRC} onion_extend_cpath(): Chose router
 $7BE683E65D48141321C5ED92F075C55364AC7123~7BE683E65D48141321C at
 193.23.244.244 for hop 1 (exit is
 7BE683E65D48141321C5ED92F075C55364AC7123)
 [debug] {CIRC} onion_extend_cpath(): Path is complete: 1 steps long
 [debug] {CIRC} circuit_handle_first_hop(): Looking for firsthop
 '193.23.244.244:443'
 [info] {CIRC} circuit_handle_first_hop(): Next router is [scrubbed]: Not
 connected. Connecting.
 [debug] {CHANNEL} channel_tls_connect(): In channel_tls_connect() for
 channel 0xb79ebc50 (global id 1)
 [debug] {CHANNEL} channel_set_identity_digest(): Setting remote endpoint
 digest on channel 0xb79ebc50 with global ID 1 to digest
 7BE683E65D48141321C5ED92F075C55364AC7123
 [debug] {NET} connection_connect(): Connecting to [scrubbed]:443.
 [debug] {NET} connection_connect(): Connection to [scrubbed]:443 in
 progress (sock 4).
 [debug] {NET} connection_add_impl(): new conn type OR, socket 4, address
 193.23.244.244, n_conns 4.
 [debug] {CHANNEL} channel_tls_connect(): Got orconn 0xb79ebd40 for channel
 with global id 1
 [debug] {CHANNEL} channel_register(): Registering channel 0xb79ebc50 (ID
 1) in state opening (1) with digest
 7BE683E65D48141321C5ED92F075C55364AC7123
 [debug] {CHANNEL} channel_add_to_digest_map(): Added channel 0xb79ebc50
 (global ID 1) to identity map in state opening (1) with digest
 7BE683E65D48141321C5ED92F075C55364AC7123
 [debug] {CHANNEL} channel_set_cell_handlers(): Setting cell_handler
 callback for channel 0xb79ebc50 to 0xb76d6500
 [debug] {CHANNEL} channel_set_cell_handlers(): Setting var_cell_handler
 callback for channel 0xb79ebc50 to 0xb76d5340
 [debug] {CIRC} circuit_handle_first_hop(): connecting in progress (or
 finished). Good.
 [info] {APP} connection_ap_make_link(): ... application connection created
 and linked.
 [debug] {NET} connection_add_impl(): new conn type Directory, socket -1,
 address 193.23.244.244, n_conns 5.
 [info] {DIR} directory_send_command(): Downloading consensus from
 193.23.244.244:443 using /tor/status-vote/current/consensus-
 microdesc/14C131+27B6B5+49015F+585769+805509+D586D1+E8A9C4+ED03BB+EFCBE7.z
 [debug] {NET} connection_remove(): removing socket -1 (type Directory),
 n_conns now 5
 [info] {GENERAL} connection_free_(): Freeing linked Directory connection
 [client reading] with 0 bytes on inbuf, 0 on outbuf.
 [debug] {NET} conn_read_callback(): socket -1 wants to read.
 [info] {EDGE} connection_edge_process_inbuf(): data from edge while in
 'waiting for circuit' state. Leaving it on buffer.
 [info] {EDGE} connection_edge_process_inbuf(): data from edge while in
 'waiting for circuit' state. Leaving it on buffer.
 [debug] {DIR} connection_dir_finished_flushing(): client finished sending
 command.
 [debug] {NET} conn_read_callback(): socket 4 wants to read.
 [info] {CONTROL} control_event_bootstrap_problem(): Problem bootstrapping.
 Stuck at 5%: Connecting to directory server. (Connection refused;
 CONNECTREFUSED; count 2; recommendation ignore)
 [info] {HANDSHAKE} 1 connections have failed:
 [info] {HANDSHAKE}  1 connections died in state connect()ing with SSL
 state (No SSL object)
 [debug] {CHANNEL} channel_close_for_error(): Closing channel 0xb79ebc50
 due to lower-layer error
 [debug] {CHANNEL} channel_change_state(): Changing state of channel
 0xb79ebc50 (global ID 1) from "opening" to "closing"
 [debug] {CHANNEL} channel_remove_from_digest_map(): Removed channel
 0xb79ebc50 (global ID 1) from identity map in state closing (4) with
 digest 7BE683E65D48141321C5ED92F075C55364AC7123
 [debug] {CHANNEL} connection_mark_for_close_internal_(): Calling
 connection_mark_for_close_internal_() on an OR conn at
 src/or/connection.c:2828
 [debug] {NET} conn_close_if_marked(): Cleaning up connection (fd -1).
 [debug] {CIRC} circuit_n_chan_done(): chan to NULL/193.23.244.244:443,
 status=0
 [info] {CIRC} circuit_n_chan_done(): Channel failed; closing circ.
 [info] {OR} circuit_build_failed(): Our circuit died before the first hop
 with no connection
 [info] {APP} connection_ap_fail_onehop(): Closing one-hop stream to
 '$7BE683E65D48141321C5ED92F075C55364AC7123/193.23.244.244' because the OR
 conn just failed.

 When I add dannenberg explicitly with "DirAuthority", like "DirAuthority
 193.23.244.244:443 7BE683E65D48141321C5ED92F075C55364AC7123" I get this:

 Dec 22 12:14:32.000 [info] {DIR} microdesc_cache_reload(): Reloaded
 microdescriptor cache. Found 0 descriptors.
 Dec 22 12:14:32.000 [info] {FS} tor_mmap_file(): Could not open
 "/var/lib/tor/tor/cached-descriptors" for mmap(): No such file or
 directory
 Dec 22 12:14:32.000 [info] {FS} tor_mmap_file(): Could not open
 "/var/lib/tor/tor/cached-extrainfo" for mmap(): No such file or directory
 Dec 22 12:14:32.000 [info] {DIR} I learned some more directory
 information, but not enough to build a circuit: We have no usable
 consensus.
 Dec 22 12:14:33.000 [info] {DIR}
 update_consensus_networkstatus_downloads(): Launching microdesc
 networkstatus consensus download.
 Dec 22 12:14:33.000 [info] {CIRC} entry_guards_set_from_config(): Adding
 configured EntryNodes
 '{EU},{AT},{HR},{CH},{CZ},{DK},{FI},{FR},{DE},{HU},{IT},{LU},{MT},{NL},{NO},{SK},{SI},{ES},{SE},{BE},{IS}'.
 Dec 22 12:14:33.000 [notice] {GENERAL} 0 entries in guards
 Dec 22 12:14:33.000 [info] {CIRC} compute_weighted_bandwidths(): Empty
 routerlist passed in to consensus weight node selection for rule weight as
 guard
 Dec 22 12:14:33.000 [info] {CIRC} smartlist_choose_node_by_bandwidth():
 Empty routerlist passed in to old node selection for rule weight as guard
 Dec 22 12:14:33.000 [info] {DIR} directory_pick_generic_dirserver(): No
 router found for consensus network-status fetch; falling back to dirserver
 list.
 Dec 22 12:14:33.000 [info] {DIR} router_pick_dirserver_generic(): No
 dirservers are reachable. Trying them all again.
 Dec 22 12:14:33.000 [notice] {DIR} While fetching directory info, no
 running dirservers known. Will try again later. (purpose 14)
 Dec 22 12:14:33.000 [info] {GENERAL} or_state_save(): Saved state to
 "/var/lib/tor/tor/state"

 Why?

 The two scenarios shouldn't be any different. In other words whether tor
 tries to connect to dannenberg (which appears to be down by the way)
 implicitly (by default) or explicitly with "DirAuthority" in torrc should
 not matter, but that appears not to be the case. Over to you!

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


More information about the tor-bugs mailing list