Skip to content

Sig 11 #32

Description

@05nelsonm

Compiling JNI bindings atop libtor-sys and I keep getting intermittent Tor 0.4.6.9 died: Caught signal 11 crashes. Not entirely sure if this is attributed to something with libtor-sys, or JVM side, but I feel like I'm losing my mind trying to debug this.

JVM Test simply starts Tor, then cycles a restart a couple times at 5s intervals. It sometimes fails immediately, sometimes makes it through start and then 1 restart cycle.

Any suggestions would be greatly appreciated.

lib.rs (work in progress, lol)
#![allow(non_snake_case)]

extern crate tor_sys;

use jni::JNIEnv;
use jni::objects::{JClass, JList, JString, JObject};
use std::ffi::CString;

#[no_mangle]
pub extern "system" fn Java_io_matthewnelson_kmp_tor_KmpTorLoaderJvm_runLines(
    env: JNIEnv,
    _class: JClass,
    // lines are a list of of strings to be run, already configured from kotlin side:
    // ex: [ "--ControlPortWriteToFile", "/path/to/file" ]
    lines: JObject // JList
) {
    let mut verify: Vec<String> = vec![
        String::from("tor"), String::from("--verify-config")
    ];

    let mut run: Vec<String> = vec![
        String::from("tor")
    ];

    let lines: JList = env.get_list(lines).expect("some exception").into();
    for i in 0..lines.size().unwrap() {
        let line = JString::from(lines.get(i.into()).unwrap().unwrap());
        verify.push(env.get_string(line.clone()).unwrap().into());
        run.push(env.get_string(line.clone()).unwrap().into());
    }

    let verify: Vec<_> = verify.into_iter().map(|s| CString::new(s).unwrap()).collect();
    let verify_ptr: Vec<_> = verify.iter().map(|s| s.as_ptr()).collect();

    let run: Vec<_> = run.into_iter().map(|s| CString::new(s).unwrap()).collect();
    let run_ptr: Vec<_> = run.iter().map(|s| s.as_ptr()).collect();

    unsafe {
        println!("==== RUST: acquiring config");
        let config = tor_sys::tor_main_configuration_new();

        println!("==== RUST: setting lines to verify");

        // set lines to be verified
        if tor_sys::tor_main_configuration_set_command_line(
            config,
            verify.len() as i32,
            verify_ptr.as_ptr()
        ) != 0 {
            println!("torMainConfigurationSetCommandLine returned non-0")
            // should throw err && release config
        }

        // run lines to verify
        println!("==== RUST: verifying lines");
        if tor_sys::tor_run_main(config) != 0 {
            println!("==== RUST: torRunMain returned non-0")
            // should throw err && release config
        }

        // set lines to be run
        println!("==== RUST: setting lines to run");
        if tor_sys::tor_main_configuration_set_command_line(
            config,
            run.len() as i32,
            run_ptr.as_ptr()
        ) != 0 {
            println!("==== RUST: torMainConfigurationSetCommandLine returned non-0")
            // should throw err && release config
        }

        println!("===== RUST: Starting Tor with args: {:#?}", run);

        // run lines
        // This is runBlocking on the current Thread (which is handled kotlin side)
        println!("==== RUST: running lines");
        if tor_sys::tor_run_main(config) != 0 {
            println!("==== RUST: torRunMain returned non-0")
            // should throw err && release config
        }

        // release config from mem
        println!("==== RUST: freeing config");
        tor_sys::tor_main_configuration_free(config);
    }
}
Cargo.toml
[package]
name = "kmp-tor-binary-build"
version = "0.1.0"

[dependencies]
jni = "0.19.0"
libtor-sys = { version = "46.9.0+0.4.6.9", features = ["vendored-openssl"] }

[lib]
name = "kmptor"
crate_type = [ "cdylib" ]
test = false
bench = false
Kotlin Multiplatform JVM Native Loader
actual class KmpTorLoaderJvm @JvmOverloads constructor(
    provider: TorConfigProviderJvm,
    loadLib: Boolean = false,
): KmpTorLoader(provider) {

    init {
        if (loadLib) {
            System.loadLibrary("kmptor")
        }
    }

    private external fun runLines(lines: List<String>)

    @Throws(TorManagerException::class, CancellationException::class)
    protected override suspend fun startTor(configLines: List<String>) {
        runLines(configLines)
    }
}
Jvm test output 1 (linuxx64, failure on first restart called)
io.matthewnelson.kmp.tor.KmpTorLoaderJvmUnitTest[jvm] STANDARD_OUT
    Lifecycle(class=RealTorManager@856837143, event=onCreate)
    State(torState=Tor: Starting, networkState=Network: Disabled)
    Action.Start
