losfair / blueboat Goto Github PK
View Code? Open in Web Editor NEWAll-in-one, multi-tenant serverless JavaScript runtime.
Home Page: https://blueboat.io
License: Apache License 2.0
All-in-one, multi-tenant serverless JavaScript runtime.
Home Page: https://blueboat.io
License: Apache License 2.0
The current AGPL-3.0 license is used as a "safe default" and I'd like to move to a more permissive license.
Track total memory usage & refuse spawning new workers when memory usage goes above a threshold.
Allows a script to extend its lifetime out of the current fetch
request.
Deno-style modules and imports.
Allows getting rid of webpack & code reuse.
Need to figure out how: Pin each connection to one worker instance & renew timeout on each incoming message?
I tought it seems good, but did it stop to develop?
The entire TypeScript API definition is published as the blueboat-types package. This issue tracks the API surface on a high level:
Tier 1 APIs are stable interfaces exposed by Blueboat. Incompatible changes require a semver major.
fetch()
, Request
and Response
objectsTextEncoder
, TextDecoder
setTimeout
, clearTimeout
setInterval
, clearInterval
URL
, URLSearchParams
crypto.getRandomValues
crypto.randomUUID
crypto.subtle
(NativeCrypto
can be used instead)console
console.log()
console.warn()
console.error()
Router
objectNativeCrypto.Ed25519
, NativeCrypto.X25519
NativeCrypto.JWT
NativeCrypto.digest
NativeCrypto.constantTimeEq
NativeCrypto.AEAD
NativeCrypto.AEAD.{aes128GcmSivEncrypt,aes128GcmSivDecrypt}
NativeCrypto.HMAC
NativeCrypto.HMAC.hmacSha256
Template.render()
Codec.hexencode()
, Codec.hexdecode()
Codec.b64encode()
, Codec.b64decode()
Dataset.Mime.guessByExt()
TextUtil.Yaml.parse()
, TextUtil.Yaml.stringify()
TextUtil.Markdown.renderToHtml()
Compress.Zstd.blockCompress
Compress.Zstd.blockDecompress
Tier 2 APIs are experimental - incompatible changes can be made within a major version.
Graphics.Canvas
)Graphics.Layout
)Background.atMostOnce()
Background.atLeastOnce()
Background.delayed()
Validation.JTD
ExternalService.AWS.sign
ExternalService.AWS.getPresignedUrl
ExternalService.GitHub
TextUtil.DOM.HTML
TextUtil.DOM.XML
App.pubsub
/_blueboat/events
multipart/form-data
parser: Codec.Multipart.decode
Currently we periodically query the KV store to check for apps/routing updates, and cache apps and domains in memory. This does not scale with higher numbers of domains and apps.
Possible solutions:
e.g. We have two routes for /
and /hello
.
/
./hello
./
cache without querying DB.This loop involving prefix_delete
can be parallelized:
Line 500 in 14218b4
Runtime metrics collection & visualization.
Currently, an atLeastOnce
background task will be retried if the Blueboat host process exits during execution, but will NOT be retried in the following circumstances:
Supporting retry in these cases requires re-enqueueing the task to Kafka.
Paths like /_next/static/chunks/pages/people/%5Busername%5D-1730a62635db81a3.js
are not correctly mapped to files.
hello, Does blueboat start a sandbox every time a function is run?
Thanks, Looking forward to your reply
How we enforce app memory limits now:
v8::Isolate
setjmp
environmentlongjmp
outv8::Isolate
instance.Also, we reserve 1MB "host entry threshold memory" when a JavaScript call returns. This ensures that we always have enough memory on the host side to allocate small objects.
It seems that V8 ArrayBuffer
's are off-heap and not counted towards the total heap limit. So we manage a separate memory pool for ArrayBuffer memory.
V8 throws an exception if an ArrayBuffer allocation fails in JavaScript so it just works. On the host side we do an explicit check against the memory pool before allocating new ArrayBuffer's.
Getting RangeError: Invalid status code
when using Response.redirect("/some_url")
.
Reduces cold start time.
We now cache isolates though.
I was curious if you had considered exposing something like DOMParser
, or some other HTML parsing interface. I think in edge computing people often use it for rewriting outgoing HTML, though I was hoping to use it just to extract a few HTML attributes.
It looks like rust has some decent HTML parsers (https://github.com/y21/tl) but in looking at the other blueboat interfaces exposed to v8 it seems like most are functional and don't hold any state, whereas the interface I was imagining might tokenize HTML in rust but also run queries in rust and just return the result to JS. But perhaps there's some better way to set up the interface?
Currently there isn't much documentation on either Blueboat JavaScript APIs or operating Blueboat itself.
Stress-test with playground examples concurrently:
wrk -c 20 -d 3600 -t 2 --latency "http://localhost:3080/api/since?t=3600000&n=4"
wrk -c 5 -d 3600 -t 1 http://localhost:3080/mle-string-init
wrk -c 2 -d 3600 -t 1 http://localhost:3080/catastrophic-backtracking
(after some time)
...
2021-01-16T17:10:25.958Z INFO rusty_workers_runtime::runtime > worker instance c7097434ea2c8001feaceb697384b237 exited with error: Execution(MemoryLimitExceeded)
2021-01-16T17:10:25.958Z ERROR rusty_workers_runtime::isolate > isolated poisoned, dropping worker
2021-01-16T17:10:25.969Z INFO rusty_workers_proxy::sched > execution error: RuntimeThrowsException
2021-01-16T17:10:25.970Z INFO rusty_workers_proxy::sched > spawning new worker for app ccb60bf1-db67-4627-8a88-37aacec63258 on runtime 8d0f27896d72887abbff34124802f9e3 with load 0.12863355458915082
2021-01-16T17:10:26.024Z INFO rusty_workers_runtime::isolate > restarting isolate worker
2021-01-16T17:10:26.065Z INFO rusty_workers_runtime::isolate > restarting isolate worker
2021-01-16T17:10:26.223Z INFO rusty_workers_runtime::runtime > worker a11c9f22ed394e7e07dda26270ce331e timed out
<--- Last few GCs --->
[615951:0x21b00000000] 2243 ms: Mark-sweep 43.2 (44.9) -> 26.3 (28.1) MB, 262.0 / 0.0 ms (average mu = 0.261, current mu = 0.259) allocation failure scavenge might not succeed
[615951:0x21b00000000] 2873 ms: Mark-sweep (reduce) 64.1 (65.9) -> 38.9 (40.2) MB, 455.5 / 0.0 ms (average mu = 0.270, current mu = 0.277) low memory notification GC in old space requested
<--- JS stacktrace --->
thread '<unnamed>' panicked at 'oom_protected_callback: unprotected OOM', rusty-workers-runtime/src/executor.rs:584:13
stack backtrace:
0: std::panicking::begin_panic
1: rusty_workers_runtime::executor::oom_protected_callback
2: _ZN2v85Utils16ReportOOMFailureEPNS_8internal7IsolateEPKcb
3: _ZN2v88internal2V823FatalProcessOutOfMemoryEPNS0_7IsolateEPKcb
4: _ZN2v88internal4Heap23FatalProcessOutOfMemoryEPKc
5: _ZN2v88internal4Heap14CollectGarbageENS0_15AllocationSpaceENS0_23GarbageCollectionReasonENS_15GCCallbackFlagsE
6: CollectAllAvailableGarbage
at ./../../../../../.cargo/git/checkouts/rusty_v8-0ed9985aaa183ccd/d39e8bf/v8/src/heap/heap.cc:1399:10
7: _ZN2v87Isolate21LowMemoryNotificationEv
8: rusty_workers_runtime::isolate::isolate_worker
9: rusty_workers_runtime::isolate::IsolateThread::new::{{closure}}::{{closure}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
There aren't any automated tests currently and I test each new feature manually in examples/pkg
.
This is bad. We need to fix it.
Reproduction steps:
The scheduler does not immediately respond to deployment changes, and still routes traffic to the previously active runtime instances.
Cause:
The scheduler decides that it's unnecessary to spawn new workers because it has already cached previously spawn
-ed workers as ReadyInstance
's and keeps reusing them.
Solution:
Random small dropouts on ReadyInstance
s.
Currently, for exceptions thrown in the initialization phase of an application:
For example I got a confusing error message:
2022-01-03T10:15:43.468764Z ERROR blueboat::ctx: native invoke error from app ***.tar] request "unknown": expected type `v8::data::Uint8Array`, got `v8::data::Value`
Due to an undefined
being passed to new TextDecoder().decode()
.
Implement the Cache API.
It would be nice not to start the entire blueboat_server
for local development or small-scale self-hosting. Instead, have a Node/Deno-style CLI to "just run this app on this machine".
Blueboat's log output is becoming very complex and the tracing crate looks like a good fit.
Currently load calculation and collection is implemented but we're not yet using this data to make any scheduling decisions.
Reproducible at commit 55452c6.
Steps:
addEventListener("fetch", async (event) => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(req) {
await new Promise(resolve => setTimeout(resolve, 100));
return new Response("OK");
}
Fetch the worker
Spawn a worker:
addEventListener("fetch", async (event) => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(req) {
await new Promise(resolve => setTimeout(resolve, 35000));
return new Response("OK");
}
Fetch the worker and wait for timeout
Get the panic.
Log (with valgrind):
$ RUST_LOG=debug RUST_BACKTRACE=1 valgrind ./target/release/rusty-workers-runtime --rpc-listen 127.0.0.1:1208
==1027322== Memcheck, a memory error detector
==1027322== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==1027322== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==1027322== Command: ./target/release/rusty-workers-runtime --rpc-listen 127.0.0.1:1208
==1027322==
INFO rusty_workers_runtime > rusty-workers-runtime starting
INFO rusty_workers_runtime > runtime initialized
==1027322== Warning: set address range perms: large range [0x351100000000, 0x351300000000) (noaccess)
==1027322== Warning: set address range perms: large range [0x351100000000, 0x351300000000) (noaccess)
==1027322== Warning: set address range perms: large range [0x351100000000, 0x351200000000) (noaccess)
INFO rusty_workers_runtime::executor > worker instance 3ca7aa389665e11ad18b3e36ebe763d9 ready
DEBUG rusty_workers_runtime::runtime > remaining time budget: 4.998568083s
INFO tarpc::rpc::server > ClientHandler finished.
DEBUG rusty_workers_runtime::executor > log: event type: Fetch
==1027322== Thread 33:
==1027322== Conditional jump or move depends on uninitialised value(s)
==1027322== at 0x3BFD60: v8::internal::GlobalHandles::MoveGlobal(unsigned long**, unsigned long**) (global-handles.cc:1026)
==1027322== by 0x315086: v8__Global__New (binding.cc:300)
==1027322== by 0x1F66B1: new_raw<rusty_v8::data::Function> (handle.rs:140)
==1027322== by 0x1F66B1: new<rusty_v8::data::Function,rusty_v8::handle::Local<rusty_v8::data::Function>> (handle.rs:133)
==1027322== by 0x1F66B1: {{closure}} (executor.rs:373)
==1027322== by 0x1F66B1: rusty_workers_runtime::engine::wrap_callback (engine.rs:88)
==1027322== by 0x1F7D9A: call_service_callback (executor.rs:350)
==1027322== by 0x1F7D9A: call<fn(&mut rusty_v8::scope::HandleScope<rusty_v8::data::Context>, rusty_v8::function::FunctionCallbackArguments, rusty_v8::function::ReturnValue),(&mut rusty_v8::scope::HandleScope<rusty_v8::data::Context>, rusty_v8::function::FunctionCallbackArguments, rusty_v8::function::ReturnValue)> (function.rs:70)
==1027322== by 0x1F7D9A: {{closure}}<fn(&mut rusty_v8::scope::HandleScope<rusty_v8::data::Context>, rusty_v8::function::FunctionCallbackArguments, rusty_v8::function::ReturnValue)> (function.rs:278)
==1027322== by 0x1F7D9A: <extern "C" fn(A0) -> R as rusty_v8::support::CFnFrom<F>>::mapping::c_fn (support.rs:722)
==1027322== by 0x8F4B58: v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) (api-arguments-inl.h:158)
==1027322== by 0x8F406F: v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) (builtins-api.cc:111)
==1027322== by 0x8F364A: v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) (builtins-api.cc:141)
==1027322== by 0x7C0D57: Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit (in /home/zhy/Projects/rusty-workers/target/release/rusty-workers-runtime)
==1027322== by 0x75AD0E: Builtins_InterpreterEntryTrampoline (in /home/zhy/Projects/rusty-workers/target/release/rusty-workers-runtime)
==1027322== by 0x75AD0E: Builtins_InterpreterEntryTrampoline (in /home/zhy/Projects/rusty-workers/target/release/rusty-workers-runtime)
==1027322== by 0x75AD0E: Builtins_InterpreterEntryTrampoline (in /home/zhy/Projects/rusty-workers/target/release/rusty-workers-runtime)
==1027322== by 0x75AD0E: Builtins_InterpreterEntryTrampoline (in /home/zhy/Projects/rusty-workers/target/release/rusty-workers-runtime)
==1027322==
DEBUG rusty_workers_runtime::runtime > remaining time budget: 4.999995168s
DEBUG rusty_workers_runtime::runtime > remaining time budget: 4.999989755s
DEBUG rusty_workers_runtime::io > leaving IoProcessor::run
INFO tarpc::rpc::server > ClientHandler finished.
==1027322== Warning: set address range perms: large range [0x2a2200000000, 0x2a2400000000) (noaccess)
==1027322== Warning: set address range perms: large range [0x2a2200000000, 0x2a2400000000) (noaccess)
==1027322== Warning: set address range perms: large range [0x2a2200000000, 0x2a2300000000) (noaccess)
INFO rusty_workers_runtime::executor > worker instance 808bb25b5cd5ab17614d7ee32ad649a1 ready
DEBUG rusty_workers_runtime::runtime > remaining time budget: 4.999996215s
INFO tarpc::rpc::server > ClientHandler finished.
DEBUG rusty_workers_runtime::executor > log: event type: Fetch
DEBUG rusty_workers_runtime::runtime > remaining time budget: 4.965420188s
DEBUG tarpc::rpc::server > [b17ffaed9ffce2cfd8] Response did not complete before deadline of 2021-01-04T03:08:15Zs.
INFO tarpc::rpc::server > ClientHandler finished.
==1027322== Warning: set address range perms: large range [0x2a2200000000, 0x2a2300000000) (noaccess)
INFO rusty_workers_runtime::runtime > worker instance 808bb25b5cd5ab17614d7ee32ad649a1 exited with error: IoTimeout
INFO rusty_workers_runtime::runtime > stopping monitor for worker 808bb25b5cd5ab17614d7ee32ad649a1
DEBUG rusty_workers_runtime::io > leaving IoProcessor::run
thread 'tokio-runtime-worker' panicked at 'assertion failed: `(left == right)`
left: `259364176`,
right: `0`', /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpsc/shared.rs:486:9
stack backtrace:
==1027322== Thread 10 tokio-runtime-wo:
==1027322== Syscall param statx(file_name) points to unaddressable byte(s)
==1027322== at 0x4B059FE: statx (statx.c:29)
==1027322== by 0xD81050: statx (weak.rs:134)
==1027322== by 0xD81050: std::sys::unix::fs::try_statx (fs.rs:123)
==1027322== by 0xD81A02: file_attr (fs.rs:753)
==1027322== by 0xD81A02: metadata (fs.rs:501)
==1027322== by 0xD81A02: mmap (gimli.rs:113)
==1027322== by 0xD81A02: new (elf.rs:15)
==1027322== by 0xD81A02: mapping_for_lib (gimli.rs:579)
==1027322== by 0xD81A02: std::backtrace_rs::symbolize::gimli::resolve::{{closure}} (gimli.rs:613)
==1027322== by 0xD817AA: with_global<closure-1> (gimli.rs:525)
==1027322== by 0xD817AA: std::backtrace_rs::symbolize::gimli::resolve (gimli.rs:605)
==1027322== by 0xD7BA47: resolve_frame_unsynchronized<closure-0> (mod.rs:178)
==1027322== by 0xD7BA47: std::sys_common::backtrace::_print_fmt::{{closure}} (backtrace.rs:74)
==1027322== by 0xD812FE: call_mut<(&std::backtrace_rs::backtrace::Frame),FnMut<(&std::backtrace_rs::backtrace::Frame)>> (function.rs:269)
==1027322== by 0xD812FE: std::backtrace_rs::backtrace::libunwind::trace::trace_fn (libunwind.rs:102)
==1027322== by 0x4873783: _Unwind_Backtrace (in /usr/lib/x86_64-linux-gnu/libgcc_s.so.1)
==1027322== by 0xD7B696: trace (libunwind.rs:90)
==1027322== by 0xD7B696: trace_unsynchronized<closure-1> (mod.rs:66)
==1027322== by 0xD7B696: _print_fmt (backtrace.rs:67)
==1027322== by 0xD7B696: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt (backtrace.rs:46)
==1027322== by 0xD9971B: core::fmt::write (mod.rs:1078)
==1027322== by 0xD766B1: std::io::Write::write_fmt (mod.rs:1519)
==1027322== by 0xD7D824: _print (backtrace.rs:49)
==1027322== by 0xD7D824: print (backtrace.rs:36)
==1027322== by 0xD7D824: std::panicking::default_hook::{{closure}} (panicking.rs:208)
==1027322== by 0xD7D379: std::panicking::default_hook (panicking.rs:225)
==1027322== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==1027322==
==1027322== Syscall param statx(buf) points to unaddressable byte(s)
==1027322== at 0x4B059FE: statx (statx.c:29)
==1027322== by 0xD81050: statx (weak.rs:134)
==1027322== by 0xD81050: std::sys::unix::fs::try_statx (fs.rs:123)
==1027322== by 0xD81A02: file_attr (fs.rs:753)
==1027322== by 0xD81A02: metadata (fs.rs:501)
==1027322== by 0xD81A02: mmap (gimli.rs:113)
==1027322== by 0xD81A02: new (elf.rs:15)
==1027322== by 0xD81A02: mapping_for_lib (gimli.rs:579)
==1027322== by 0xD81A02: std::backtrace_rs::symbolize::gimli::resolve::{{closure}} (gimli.rs:613)
==1027322== by 0xD817AA: with_global<closure-1> (gimli.rs:525)
==1027322== by 0xD817AA: std::backtrace_rs::symbolize::gimli::resolve (gimli.rs:605)
==1027322== by 0xD7BA47: resolve_frame_unsynchronized<closure-0> (mod.rs:178)
==1027322== by 0xD7BA47: std::sys_common::backtrace::_print_fmt::{{closure}} (backtrace.rs:74)
==1027322== by 0xD812FE: call_mut<(&std::backtrace_rs::backtrace::Frame),FnMut<(&std::backtrace_rs::backtrace::Frame)>> (function.rs:269)
==1027322== by 0xD812FE: std::backtrace_rs::backtrace::libunwind::trace::trace_fn (libunwind.rs:102)
==1027322== by 0x4873783: _Unwind_Backtrace (in /usr/lib/x86_64-linux-gnu/libgcc_s.so.1)
==1027322== by 0xD7B696: trace (libunwind.rs:90)
==1027322== by 0xD7B696: trace_unsynchronized<closure-1> (mod.rs:66)
==1027322== by 0xD7B696: _print_fmt (backtrace.rs:67)
==1027322== by 0xD7B696: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt (backtrace.rs:46)
==1027322== by 0xD9971B: core::fmt::write (mod.rs:1078)
==1027322== by 0xD766B1: std::io::Write::write_fmt (mod.rs:1519)
==1027322== by 0xD7D824: _print (backtrace.rs:49)
==1027322== by 0xD7D824: print (backtrace.rs:36)
==1027322== by 0xD7D824: std::panicking::default_hook::{{closure}} (panicking.rs:208)
==1027322== by 0xD7D379: std::panicking::default_hook (panicking.rs:225)
==1027322== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==1027322==
0: rust_begin_unwind
at /rustc/f76ecd0668fcdb289456cdc72a39ad15467cc454/library/std/src/panicking.rs:493:5
1: core::panicking::panic_fmt
at /rustc/f76ecd0668fcdb289456cdc72a39ad15467cc454/library/core/src/panicking.rs:92:14
2: <std::sync::mpsc::shared::Packet<T> as core::ops::drop::Drop>::drop
3: core::ptr::drop_in_place
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:179:1
4: alloc::sync::Arc<T>::drop_slow
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:951:18
5: core::ptr::drop_in_place
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:179:1
6: rusty_workers_runtime::io::IoProcessor::run::{{closure}}::{{closure}}
at ./rusty-workers-runtime/src/io.rs:119:13
7: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
8: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/core.rs:173:17
9: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/loom/std/unsafe_cell.rs:14:9
10: tokio::runtime::task::core::Core<T,S>::poll
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/core.rs:158:13
11: tokio::runtime::task::harness::Harness<T,S>::poll::{{closure}}
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/harness.rs:107:27
12: core::ops::function::FnOnce::call_once
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
13: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:322:9
14: std::panicking::try::do_call
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:379:40
15: std::panicking::try
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:343:19
16: std::panic::catch_unwind
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:396:14
17: tokio::runtime::task::harness::Harness<T,S>::poll
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/harness.rs:89:19
18: tokio::runtime::task::raw::RawTask::poll
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/raw.rs:66:18
19: tokio::runtime::task::Notified<S>::run
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/mod.rs:171:9
20: tokio::runtime::thread_pool::worker::Context::run_task::{{closure}}
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/thread_pool/worker.rs:370:21
21: tokio::coop::with_budget::{{closure}}
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/coop.rs:121:9
22: std::thread::local::LocalKey<T>::try_with
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:272:16
23: std::thread::local::LocalKey<T>::with
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:248:9
24: tokio::coop::with_budget
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/coop.rs:114:5
25: tokio::coop::budget
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/coop.rs:98:5
26: tokio::runtime::thread_pool::worker::Context::run_task
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/thread_pool/worker.rs:348:9
27: tokio::runtime::thread_pool::worker::Context::run
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/thread_pool/worker.rs:318:24
28: tokio::runtime::thread_pool::worker::run::{{closure}}
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/thread_pool/worker.rs:303:17
29: tokio::macros::scoped_tls::ScopedKey<T>::set
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/macros/scoped_tls.rs:61:9
30: tokio::runtime::thread_pool::worker::run
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/thread_pool/worker.rs:300:5
31: tokio::runtime::thread_pool::worker::Launch::launch::{{closure}}
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/thread_pool/worker.rs:279:45
32: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/blocking/task.rs:42:21
33: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/core.rs:173:17
34: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/loom/std/unsafe_cell.rs:14:9
35: tokio::runtime::task::core::Core<T,S>::poll
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/core.rs:158:13
36: tokio::runtime::task::harness::Harness<T,S>::poll::{{closure}}
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/harness.rs:107:27
37: core::ops::function::FnOnce::call_once
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
38: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:322:9
39: std::panicking::try::do_call
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:379:40
40: std::panicking::try
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:343:19
41: std::panic::catch_unwind
at /home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:396:14
42: tokio::runtime::task::harness::Harness<T,S>::poll
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/harness.rs:89:19
43: tokio::runtime::task::raw::RawTask::poll
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/raw.rs:66:18
44: tokio::runtime::task::Notified<S>::run
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/task/mod.rs:171:9
45: tokio::runtime::blocking::pool::Inner::run
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/blocking/pool.rs:277:17
46: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}
at /home/zhy/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.0.1/src/runtime/blocking/pool.rs:257:17
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Hi, cargo install boatctl
fails on
error[E0445]: private trait `Width` in public interface
--> /home/krystofmatejka/.cargo/registry/src/github.com-1ecc6299db9ec823/tabled-0.7.0/src/width.rs:904:1
|
904 | / impl<W> TableOption for Justify<W>
905 | | where
906 | | W: Width,
907 | | {
... |
917 | | }
918 | | }
| |_^ can't leak private trait
which is caused by https://crates.io/crates/tabled version 0.7.0
it seems fixed in 0.8.0
Environment
cargo 1.56.0
ubuntu 22.04
After migrating to tracing
log delivery has some strange issues:
If an instance gets a background task channel lock in a few seconds after startup, the channel lock acquired
log is sent to both syslog_kafka
and the console.
But if the instance gets the lock after expiration (like 20 seconds later), the log is only sent to syslog_kafka
.
The log looks like:
{"host":"devbox-ap","pid":538824,"tid":"2","ts":1639311912.4820883,"name":"event src/task.rs:297","target":"blueboat::task","level":"WARN","module_path":"blueboat::task","file":"src/task.rs","line":297,"fields":{"channel":"ch01","identity":"2c3963dd-8f2d-4204-907f-d8455acfb1a1","message":"channel lock acquired"},"span_id":""}
It seems that data written from a TiKV RawClient
is not visible to TransactionClient
and vice versa.
Can you explain how do runtime
and fetched
work together?
The user @bejolithic ("Bejolithic [email protected]") seems to have made a replica of this repo. It's been cleansed of attribution and relicensed, from a brief look.
See https://github.com/nervive/wingless and also https://crates.io/crates/wingcli.
I was benchmarking some of the crypto routines in Blueboat.
The code is:
const start = Date.now();
const n = 10000;
const key = crypto.getRandomValues(new Uint8Array(16));
const nonce = crypto.getRandomValues(new Uint8Array(12));
const data = crypto.getRandomValues(new Uint8Array(32));
for (let i = 0; i < n; i++) {
NativeCrypto.AEAD.aes128GcmSivEncrypt({
key,
nonce,
data,
});
}
const end = Date.now();
return mkJsonResponse({
duration: end - start,
n,
dataLen: data.length,
});
And... it seems that most of the time is spent in the host call itself (instead of the actual encryption):
{"duration":55,"n":10000,"dataLen":320}
{"duration":38,"n":10000,"dataLen":32}
Currently the CreateParams::heap_limits
API is used to enforce per-script memory limit, but JS ArrayBuffer
's are allocated off-heap and are not counted towards this limit.
Sandbox not full isolated.
If app A
cost massive memory which result in availble memory less than Critical MemoryWatermark
, then the runtime will tune smr param: "MAX_WORKERS_PER_APP", that's now the logic. But the tune operation will scale in the running app B
, the scale in operation is triggered by app A.
That sound like not a good isolation behavior, apps interfere each other.
cargo build failed.
error: couldn't read /usr/local/include/foundationdb/fdb.options: No such file or directory (os error 2)
--> /Users/xialingming/.cargo/registry/src/github.com-1ecc6299db9ec823/foundationdb-gen-0.6.0/src/lib.rs:353:29
|
353 | const OPTIONS_DATA: &[u8] = include_bytes!("/usr/local/include/foundationdb/fdb.options");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: this error originates in the macro `include_bytes` (in Nightly builds, run with -Z macro-backtrace for more info)
error: could not compile `foundationdb-gen` due to previous error
OS: macOS
rustup toolchain list
stable-2022-05-19-x86_64-apple-darwin
stable-x86_64-apple-darwin (default)
nightly-x86_64-apple-darwin
rustc --version
rustc 1.61.0 (fe5b13d68 2022-05-18)
Doesn't crash in my local environment.
Related: #92
Error:
Compiling rusty-workers-proxy v0.0.0 (/home/zhy/Projects/rusty-workers/rusty-workers-proxy)
error: linking with `cc` failed: exit code: 1
|
= note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-L" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.0.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.1.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.10.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.11.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.12.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.13.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.14.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.15.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.2.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.3.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.4.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.5.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.6.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.7.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.8.rcgu.o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.rusty_workers_proxy.5xsbx9pq-cgu.9.rcgu.o" "-o" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd" "/home/zhy/Projects/rusty-workers/target/release/deps/rusty_workers_proxy-f8ae77ae6625fbdd.1l5tt8l8zyqu87rj.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/zhy/Projects/rusty-workers/target/release/deps" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/boringssl-build/lib" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/libz-sys-11206d7ae7406f59/out/build" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/libz-sys-11206d7ae7406f59/out/lib" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/base" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/base" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/base" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/base" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/base" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/base" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/base" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/base" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/container" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/container" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/debugging" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/debugging" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/debugging" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/debugging" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/hash" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/hash" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/numeric" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/status" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/strings" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/strings" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/strings" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/strings" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/synchronization" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/synchronization" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/time" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/time" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/time" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/types" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/abseil-cpp/absl/types" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/cares/cares/lib" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build/third_party/re2" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out/build" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/grpcio-sys-170b7cb87604ca8a/out" "-L" "/home/zhy/Projects/rusty-workers/target/release/build/libz-sys-11206d7ae7406f59/out/build" "-L" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/zhy/Projects/rusty-workers/target/release/deps/libpretty_env_logger-2c5e6d78dbe57934.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libenv_logger-8a33f0799e957947.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtermcolor-979f2acc8b71d606.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhumantime-2c45dd1f7132d7b0.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libquick_error-758a0d9ec28c3c5b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libreqwest-44d87222a517efaf.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhyper_tls-2aa168cad4348073.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtokio_native_tls-b50e6b4c561c0b01.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtoml-05d680551d42f4e2.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhyper-9ba744dc8ef55935.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libh2-10a9c955da2b1ae1.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhttp_body-ad92a09771d86b69.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libstructopt-1404c0686d691b9d.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libclap-28b19b8139a8442a.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libvec_map-906b97895659398d.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtextwrap-e94736a599908e6f.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libunicode_width-1e4a9d9d37ddb387.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libstrsim-f60115ef035d543e.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libatty-72e76d37747793dd.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libansi_term-9520aa70ed881abc.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/librusty_workers-92e5c3bea786b8a6.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtikv_client-d271af0ca1c5bf74.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libprometheus-a2cf82f9f6d30392.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libprocfs-748ec0a2717d267c.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libflate2-7bac6a119a7c8353.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libminiz_oxide-1b84ecc9fcb4214b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libadler-ddf9a9ec87b5448a.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libcrc32fast-db9d1030949593dc.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libreqwest-fbcc8126ef91dfc7.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhyper_tls-498b8ba2bc21938d.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libipnet-9c7038fec0a70a52.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtokio_tls-f0277fd2be97caf2.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libserde_urlencoded-02ce5618ccbe1b16.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libencoding_rs-ff39fd800b413443.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libbase64-dc9559f3b817e354.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libmime_guess-de2ea1b3f736ef19.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libunicase-6ca3caa516c42ff7.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libmime-d1755dbfdc0a262f.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libnative_tls-db07edb787fd75fc.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libopenssl_probe-19545ddd607a423b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libopenssl-bd933565a2550ada.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libopenssl_sys-802f5bf2446941f7.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libforeign_types-af95e674a268cfcb.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libforeign_types_shared-b078d77799d4201b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libbitflags-f9be2a87dd3aa410.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhyper-f5875d9ea07ad2a0.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhttparse-2adca81bd6fc1c7d.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libwant-9b4ec1349a2fc559.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtry_lock-2fc3bf36ba6b73bd.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libh2-b145aba7b70856ab.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtracing_futures-f05931789ee0e229.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libpin_project-1eb83e4ad0c54d43.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libindexmap-cb74127e3211b6e0.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhashbrown-175e31360b6a9835.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtokio_util-caf527ee676346a8.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhttpdate-a8fafc91516405a4.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libsocket2-e9ee7ef287dc5fa8.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtower_service-fd0c235026b799a3.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtracing-c8ebb6d1c37cd04a.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtracing_core-accd44162770050e.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtokio-7c965c808eafdd2d.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libmio-443b4beec9d79058.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libiovec-087c6f1c7116a7d1.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libnet2-ab5fc9b1c519c39d.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libpin_project_lite-5db553ac43855aa0.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhttp_body-e4a8a42b98358d8b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/liburl-07db3e7097815aae.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libidna-0da7939e8ce87166.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libunicode_normalization-4a298b25fc3b7358.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtinyvec-ccaaa3e73db1a30b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtinyvec_macros-910762d57c5b6034.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libunicode_bidi-4dcd412e24488ca8.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libform_urlencoded-d0b050082566b34a.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libpercent_encoding-c538f90a27728ce1.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libmatches-08a2b851970fe6fe.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhttp-036b788bac8da182.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfutures_timer-8206dd93a3e6a3fa.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtikv_client_store-90c3ffcd79650b09.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtikv_client_pd-86558cf6c185c697.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtikv_client_common-47fe4c43d79d7732.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libregex-ee1a2659559a50d9.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libthread_local-c027db2e0ef043cd.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libregex_syntax-190da877de71b201.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libaho_corasick-637bffbf8af1040e.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtikv_client_proto-64839329af15b19c.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libprotobuf-364d515e2b0a4f5b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libgrpcio-6b5cc4d4bc8ec51e.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libgrpcio_sys-90973c9f7fb82dce.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/liblazy_static-e9a76e4793a80604.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libprost-a18526d8e5b486a0.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libbytes-ff0fc23212eec0c6.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhex-a4e4f5579f901460.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libstubborn_io-19343f52c320f90b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libgit_version-0535a05e2a0f6b8f.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtarpc-4e6a92f9c4169df2.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/librand-d3cc4946a0aea879.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/librand_chacha-a5dff4cc46eb5d7f.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/librand_core-73598f60a9bef4aa.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libgetrandom-9059fb946e7f40d1.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtokio_util-2ac946508349f005.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtokio_stream-c32bee90e2d87ab7.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtokio_serde-86da7bc4d0b714ea.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libserde_json-adbf545148da9e10.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libryu-0d178bc97083fb74.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libitoa-9ad93b77da318bf7.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libbincode-3376321f5f616012.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libbyteorder-36d1509856b7d394.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libtokio-8b9e7c6078d05640.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libsignal_hook_registry-6846701cd9798e27.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libbytes-292078fe3cff20df.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libmio-c690d45d0bb16a34.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libpin_project_lite-060abf0a998ceae1.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libparking_lot-59931463ec102c1a.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libparking_lot_core-12d1b2570a3c5908.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libsmallvec-95a6d55ec415d64b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/liblock_api-e440d6be6c2e1a5e.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libscopeguard-09567ff0f54bb90a.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libinstant-5d5e3ec86264823e.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libcfg_if-c6a48d9876de9e38.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libhumantime-7d8cf279a9432208.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libstatic_assertions-612ae315016cf076.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfnv-1e5e88db2efe8783.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libthiserror-f88f99e1d6772892.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/librand-bddaeb14d530303b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/librand_chacha-228b0dd0e3fb2e28.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libppv_lite86-902810e01d19e4e1.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/librand_core-43449252b3c23dc1.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libgetrandom-a7cef31b05af3c6d.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfutures-f7e5d8c352e509be.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfutures_executor-4eb89516f3a3689d.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libnum_cpus-7e24826385c1ca0c.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/liblibc-6c39e38ff152878f.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfutures_util-e83bf21994d290cc.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libmemchr-d88f71a8d65d9eb5.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfutures-c7eb5ae9141595cc.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfutures_io-f963e224f8d553a9.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libslab-032391bfcdad2589.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfutures_channel-471c8e0dfcacbe82.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libpin_project-d25860c1c569b66f.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfutures_sink-7a605c229e767cc6.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfutures_task-d49365a425ab5cef.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libonce_cell-8fed26abf95bf5f0.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libpin_utils-016a2cbc907c921b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libfutures_core-0ce5a9163d962376.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libarc_swap-c7076591d67985d2.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libanyhow-1b2738b854e3c66b.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libserde-a9495cda94f27157.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/liblog-9f592c0d303617c9.rlib" "/home/zhy/Projects/rusty-workers/target/release/deps/libcfg_if-48c0c14891c5b8c9.rlib" "-Wl,--start-group" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-25c6acf8063a3802.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_abort-a8a5b853536a625e.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-37db28e905edb56b.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-9ef2480568df55af.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-1e0f0992cdbecd66.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-6c8e02b8fedc1e5f.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-807e5ad203594490.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-083fce1bea11612a.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-1af568081add9042.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-1395b54a3b3f45bf.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-caba820045f178d5.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-512eb53291f6de7e.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-5efacc5025f9f3d8.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-9c4002b5f79ba0e1.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-90996f4879673567.rlib" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-9ea09a899c3eda46.rlib" "-Wl,--end-group" "/home/zhy/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-ef2408da76957905.rlib" "-Wl,-Bdynamic" "-lssl" "-lcrypto" "-lstdc++" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc"
= note: /usr/bin/ld: /home/zhy/Projects/rusty-workers/target/release/deps/libopenssl_sys-802f5bf2446941f7.rlib(openssl_sys-802f5bf2446941f7.openssl_sys.7melbtyv-cgu.3.rcgu.o): in function `openssl_sys::tls1::SSL_set_tlsext_host_name':
openssl_sys.7melbtyv-cgu.3:(.text._ZN11openssl_sys4tls124SSL_set_tlsext_host_name17h68a9e3a8e359c332E+0xc): undefined reference to `SSL_ctrl'
/usr/bin/ld: /home/zhy/Projects/rusty-workers/target/release/deps/libopenssl_sys-802f5bf2446941f7.rlib(openssl_sys-802f5bf2446941f7.openssl_sys.7melbtyv-cgu.7.rcgu.o): in function `openssl_sys::ssl::SSL_CTX_set_mode':
openssl_sys.7melbtyv-cgu.7:(.text._ZN11openssl_sys3ssl16SSL_CTX_set_mode17h750cd63b9012b560E+0xc): undefined reference to `SSL_CTX_ctrl'
/usr/bin/ld: /home/zhy/Projects/rusty-workers/target/release/deps/libopenssl_sys-802f5bf2446941f7.rlib(openssl_sys-802f5bf2446941f7.openssl_sys.7melbtyv-cgu.7.rcgu.o): in function `openssl_sys::ssl::SSL_CTX_add_extra_chain_cert':
openssl_sys.7melbtyv-cgu.7:(.text._ZN11openssl_sys3ssl28SSL_CTX_add_extra_chain_cert17h6406e8de627a6b59E+0xc): undefined reference to `SSL_CTX_ctrl'
/usr/bin/ld: /home/zhy/Projects/rusty-workers/target/release/deps/libopenssl_sys-802f5bf2446941f7.rlib(openssl_sys-802f5bf2446941f7.openssl_sys.7melbtyv-cgu.7.rcgu.o): in function `openssl_sys::ssl::SSL_CTX_set_min_proto_version':
openssl_sys.7melbtyv-cgu.7:(.text._ZN11openssl_sys3ssl29SSL_CTX_set_min_proto_version17h4bc8610bd8ba278aE+0xc): undefined reference to `SSL_CTX_ctrl'
/usr/bin/ld: /home/zhy/Projects/rusty-workers/target/release/deps/libopenssl_sys-802f5bf2446941f7.rlib(openssl_sys-802f5bf2446941f7.openssl_sys.7melbtyv-cgu.7.rcgu.o): in function `openssl_sys::ssl::SSL_CTX_set_max_proto_version':
openssl_sys.7melbtyv-cgu.7:(.text._ZN11openssl_sys3ssl29SSL_CTX_set_max_proto_version17he0fad4547c8ffc01E+0xc): undefined reference to `SSL_CTX_ctrl'
collect2: error: ld returned 1 exit status
error: aborting due to previous error
error: could not compile `rusty-workers-proxy`
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.