==== RUST: acquiring config
==== RUST: setting lines to verify
==== JAVA: ReentrantLock acquired
==== RUST: verifying lines
Jan 15 14:30:52.900 [notice] Tor 0.4.6.9 running on Linux with Libevent 2.1.12-stable, OpenSSL 1.1.1m, Zlib 1.2.11, Liblzma N/A, Libzstd N/A and Glibc 2.34 as libc.
Jan 15 14:30:52.900 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jan 15 14:30:52.900 [notice] Read configuration file "/tmp/junit2447373153840319148/torservice/torrc-defaults".
Jan 15 14:30:52.900 [notice] Read configuration file "/tmp/junit2447373153840319148/torservice/torrc".
Jan 15 14:30:52.902 [warn] Fixing permissions on directory /tmp/junit2447373153840319148/cache
==== RUST: setting lines to run
==== RUST: Starting Tor with args: [
    "tor",
    "--RunAsDaemon",
    "0",
    "-f",
    "/tmp/junit2447373153840319148/torservice/torrc",
    "--defaults-torrc",
    "/tmp/junit2447373153840319148/torservice/torrc-defaults",
    "--ignore-missing-torrc",
    "--ControlPort",
    "9155",
    "--SocksPort",
    "auto",
    "--HTTPTunnelPort",
    "auto",
    "--DormantClientTimeout",
    "10 minutes",
    "--DormantCanceledByStartup",
    "0",
    "--DisableNetwork",
    "1",
    "--SyslogIdentityTag",
    "TorManager",
    "--CacheDirectory",
    "/tmp/junit2447373153840319148/cache",
    "--DataDirectory",
    "/tmp/junit2447373153840319148/torservice/data",
    "--ControlPortWriteToFile",
    "/tmp/junit2447373153840319148/torservice/control.txt",
    "--CookieAuthentication",
    "1",
    "--CookieAuthFile",
    "/tmp/junit2447373153840319148/torservice/control_auth_cookie",
    "--GeoIPFile",
    "/tmp/junit2447373153840319148/torservice/geoip",
    "--GeoIPv6File",
    "/tmp/junit2447373153840319148/torservice/geoip6",
]
==== RUST: running lines
Jan 15 14:30:52.905 [notice] Tor 0.4.6.9 running on Linux with Libevent 2.1.12-stable, OpenSSL 1.1.1m, Zlib 1.2.11, Liblzma N/A, Libzstd N/A and Glibc 2.34 as libc.
Jan 15 14:30:52.905 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jan 15 14:30:52.905 [notice] Read configuration file "/tmp/junit2447373153840319148/torservice/torrc-defaults".
Jan 15 14:30:52.905 [notice] Read configuration file "/tmp/junit2447373153840319148/torservice/torrc".
Jan 15 14:30:52.907 [notice] Opening Control listener on 127.0.0.1:9155
Jan 15 14:30:52.907 [notice] Opened Control listener connection (ready) on 127.0.0.1:9155
Jan 15 14:30:52.907 [notice] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
Jan 15 14:30:52.000 [notice] Parsing GEOIP IPv4 file /tmp/junit2447373153840319148/torservice/geoip.
Jan 15 14:30:53.000 [notice] Parsing GEOIP IPv6 file /tmp/junit2447373153840319148/torservice/geoip6.
Jan 15 14:30:53.000 [notice] Bootstrapped 0% (starting): Starting
Jan 15 14:30:53.000 [notice] Starting with guard context "default"
Jan 15 14:30:53.000 [notice] Delaying directory fetches: DisableNetwork is set.
Jan 15 14:30:53.000 [notice] New control connection opened from 127.0.0.1.
    Lifecycle(class=RealTorController@1226354880, event=onCreate)
    >> TAKEOWNERSHIP

    << 250 OK
    >> SETEVENTS ERR NOTICE WARN

    << 250 OK
    >> SETCONF DisableNetwork=0

Jan 15 14:30:53.000 [notice] Opening Socks listener on 127.0.0.1:0
Jan 15 14:30:53.000 [notice] Socks listener listening on port 40851.
Jan 15 14:30:53.000 [notice] Opened Socks listener connection (ready) on 127.0.0.1:40851
Jan 15 14:30:53.000 [notice] Opening HTTP tunnel listener on 127.0.0.1:0
Jan 15 14:30:53.000 [notice] HTTP tunnel listener listening on port 39647.
Jan 15 14:30:53.000 [notice] Opened HTTP tunnel listener connection (ready) on 127.0.0.1:39647
Jan 15 14:30:53.000 [notice] Bootstrapped 5% (conn): Connecting to a relay
    << 250 OK
    << 650 NOTICE Opening Socks listener on 127.0.0.1:0
    event=Notice, output=Opening Socks listener on 127.0.0.1:0
    << 650 NOTICE Socks listener listening on port 40851.
    event=Notice, output=Socks listener listening on port 40851.
    << 650 NOTICE Opened Socks listener connection (ready) on 127.0.0.1:40851
    event=Notice, output=Opened Socks listener connection (ready) on 127.0.0.1:40851
    << 650 NOTICE Opening HTTP tunnel listener on 127.0.0.1:0
    event=Notice, output=Opening HTTP tunnel listener on 127.0.0.1:0
    << 650 NOTICE HTTP tunnel listener listening on port 39647.
    event=Notice, output=HTTP tunnel listener listening on port 39647.
    << 650 NOTICE Opened HTTP tunnel listener connection (ready) on 127.0.0.1:39647
    event=Notice, output=Opened HTTP tunnel listener connection (ready) on 127.0.0.1:39647
    << 650 NOTICE Bootstrapped 5% (conn): Connecting to a relay
    State(torState=Tor: On, networkState=Network: Disabled)
    event=Notice, output=Bootstrapped 5% (conn): Connecting to a relay
    State(torState=Tor: On, networkState=Network: Enabled)

io.matthewnelson.kmp.tor.KmpTorLoaderJvmUnitTest[jvm] > testExample[jvm] STARTED
Jan 15 14:30:53.000 [notice] Bootstrapped 10% (conn_done): Connected to a relay

io.matthewnelson.kmp.tor.KmpTorLoaderJvmUnitTest[jvm] > testExample[jvm] STANDARD_OUT
    << 650 NOTICE Bootstrapped 10% (conn_done): Connected to a relay
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 10% (conn_done): Connected to a relay
Jan 15 14:30:54.000 [notice] Bootstrapped 14% (handshake): Handshaking with a relay
    << 650 NOTICE Bootstrapped 14% (handshake): Handshaking with a relay
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 14% (handshake): Handshaking with a relay
Jan 15 14:30:54.000 [notice] Bootstrapped 15% (handshake_done): Handshake with a relay done
Jan 15 14:30:54.000 [notice] Bootstrapped 20% (onehop_create): Establishing an encrypted directory connection
    << 650 NOTICE Bootstrapped 15% (handshake_done): Handshake with a relay done
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 15% (handshake_done): Handshake with a relay done
    << 650 NOTICE Bootstrapped 20% (onehop_create): Establishing an encrypted directory connection
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 20% (onehop_create): Establishing an encrypted directory connection
Jan 15 14:30:54.000 [notice] Bootstrapped 25% (requesting_status): Asking for networkstatus consensus
    << 650 NOTICE Bootstrapped 25% (requesting_status): Asking for networkstatus consensus
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 25% (requesting_status): Asking for networkstatus consensus
Jan 15 14:30:54.000 [notice] Bootstrapped 30% (loading_status): Loading networkstatus consensus
    << 650 NOTICE Bootstrapped 30% (loading_status): Loading networkstatus consensus
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 30% (loading_status): Loading networkstatus consensus
Jan 15 14:30:55.000 [notice] I learned some more directory information, but not enough to build a circuit: We have no usable consensus.
    << 650 NOTICE I learned some more directory information, but not enough to build a circuit: We have no usable consensus.
    event=Notice, output=I learned some more directory information, but not enough to build a circuit: We have no usable consensus.
Jan 15 14:30:56.000 [notice] Bootstrapped 40% (loading_keys): Loading authority key certs
    << 650 NOTICE Bootstrapped 40% (loading_keys): Loading authority key certs
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 40% (loading_keys): Loading authority key certs
Jan 15 14:30:56.000 [notice] The current consensus has no exit nodes. Tor can only build internal paths, such as paths to onion services.
Jan 15 14:30:56.000 [notice] Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
Jan 15 14:30:56.000 [notice] I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/6845, and can only build 0% of likely paths. (We have 0% of guards bw, 0% of midpoint bw, and 0% of end bw (no exits in consensus, using mid) = 0% of path bw.)
    << 650 NOTICE The current consensus has no exit nodes. Tor can only build internal paths, such as paths to onion services.
    event=Notice, output=The current consensus has no exit nodes. Tor can only build internal paths, such as paths to onion services.
    << 650 NOTICE Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
    << 650 NOTICE I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/6845, and can only build 0% of likely paths. (We have 0% of guards bw, 0% of midpoint bw, and 0% of end bw (no exits in consensus, using mid) = 0% of path bw.)
    event=Notice, output=I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/6845, and can only build 0% of likely paths. (We have 0% of guards bw, 0% of midpoint bw, and 0% of end bw (no exits in consensus, using mid) = 0% of path bw.)
Jan 15 14:30:57.000 [notice] Bootstrapped 50% (loading_descriptors): Loading relay descriptors
    << 650 NOTICE Bootstrapped 50% (loading_descriptors): Loading relay descriptors
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 50% (loading_descriptors): Loading relay descriptors
==== JAVA - TEST: RESTART 1
Jan 15 14:30:58.000 [notice] The current consensus contains exit nodes. Tor can build exit and internal paths.
    State(torState=Tor: Stopping, networkState=Network: Enabled)
    AddressInfo(dns=null, http=null, socks=null, trans=null)
    Action.Restart
    >> SETCONF DisableNetwork=1

Jan 15 14:30:58.000 [notice] Closing no-longer-configured HTTP tunnel listener on 127.0.0.1:39647
Jan 15 14:30:58.000 [notice] Closing no-longer-configured Socks listener on 127.0.0.1:40851
Jan 15 14:30:58.000 [notice] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
    << 650 NOTICE The current consensus contains exit nodes. Tor can build exit and internal paths.
    event=Notice, output=The current consensus contains exit nodes. Tor can build exit and internal paths.
    << 250 OK
    << 650 NOTICE Closing no-longer-configured HTTP tunnel listener on 127.0.0.1:39647
    event=Notice, output=Closing no-longer-configured HTTP tunnel listener on 127.0.0.1:39647
    << 650 NOTICE Closing no-longer-configured Socks listener on 127.0.0.1:40851
    event=Notice, output=Closing no-longer-configured Socks listener on 127.0.0.1:40851
    << 650 NOTICE DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
    State(torState=Tor: Stopping, networkState=Network: Disabled)
    event=Notice, output=DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
Jan 15 14:30:58.000 [notice] Interrupt: exiting cleanly.
    >> SIGNAL SHUTDOWN

    << 250 OK

============================================================ T= 1642275058
Tor 0.4.6.9 died: Caught signal 11
/home/administrator/AndroidStudioProjects/personal/components/kmp-tor/library/binaries/kmp-tor-binary-build/target/debug/libkmptor.so(+0x11bad1)[0x7f00e4248ad1]
[0x7f00f4ee2f54]
[0x7f00f4ee2f54]
Jvm test output 2 (linuxx64, failure mid run after successful restart)
io.matthewnelson.kmp.tor.KmpTorLoaderJvmUnitTest[jvm] STANDARD_OUT
    Lifecycle(class=RealTorManager@1744007757, event=onCreate)
    State(torState=Tor: Starting, networkState=Network: Disabled)
    Action.Start
==== RUST: acquiring config
==== JAVA: ReentrantLock acquired
==== RUST: setting lines to verify
==== RUST: verifying lines
Jan 15 14:45:49.478 [notice] Tor 0.4.6.9 running on Linux with Libevent 2.1.12-stable, OpenSSL 1.1.1m, Zlib 1.2.11, Liblzma N/A, Libzstd N/A and Glibc 2.34 as libc.
Jan 15 14:45:49.478 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jan 15 14:45:49.478 [notice] Read configuration file "/tmp/junit5222000579364414621/torservice/torrc-defaults".
Jan 15 14:45:49.478 [notice] Read configuration file "/tmp/junit5222000579364414621/torservice/torrc".
Jan 15 14:45:49.479 [warn] Fixing permissions on directory /tmp/junit5222000579364414621/cache
==== RUST: setting lines to run
==== RUST: Starting Tor with args: [
    "tor",
    "--RunAsDaemon",
    "0",
    "-f",
    "/tmp/junit5222000579364414621/torservice/torrc",
    "--defaults-torrc",
    "/tmp/junit5222000579364414621/torservice/torrc-defaults",
    "--ignore-missing-torrc",
    "--ControlPort",
    "9155",
    "--SocksPort",
    "auto",
    "--HTTPTunnelPort",
    "auto",
    "--DormantClientTimeout",
    "10 minutes",
    "--DormantCanceledByStartup",
    "0",
    "--DisableNetwork",
    "1",
    "--SyslogIdentityTag",
    "TorManager",
    "--CacheDirectory",
    "/tmp/junit5222000579364414621/cache",
    "--DataDirectory",
    "/tmp/junit5222000579364414621/torservice/data",
    "--ControlPortWriteToFile",
    "/tmp/junit5222000579364414621/torservice/control.txt",
    "--CookieAuthentication",
    "1",
    "--CookieAuthFile",
    "/tmp/junit5222000579364414621/torservice/control_auth_cookie",
    "--GeoIPFile",
    "/tmp/junit5222000579364414621/torservice/geoip",
    "--GeoIPv6File",
    "/tmp/junit5222000579364414621/torservice/geoip6",
]
==== RUST: running lines
Jan 15 14:45:49.483 [notice] Tor 0.4.6.9 running on Linux with Libevent 2.1.12-stable, OpenSSL 1.1.1m, Zlib 1.2.11, Liblzma N/A, Libzstd N/A and Glibc 2.34 as libc.
Jan 15 14:45:49.483 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jan 15 14:45:49.483 [notice] Read configuration file "/tmp/junit5222000579364414621/torservice/torrc-defaults".
Jan 15 14:45:49.483 [notice] Read configuration file "/tmp/junit5222000579364414621/torservice/torrc".
Jan 15 14:45:49.484 [notice] Opening Control listener on 127.0.0.1:9155
Jan 15 14:45:49.484 [notice] Opened Control listener connection (ready) on 127.0.0.1:9155
Jan 15 14:45:49.484 [notice] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
Jan 15 14:45:49.000 [notice] Parsing GEOIP IPv4 file /tmp/junit5222000579364414621/torservice/geoip.
Jan 15 14:45:49.000 [notice] Parsing GEOIP IPv6 file /tmp/junit5222000579364414621/torservice/geoip6.
Jan 15 14:45:49.000 [notice] Bootstrapped 0% (starting): Starting
Jan 15 14:45:49.000 [notice] Starting with guard context "default"
Jan 15 14:45:49.000 [notice] Delaying directory fetches: DisableNetwork is set.
Jan 15 14:45:49.000 [notice] New control connection opened from 127.0.0.1.
    Lifecycle(class=RealTorController@1511809161, event=onCreate)
    >> TAKEOWNERSHIP

    << 250 OK
    >> SETEVENTS ERR NOTICE WARN

    << 250 OK
    >> SETCONF DisableNetwork=0

Jan 15 14:45:49.000 [notice] Opening Socks listener on 127.0.0.1:0
Jan 15 14:45:49.000 [notice] Socks listener listening on port 35255.
Jan 15 14:45:49.000 [notice] Opened Socks listener connection (ready) on 127.0.0.1:35255
Jan 15 14:45:49.000 [notice] Opening HTTP tunnel listener on 127.0.0.1:0
Jan 15 14:45:49.000 [notice] HTTP tunnel listener listening on port 38231.
Jan 15 14:45:49.000 [notice] Opened HTTP tunnel listener connection (ready) on 127.0.0.1:38231
Jan 15 14:45:49.000 [notice] Bootstrapped 5% (conn): Connecting to a relay
    << 250 OK
    << 650 NOTICE Opening Socks listener on 127.0.0.1:0
    event=Notice, output=Opening Socks listener on 127.0.0.1:0
    << 650 NOTICE Socks listener listening on port 35255.
    event=Notice, output=Socks listener listening on port 35255.
    << 650 NOTICE Opened Socks listener connection (ready) on 127.0.0.1:35255
    event=Notice, output=Opened Socks listener connection (ready) on 127.0.0.1:35255
    << 650 NOTICE Opening HTTP tunnel listener on 127.0.0.1:0
    event=Notice, output=Opening HTTP tunnel listener on 127.0.0.1:0
    << 650 NOTICE HTTP tunnel listener listening on port 38231.
    event=Notice, output=HTTP tunnel listener listening on port 38231.
    << 650 NOTICE Opened HTTP tunnel listener connection (ready) on 127.0.0.1:38231
    event=Notice, output=Opened HTTP tunnel listener connection (ready) on 127.0.0.1:38231
    << 650 NOTICE Bootstrapped 5% (conn): Connecting to a relay
    State(torState=Tor: On, networkState=Network: Disabled)
    event=Notice, output=Bootstrapped 5% (conn): Connecting to a relay
    State(torState=Tor: On, networkState=Network: Enabled)

io.matthewnelson.kmp.tor.KmpTorLoaderJvmUnitTest[jvm] > testExample[jvm] STARTED
Jan 15 14:45:50.000 [notice] Bootstrapped 10% (conn_done): Connected to a relay

io.matthewnelson.kmp.tor.KmpTorLoaderJvmUnitTest[jvm] > testExample[jvm] STANDARD_OUT
    << 650 NOTICE Bootstrapped 10% (conn_done): Connected to a relay
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 10% (conn_done): Connected to a relay
Jan 15 14:45:50.000 [notice] Bootstrapped 14% (handshake): Handshaking with a relay
    << 650 NOTICE Bootstrapped 14% (handshake): Handshaking with a relay
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 14% (handshake): Handshaking with a relay
Jan 15 14:45:50.000 [notice] Bootstrapped 15% (handshake_done): Handshake with a relay done
Jan 15 14:45:50.000 [notice] Bootstrapped 20% (onehop_create): Establishing an encrypted directory connection
    << 650 NOTICE Bootstrapped 15% (handshake_done): Handshake with a relay done
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 15% (handshake_done): Handshake with a relay done
    << 650 NOTICE Bootstrapped 20% (onehop_create): Establishing an encrypted directory connection
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 20% (onehop_create): Establishing an encrypted directory connection
Jan 15 14:45:50.000 [notice] Bootstrapped 25% (requesting_status): Asking for networkstatus consensus
    << 650 NOTICE Bootstrapped 25% (requesting_status): Asking for networkstatus consensus
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 25% (requesting_status): Asking for networkstatus consensus
Jan 15 14:45:51.000 [notice] Bootstrapped 30% (loading_status): Loading networkstatus consensus
    << 650 NOTICE Bootstrapped 30% (loading_status): Loading networkstatus consensus
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 30% (loading_status): Loading networkstatus consensus
Jan 15 14:45:52.000 [notice] I learned some more directory information, but not enough to build a circuit: We have no usable consensus.
    << 650 NOTICE I learned some more directory information, but not enough to build a circuit: We have no usable consensus.
    event=Notice, output=I learned some more directory information, but not enough to build a circuit: We have no usable consensus.
Jan 15 14:45:52.000 [notice] Bootstrapped 40% (loading_keys): Loading authority key certs
    << 650 NOTICE Bootstrapped 40% (loading_keys): Loading authority key certs
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 40% (loading_keys): Loading authority key certs
Jan 15 14:45:52.000 [notice] The current consensus has no exit nodes. Tor can only build internal paths, such as paths to onion services.
Jan 15 14:45:52.000 [notice] Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
Jan 15 14:45:52.000 [notice] I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/6845, and can only build 0% of likely paths. (We have 0% of guards bw, 0% of midpoint bw, and 0% of end bw (no exits in consensus, using mid) = 0% of path bw.)
    << 650 NOTICE The current consensus has no exit nodes. Tor can only build internal paths, such as paths to onion services.
    event=Notice, output=The current consensus has no exit nodes. Tor can only build internal paths, such as paths to onion services.
    << 650 NOTICE Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
    << 650 NOTICE I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/6845, and can only build 0% of likely paths. (We have 0% of guards bw, 0% of midpoint bw, and 0% of end bw (no exits in consensus, using mid) = 0% of path bw.)
    event=Notice, output=I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/6845, and can only build 0% of likely paths. (We have 0% of guards bw, 0% of midpoint bw, and 0% of end bw (no exits in consensus, using mid) = 0% of path bw.)
Jan 15 14:45:53.000 [notice] Bootstrapped 50% (loading_descriptors): Loading relay descriptors
    << 650 NOTICE Bootstrapped 50% (loading_descriptors): Loading relay descriptors
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 50% (loading_descriptors): Loading relay descriptors
Jan 15 14:45:54.000 [notice] The current consensus contains exit nodes. Tor can build exit and internal paths.
    << 650 NOTICE The current consensus contains exit nodes. Tor can build exit and internal paths.
    event=Notice, output=The current consensus contains exit nodes. Tor can build exit and internal paths.
==== JAVA - TEST: RESTART 1
    State(torState=Tor: Stopping, networkState=Network: Enabled)
    AddressInfo(dns=null, http=null, socks=null, trans=null)
    Action.Restart
    >> SETCONF DisableNetwork=1

Jan 15 14:45:54.000 [notice] Closing no-longer-configured HTTP tunnel listener on 127.0.0.1:38231
Jan 15 14:45:54.000 [notice] Closing no-longer-configured Socks listener on 127.0.0.1:35255
Jan 15 14:45:54.000 [notice] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
    << 250 OK
    << 650 NOTICE Closing no-longer-configured HTTP tunnel listener on 127.0.0.1:38231
    event=Notice, output=Closing no-longer-configured HTTP tunnel listener on 127.0.0.1:38231
    << 650 NOTICE Closing no-longer-configured Socks listener on 127.0.0.1:35255
    event=Notice, output=Closing no-longer-configured Socks listener on 127.0.0.1:35255
    << 650 NOTICE DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
    State(torState=Tor: Stopping, networkState=Network: Disabled)
    event=Notice, output=DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
Jan 15 14:45:55.000 [notice] Interrupt: exiting cleanly.
    >> SIGNAL SHUTDOWN

    << 250 OK
    Replies off the control port were empty
    Tor has stopped
    Lifecycle(class=RealTorController@1511809161, event=onDestroy)
==== RUST: freeing config
==== JAVA: runLines completed
==== JAVA: ReentrantLock release
    State(torState=Tor: Off, networkState=Network: Disabled)
    State(torState=Tor: Starting, networkState=Network: Disabled)
==== JAVA: ReentrantLock acquired
==== RUST: acquiring config
==== RUST: setting lines to verify
==== RUST: verifying lines
Jan 15 14:45:56.000 [notice] Tor 0.4.6.9 running on Linux with Libevent 2.1.12-stable, OpenSSL 1.1.1m, Zlib 1.2.11, Liblzma N/A, Libzstd N/A and Glibc 2.34 as libc.
Jan 15 14:45:56.000 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jan 15 14:45:56.000 [notice] Read configuration file "/tmp/junit5222000579364414621/torservice/torrc-defaults".
Jan 15 14:45:56.000 [notice] Read configuration file "/tmp/junit5222000579364414621/torservice/torrc".
==== RUST: setting lines to run
==== RUST: Starting Tor with args: [
    "tor",
    "--RunAsDaemon",
    "0",
    "-f",
    "/tmp/junit5222000579364414621/torservice/torrc",
    "--defaults-torrc",
    "/tmp/junit5222000579364414621/torservice/torrc-defaults",
    "--ignore-missing-torrc",
    "--ControlPort",
    "9155",
    "--SocksPort",
    "auto",
    "--HTTPTunnelPort",
    "auto",
    "--DormantClientTimeout",
    "10 minutes",
    "--DormantCanceledByStartup",
    "0",
    "--DisableNetwork",
    "1",
    "--SyslogIdentityTag",
    "TorManager",
    "--CacheDirectory",
    "/tmp/junit5222000579364414621/cache",
    "--DataDirectory",
    "/tmp/junit5222000579364414621/torservice/data",
    "--ControlPortWriteToFile",
    "/tmp/junit5222000579364414621/torservice/control.txt",
    "--CookieAuthentication",
    "1",
    "--CookieAuthFile",
    "/tmp/junit5222000579364414621/torservice/control_auth_cookie",
    "--GeoIPFile",
    "/tmp/junit5222000579364414621/torservice/geoip",
    "--GeoIPv6File",
    "/tmp/junit5222000579364414621/torservice/geoip6",
]
==== RUST: running lines
Jan 15 14:45:56.000 [notice] Tor 0.4.6.9 running on Linux with Libevent 2.1.12-stable, OpenSSL 1.1.1m, Zlib 1.2.11, Liblzma N/A, Libzstd N/A and Glibc 2.34 as libc.
Jan 15 14:45:56.000 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jan 15 14:45:56.000 [notice] Read configuration file "/tmp/junit5222000579364414621/torservice/torrc-defaults".
Jan 15 14:45:56.000 [notice] Read configuration file "/tmp/junit5222000579364414621/torservice/torrc".
Jan 15 14:45:56.000 [notice] Opening Control listener on 127.0.0.1:9155
Jan 15 14:45:56.000 [notice] Opened Control listener connection (ready) on 127.0.0.1:9155
Jan 15 14:45:56.000 [notice] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
Jan 15 14:45:56.000 [notice] Parsing GEOIP IPv4 file /tmp/junit5222000579364414621/torservice/geoip.
Jan 15 14:45:56.000 [notice] Parsing GEOIP IPv6 file /tmp/junit5222000579364414621/torservice/geoip6.
Jan 15 14:45:56.000 [notice] Bootstrapped 0% (starting): Starting
Jan 15 14:45:56.000 [notice] Starting with guard context "default"
Jan 15 14:45:56.000 [notice] Delaying directory fetches: DisableNetwork is set.
Jan 15 14:45:56.000 [notice] New control connection opened from 127.0.0.1.
    Lifecycle(class=RealTorController@446575866, event=onCreate)
    >> TAKEOWNERSHIP

    << 250 OK
    >> SETEVENTS ERR NOTICE WARN

    << 250 OK
    >> SETCONF DisableNetwork=0

Jan 15 14:45:56.000 [notice] Opening Socks listener on 127.0.0.1:0
Jan 15 14:45:56.000 [notice] Socks listener listening on port 42085.
Jan 15 14:45:56.000 [notice] Opened Socks listener connection (ready) on 127.0.0.1:42085
Jan 15 14:45:56.000 [notice] Opening HTTP tunnel listener on 127.0.0.1:0
Jan 15 14:45:56.000 [notice] HTTP tunnel listener listening on port 39265.
Jan 15 14:45:56.000 [notice] Opened HTTP tunnel listener connection (ready) on 127.0.0.1:39265
Jan 15 14:45:56.000 [notice] Bootstrapped 5% (conn): Connecting to a relay
    << 250 OK
    << 650 NOTICE Opening Socks listener on 127.0.0.1:0
    event=Notice, output=Opening Socks listener on 127.0.0.1:0
    << 650 NOTICE Socks listener listening on port 42085.
    event=Notice, output=Socks listener listening on port 42085.
    << 650 NOTICE Opened Socks listener connection (ready) on 127.0.0.1:42085
    event=Notice, output=Opened Socks listener connection (ready) on 127.0.0.1:42085
    << 650 NOTICE Opening HTTP tunnel listener on 127.0.0.1:0
    event=Notice, output=Opening HTTP tunnel listener on 127.0.0.1:0
    << 650 NOTICE HTTP tunnel listener listening on port 39265.
    event=Notice, output=HTTP tunnel listener listening on port 39265.
    << 650 NOTICE Opened HTTP tunnel listener connection (ready) on 127.0.0.1:39265
    event=Notice, output=Opened HTTP tunnel listener connection (ready) on 127.0.0.1:39265
    << 650 NOTICE Bootstrapped 5% (conn): Connecting to a relay
    State(torState=Tor: On, networkState=Network: Disabled)
    event=Notice, output=Bootstrapped 5% (conn): Connecting to a relay
    State(torState=Tor: On, networkState=Network: Enabled)
Jan 15 14:45:56.000 [notice] Bootstrapped 10% (conn_done): Connected to a relay
    << 650 NOTICE Bootstrapped 10% (conn_done): Connected to a relay
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 10% (conn_done): Connected to a relay
Jan 15 14:45:56.000 [notice] Bootstrapped 14% (handshake): Handshaking with a relay
    << 650 NOTICE Bootstrapped 14% (handshake): Handshaking with a relay
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 14% (handshake): Handshaking with a relay
Jan 15 14:45:57.000 [notice] Bootstrapped 15% (handshake_done): Handshake with a relay done
Jan 15 14:45:57.000 [notice] Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
    << 650 NOTICE Bootstrapped 15% (handshake_done): Handshake with a relay done
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 15% (handshake_done): Handshake with a relay done
    << 650 NOTICE Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
Jan 15 14:45:57.000 [notice] Bootstrapped 52% (loading_descriptors): Loading relay descriptors
    << 650 NOTICE Bootstrapped 52% (loading_descriptors): Loading relay descriptors
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 52% (loading_descriptors): Loading relay descriptors
Jan 15 14:45:59.000 [notice] Bootstrapped 59% (loading_descriptors): Loading relay descriptors
    << 650 NOTICE Bootstrapped 59% (loading_descriptors): Loading relay descriptors
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 59% (loading_descriptors): Loading relay descriptors
Jan 15 14:46:00.000 [notice] Bootstrapped 68% (loading_descriptors): Loading relay descriptors
    << 650 NOTICE Bootstrapped 68% (loading_descriptors): Loading relay descriptors
    State(torState=Tor: On, networkState=Network: Enabled)
    event=Notice, output=Bootstrapped 68% (loading_descriptors): Loading relay descriptors

============================================================ T= 1642275961
Tor 0.4.6.9 died: Caught signal 11
/home/administrator/AndroidStudioProjects/personal/components/kmp-tor/library/binaries/kmp-tor-binary-build/target/debug/libkmptor.so(+0x11bad1)[0x7faad1b17ad1]
[0x7faae900c82c]
[0x7faae900c82c]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions